{
  "contractName": "ERC1155Creator",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "AdminRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "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": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "ApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "DefaultRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "ExtensionApproveTransferUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionBlacklisted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "ExtensionRoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "ExtensionUnregistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "MintPermissionsUpdated",
      "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": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "RoyaltiesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getApproveTransfer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getExtensions",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "extensions",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "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": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "revokeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "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": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveTransferExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "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": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "baseURI",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "baseURIIdentical",
          "type": "bool"
        }
      ],
      "name": "registerExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "unregisterExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "blacklistExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        },
        {
          "internalType": "bool",
          "name": "identical",
          "type": "bool"
        }
      ],
      "name": "setBaseTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefixExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setTokenURIExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setBaseTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "prefix",
          "type": "string"
        }
      ],
      "name": "setTokenURIPrefix",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "uri_",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "permissions",
          "type": "address"
        }
      ],
      "name": "setMintPermissions",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintBaseNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintBaseExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintExtensionNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintExtensionExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenExtension",
      "outputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyalties",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "basisPoints",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyaltiesExtension",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getRoyalties",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFees",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeRecipients",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getFeeBps",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"AdminRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"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\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"ApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"DefaultRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"ExtensionApproveTransferUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"ExtensionRoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ExtensionUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"MintPermissionsUpdated\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"RoyaltiesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"blacklistExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApproveTransfer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExtensions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"extensions\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeBps\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFeeRecipients\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getFees\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getRoyalties\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintBaseExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintBaseNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintExtensionExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintExtensionNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"baseURI\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"baseURIIdentical\",\"type\":\"bool\"}],\"name\":\"registerExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"revokeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"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\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"setApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveTransferExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setBaseTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"identical\",\"type\":\"bool\"}],\"name\":\"setBaseTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permissions\",\"type\":\"address\"}],\"name\":\"setMintPermissions\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"basisPoints\",\"type\":\"uint256[]\"}],\"name\":\"setRoyaltiesExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri_\",\"type\":\"string\"}],\"name\":\"setTokenURIExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefix\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"prefix\",\"type\":\"string\"}],\"name\":\"setTokenURIPrefixExtension\",\"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\":\"tokenExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"unregisterExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155Creator implementation\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"blacklistExtension(address)\":{\"details\":\"See {ICreatorCore-blacklistExtension}.\"},\"burn(address,uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-burn}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getApproveTransfer()\":{\"details\":\"See {ICreatorCore-getApproveTransfer}.\"},\"getExtensions()\":{\"details\":\"See {ICreatorCore-getExtensions}.\"},\"getFeeBps(uint256)\":{\"details\":\"See {ICreatorCore-getFeeBps}.\"},\"getFeeRecipients(uint256)\":{\"details\":\"See {ICreatorCore-getFeeRecipients}.\"},\"getFees(uint256)\":{\"details\":\"See {ICreatorCore-getFees}.\"},\"getRoyalties(uint256)\":{\"details\":\"See {ICreatorCore-getRoyalties}.\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"mintBaseExisting(address[],uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-mintBaseExisting}.\"},\"mintBaseNew(address[],uint256[],string[])\":{\"details\":\"See {IERC1155CreatorCore-mintBaseNew}.\"},\"mintExtensionExisting(address[],uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-mintExtensionExisting}.\"},\"mintExtensionNew(address[],uint256[],string[])\":{\"details\":\"See {IERC1155CreatorCore-mintExtensionNew}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerExtension(address,string)\":{\"details\":\"See {ICreatorCore-registerExtension}.\"},\"registerExtension(address,string,bool)\":{\"details\":\"See {ICreatorCore-registerExtension}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"revokeAdmin(address)\":{\"details\":\"See {IAdminControl-revokeAdmin}.\"},\"royaltyInfo(uint256,uint256)\":{\"details\":\"See {ICreatorCore-royaltyInfo}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"setApproveTransfer(address)\":{\"details\":\"See {ICreatorCore-setApproveTransfer}.\"},\"setApproveTransferExtension(bool)\":{\"details\":\"See {ICreatorCore-setApproveTransferExtension}.\"},\"setBaseTokenURI(string)\":{\"details\":\"See {ICreatorCore-setBaseTokenURI}.\"},\"setBaseTokenURIExtension(string)\":{\"details\":\"See {ICreatorCore-setBaseTokenURIExtension}.\"},\"setBaseTokenURIExtension(string,bool)\":{\"details\":\"See {ICreatorCore-setBaseTokenURIExtension}.\"},\"setMintPermissions(address,address)\":{\"details\":\"See {ICreatorCore-setMintPermissions}.\"},\"setRoyalties(address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyalties}.\"},\"setRoyalties(uint256,address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyalties}.\"},\"setRoyaltiesExtension(address,address[],uint256[])\":{\"details\":\"See {ICreatorCore-setRoyaltiesExtension}.\"},\"setTokenURI(uint256,string)\":{\"details\":\"See {ICreatorCore-setTokenURI}.\"},\"setTokenURI(uint256[],string[])\":{\"details\":\"See {ICreatorCore-setTokenURI}.\"},\"setTokenURIExtension(uint256,string)\":{\"details\":\"See {ICreatorCore-setTokenURIExtension}.\"},\"setTokenURIExtension(uint256[],string[])\":{\"details\":\"See {ICreatorCore-setTokenURIExtension}.\"},\"setTokenURIPrefix(string)\":{\"details\":\"See {ICreatorCore-setTokenURIPrefix}.\"},\"setTokenURIPrefixExtension(string)\":{\"details\":\"See {ICreatorCore-setTokenURIPrefixExtension}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"tokenExtension(uint256)\":{\"details\":\"See {IERC1155CreatorCore-tokenExtension}.\"},\"totalSupply(uint256)\":{\"details\":\"Total amount of tokens in with a given id.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unregisterExtension(address)\":{\"details\":\"See {ICreatorCore-unregisterExtension}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ERC1155Creator.sol\":\"ERC1155Creator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\":{\"keccak256\":\"0xaed5e7784e33745ab1b16f1d87b22084a8b25d531c1dcb8dc41fc2a89e2617da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44837a9cc639062b2d7424a10e9d579b8d3a9bc1cefede2cfbb917bee8f452ae\",\"dweb:/ipfs/QmburkqmRDZYWjKPRUynhdfkAfP5QDKcXH4WCbH1JC8UDq\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0x190dd6f8d592b7e4e930feb7f4313aeb8e1c4ad3154c27ce1cf6a512fc30d8cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ce8dfb62d0c4fa260d6eec8f1cd47f5f2a044e11bde5b31d18072fa6e7d9010\",\"dweb:/ipfs/QmTyFztU3tLEcEDnqqiaW4UJetqsU77LXc6pjc9oTXCK5u\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6392f2cfe3a5ee802227fe7a2dfd47096d881aec89bddd214b35c5b46d3cd941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd9c47a375639888e726a99da718890ba16d17d7ad9eacb0ccc892d46d1b3ee0\",\"dweb:/ipfs/Qmb41W5RUjy2sWg49A2rMnxekSeEk6SvGyJL5tyCCSr7un\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xa66d18b9a85458d28fc3304717964502ae36f7f8a2ff35bc83f6f85d74b03574\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e46c80ea068989111d6103e5521223f9ef337e93de76deed8b03f75c6f7b2797\",\"dweb:/ipfs/QmNoSE6knNfFncdDDLTb3fGR6oSQty1srG96Vsx3E9wQdw\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x0812bc73d6e30558840122fa48d6f64ae978ccc1b1fc42e616bac190c6360f46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d95a53b7e19ca1d46043eaad8967b6e0b02aab2b5fefc2108bfa6d1ad425f5b\",\"dweb:/ipfs/QmQq7AUGT9juE3hun2Wy7r2BDoDBFdBn43DVwhJpK2StLV\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/ERC1155Creator.sol\":{\"keccak256\":\"0x8f1b850e63f47832d764c2547aeddf5a46ed3b0ec6b1ecabdfcd1b1d4db5c391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5475406c2e40450a6c4bc50d4f559ffec8e2d22d37000f07957f57169487e647\",\"dweb:/ipfs/QmWDwuXXTqkpEBnMYZtHRGnGNgR6qEX2zcR8a6Qbgytbve\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ERC1155CreatorCore.sol\":{\"keccak256\":\"0x6f0fac34514386543d742675a6100bad59ced735324f324b21eb4c9571e0d281\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd6e0da4b354afedc59a51af11d506ca2ba31483757b71b4caad7b9586212dc4\",\"dweb:/ipfs/Qmf3wbvgy87Xgirt4XLcWcmrj3Gexf9frFtPyZNtyYxXSd\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC1155CreatorCore.sol\":{\"keccak256\":\"0xc91d0050b622fbb41b7516c6a8c75ab6236e6a52feab681d36fb75b8b49fc8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f045081bb40c91837c076530bb07b9f8b7fa77cbd1191748a12920f01f1678f8\",\"dweb:/ipfs/QmP5kx53wBz2eUqZV26ttYJmsHP7R9n3rF6dAbTjVPh5gL\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0x721390972cc45ff82d97046f5b9e560369a4bf25ae1db2ee0998c8dfc484b782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f564087ce1ed42a2dbb0bd4dd463643ebb51dc8662c6a8ff34b073d94f38ca24\",\"dweb:/ipfs/QmNyZnZLe3dTxpCVLxA2hKamUjDUhds4BjSb7EvegS52yS\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xc274a67fd639f490659aae3c188b7eaef5f819367f61b058e547681c1410e22f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2862472b3f417e447faa442cf27a1ea33cea678ff4f64b4cc99102d5d1e6bfb8\",\"dweb:/ipfs/QmepVRQniqf5hpSWgptfoxbYw546s9L6uo9PiobsStxJ7D\"]},\"project:/contracts/extensions/ICreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xf61dcf7e6bc3e49e629630ad28377f079a31b154ecd0e604d1c0a51ae2a057f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fda5e6d49a47fbe347ed9198c1fff5555bd687a3a73d2a9f45d5c3a2d053e40\",\"dweb:/ipfs/QmdrLJ3rscxvpMTjdRp1FyhPtYDTDL1CCQyhFeLFuFkFXH\"]},\"project:/contracts/extensions/ICreatorExtensionTokenURI.sol\":{\"keccak256\":\"0x6c8ca804ee7dea9d78f0dacdd9233b1b75ca2b2fa517f52f0fdf6beb34780a51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a04a6f0cce2bbdb022a8125e147519c7fbaa89692c8f0cfee69a67a2956316f\",\"dweb:/ipfs/QmdUxwBEnFshm1j5FEcJctC7DbFWUznis2LaPcKR7FEZX7\"]},\"project:/contracts/permissions/ERC1155/IERC1155CreatorMintPermissions.sol\":{\"keccak256\":\"0x0cf037e3da9a47dab1b0c287d128497f6e28bdbadb4b66f7949a63f8fa144de0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://627c99459b5e9bf311d7b463ffefc405ca7f257a518ad7b6ea3e14859998bb25\",\"dweb:/ipfs/QmaPeix3g2ZDAt662biM5pkAEJ54TNH4jCqeJd46KhEguP\"]},\"project:/contracts/token/ERC1155/ERC1155Base.sol\":{\"keccak256\":\"0x52880aeca03599fa886f162a8130a175aceb793600c5b09b7c1ae951c30b109f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea681b075e10ed6404961923afe619933d9b7c904fd59391caba2e5767cc4556\",\"dweb:/ipfs/Qma1TTFwCkLeRJXL7vsadLHgjvmumhfTQd8FeJ4kf4oeGs\"]},\"project:/contracts/token/ERC1155/ERC1155Core.sol\":{\"keccak256\":\"0x3c2d6f41b6293f667326ac028729fe2f6b4f7c35af334c1136cd8d7192187c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db91053b42e25febef3cd2fc9f82a3565fcdc7a56775005bc5bca805db18b8a9\",\"dweb:/ipfs/QmdDDgyiYqM5EZg5n4XA1kWoGfxVKk6CooQUzfTWj1pGNe\"]}},\"version\":1}",
  "bytecode": "0x608060405260006008553480156200001657600080fd5b5060405162005d9238038062005d92833981016040819052620000399162000187565b8181620000463362000072565b60018055600462000058838262000280565b50600562000067828262000280565b50505050506200034c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000ea57600080fd5b81516001600160401b0380821115620001075762000107620000c2565b604051601f8301601f19908116603f01168101908282118183101715620001325762000132620000c2565b816040528381526020925086838588010111156200014f57600080fd5b600091505b8382101562000173578582018301518183018401529082019062000154565b600093810190920192909252949350505050565b600080604083850312156200019b57600080fd5b82516001600160401b0380821115620001b357600080fd5b620001c186838701620000d8565b93506020850151915080821115620001d857600080fd5b50620001e785828601620000d8565b9150509250929050565b600181811c908216806200020657607f821691505b6020821081036200022757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027b57600081815260208120601f850160051c81016020861015620002565750805b601f850160051c820191505b81811015620002775782815560010162000262565b5050505b505050565b81516001600160401b038111156200029c576200029c620000c2565b620002b481620002ad8454620001f1565b846200022d565b602080601f831160018114620002ec5760008415620002d35750858301515b600019600386901b1c1916600185901b17855562000277565b600085815260208120601f198616915b828110156200031d57888601518255948401946001909101908401620002fc565b50858210156200033c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b615a36806200035c6000396000f3fe608060405234801561001057600080fd5b50600436106102605760003560e01c8063695c96e61161014d578063695c96e61461048b5780636d73e6691461049e578063715018a6146104b157806382dcc0c8146104b957806383b7db63146104cc5780638c6e8472146104d45780638da5cb5b146104e757806395d89b41146104ef57806399e0dd7c146104f7578063a22cb4651461050a578063aafb2d441461051d578063ac0c8cfa14610530578063b0fe87c914610543578063b9c4d9fb14610556578063bb3bafd614610569578063bd85b0391461058a578063ce8aee9d146105aa578063d5a06d4c14610569578063e6c884dc146105bd578063e92a89f6146105d0578063e985e9c5146105e3578063f0cdc499146105f6578063f242432a14610609578063f2fde38b1461061c578063feeb5a9a1461062f578063ffa1ad741461064257600080fd5b8062fdd58e1461026557806301ffc9a71461028b57806302e7afb7146102ae57806306fdde03146102c35780630e89341c146102d85780630ebd4c7f146102eb578063162094c41461030b57806320e4afe21461031e57806322f374d014610331578063239be3171461034b57806324d7806c1461035e5780632a55205a146103715780632d345670146103925780632eb2c2d6146103a557806330176e13146103b85780633071a0f9146103cb57806331ae450b146103de578063332dd1ae146103f35780633db0f8ab146104065780633e6134b8146104195780633f0f37f61461042c5780634e1273f41461043f578063596798ad1461045257806361e5bc6b1461046557806366d1e9d014610478575b600080fd5b610278610273366004614555565b61064a565b6040519081526020015b60405180910390f35b61029e610299366004614597565b6106e5565b6040519015158152602001610282565b6102c16102bc3660046145b4565b61070e565b005b6102cb61075a565b6040516102829190614621565b6102cb6102e6366004614634565b6107ec565b6102fe6102f9366004614634565b6107f7565b6040516102829190614688565b6102c16103193660046146dc565b610802565b6102c161032c36600461476b565b610852565b6009546001600160a01b03165b60405161028291906147e4565b61033e610359366004614634565b6108a6565b61029e61036c3660046145b4565b61092f565b61038461037f3660046147f8565b61095e565b60405161028292919061481a565b6102c16103a03660046145b4565b610977565b6102c16103b336600461498c565b6109d4565b6102c16103c6366004614a39565b610a19565b6102c16103d9366004614a7a565b610a63565b6103e6610ab9565b6040516102829190614aee565b6102c1610401366004614b01565b610b67565b6102c1610414366004614b6c565b610bbb565b6102c1610427366004614a39565b610d19565b6102c161043a366004614bb9565b610d2d565b6102fe61044d366004614c20565b610d82565b6102c16104603660046145b4565b610eab565b6102c1610473366004614b01565b610ef4565b6102c1610486366004614a39565b610f73565b6102c1610499366004614cec565b610f85565b6102c16104ac3660046145b4565b6110ac565b6102c1611104565b6102c16104c7366004614d85565b611118565b6103e661112b565b6102fe6104e2366004614cec565b6111cb565b61033e611201565b6102cb611210565b6102c1610505366004614a39565b61121f565b6102c1610518366004614ddb565b611269565b6102c161052b366004614b01565b611274565b6102c161053e366004614e14565b61132b565b6102c1610551366004614b6c565b61133d565b6103e6610564366004614634565b61138a565b61057c610577366004614634565b611395565b604051610282929190614e31565b610278610598366004614634565b60009081526017602052604090205490565b6102c16105b83660046145b4565b6113aa565b6102c16105cb366004614cec565b6113f3565b6102c16105de3660046146dc565b6114aa565b61029e6105f1366004614e5f565b6114bd565b6102c1610604366004614e5f565b6114eb565b6102c1610617366004614e8d565b611535565b6102c161062a3660046145b4565b61157a565b6102fe61063d366004614cec565b6115f0565b610278600381565b60006001600160a01b0383166106ba5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526006602090815260408083206001600160a01b03861684529091529020545b92915050565b60006106f08261164a565b806106ff57506106ff8261166f565b806106df57506106df826116aa565b33610717611201565b6001600160a01b0316148061073257506107326002336116df565b61074e5760405162461bcd60e51b81526004016106b190614ef5565b61075781611704565b50565b60606004805461076990614f39565b80601f016020809104026020016040519081016040528092919081815260200182805461079590614f39565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b60606106df82611810565b60606106df82611aac565b3361080b611201565b6001600160a01b0316148061082657506108266002336116df565b6108425760405162461bcd60e51b81526004016106b190614ef5565b61084d838383611ab7565b505050565b3361085b611201565b6001600160a01b0316148061087657506108766002336116df565b6108925760405162461bcd60e51b81526004016106b190614ef5565b61089f8585858585611b1b565b5050505050565b60006108b182611ba2565b90506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b60448201526064016106b1565b61090d600c826116df565b1561092a5760405162461bcd60e51b81526004016106b190614f6d565b919050565b6000816001600160a01b0316610943611201565b6001600160a01b031614806106df57506106df6002836116df565b60008061096b8484611bbd565b915091505b9250929050565b61097f611c93565b61098a6002826116df565b156107575760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36109d0600282611cf2565b5050565b6001600160a01b0385163314806109f057506109f085336114bd565b610a0c5760405162461bcd60e51b81526004016106b190614f9c565b61089f8585858585611d07565b33610a22611201565b6001600160a01b03161480610a3d5750610a3d6002336116df565b610a595760405162461bcd60e51b81526004016106b190614ef5565b6109d08282611e9a565b33610a6c611201565b6001600160a01b03161480610a875750610a876002336116df565b610aa35760405162461bcd60e51b81526004016106b190614ef5565b610aac83611ecf565b61084d8383836000611ef7565b6060610ac56002611fe8565b6001600160401b03811115610adc57610adc614833565b604051908082528060200260200182016040528015610b05578160200160208202803683370190505b50905060005b610b156002611fe8565b811015610b6357610b27600282611ff2565b828281518110610b3957610b39614fea565b6001600160a01b039092166020928302919091019091015280610b5b81615016565b915050610b0b565b5090565b33610b70611201565b6001600160a01b03161480610b8b5750610b8b6002336116df565b610ba75760405162461bcd60e51b81526004016106b190614ef5565b610bb5600085858585611ffe565b50505050565b610bc36120eb565b6001600160a01b038516331480610bdf5750610bdf85336114bd565b610c2b5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f7665640060448201526064016106b1565b828114610c4a5760405162461bcd60e51b81526004016106b19061502f565b6001839003610c9557610c908585856000818110610c6a57610c6a614fea565b9050602002013584846000818110610c8457610c84614fea565b90506020020135612144565b610d03565b610d03858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201919091525061217792505050565b610d1085858585856121f0565b61089f60018055565b610d21612352565b6109d0828260006123a8565b33610d36611201565b6001600160a01b03161480610d515750610d516002336116df565b610d6d5760405162461bcd60e51b81526004016106b190614ef5565b610d7684611ecf565b610bb584848484611ef7565b60608151835114610de75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016106b1565b600083516001600160401b03811115610e0257610e02614833565b604051908082528060200260200182016040528015610e2b578160200160208202803683370190505b50905060005b8451811015610ea357610e76858281518110610e4f57610e4f614fea565b6020026020010151858381518110610e6957610e69614fea565b602002602001015161064a565b828281518110610e8857610e88614fea565b6020908102919091010152610e9c81615016565b9050610e31565b509392505050565b33610eb4611201565b6001600160a01b03161480610ecf5750610ecf6002336116df565b610eeb5760405162461bcd60e51b81526004016106b190614ef5565b610757816123e5565b610efc612352565b828114610f1b5760405162461bcd60e51b81526004016106b19061502f565b60005b8381101561089f57610f6b858583818110610f3b57610f3b614fea565b90506020020135848484818110610f5457610f54614fea565b9050602002810190610f669190615056565b61243b565b600101610f1e565b610f7b612352565b6109d08282612445565b610f8d6120eb565b33610f96611201565b6001600160a01b03161480610fb15750610fb16002336116df565b610fcd5760405162461bcd60e51b81526004016106b190614ef5565b60005b8381101561108a576000858583818110610fec57610fec614fea565b90506020020135905060008111801561100757506008548111155b6110235760405162461bcd60e51b81526004016106b19061509c565b600061102e82611ba2565b6001600160a01b0316146110815760405162461bcd60e51b815260206004820152601a6024820152792a37b5b2b71031b932b0ba32b210313c9032bc3a32b739b4b7b760311b60448201526064016106b1565b50600101610fd0565b5061109b600087878787878761245f565b6110a460018055565b505050505050565b6110b4611c93565b6110bf6002826116df565b6107575760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36109d0600282612807565b61110c611c93565b611116600061281c565b565b611120612352565b61084d8383836123a8565b6060611137600a611fe8565b6001600160401b0381111561114e5761114e614833565b604051908082528060200260200182016040528015611177578160200160208202803683370190505b50905060005b611187600a611fe8565b811015610b6357611199600a82611ff2565b8282815181106111ab576111ab614fea565b6001600160a01b039092166020928302919091019091015260010161117d565b60606111d56120eb565b6111dd612352565b6111ec3388888888888861286c565b90506111f760018055565b9695505050505050565b6000546001600160a01b031690565b60606005805461076990614f39565b33611228611201565b6001600160a01b0316148061124357506112436002336116df565b61125f5760405162461bcd60e51b81526004016106b190614ef5565b6109d08282612cb3565b6109d0338383612ce8565b3361127d611201565b6001600160a01b0316148061129857506112986002336116df565b6112b45760405162461bcd60e51b81526004016106b190614ef5565b8281146112d35760405162461bcd60e51b81526004016106b19061502f565b60005b8381101561089f576113238585838181106112f3576112f3614fea565b9050602002013584848481811061130c5761130c614fea565b905060200281019061131e9190615056565b611ab7565b6001016112d6565b611333612352565b6107573382612dc8565b33611346611201565b6001600160a01b0316148061136157506113616002336116df565b61137d5760405162461bcd60e51b81526004016106b190614ef5565b61089f8585858585611ffe565b60606106df82612e40565b6060806113a183612e52565b91509150915091565b336113b3611201565b6001600160a01b031614806113ce57506113ce6002336116df565b6113ea5760405162461bcd60e51b81526004016106b190614ef5565b61075781613200565b6113fb6120eb565b611403612352565b60005b8381101561149a573361143086868481811061142457611424614fea565b90506020020135611ba2565b6001600160a01b0316146114925760405162461bcd60e51b815260206004820152602360248201527f546f6b656e206e6f742063726561746564206279207468697320657874656e7360448201526234b7b760e91b60648201526084016106b1565b600101611406565b5061109b3387878787878761245f565b6114b2612352565b61084d83838361243b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b336114f4611201565b6001600160a01b0316148061150f575061150f6002336116df565b61152b5760405162461bcd60e51b81526004016106b190614ef5565b6109d08282613241565b6001600160a01b038516331480611551575061155185336114bd565b61156d5760405162461bcd60e51b81526004016106b190614f9c565b61089f858585858561336a565b611582611c93565b6001600160a01b0381166115e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b1565b6107578161281c565b60606115fa6120eb565b33611603611201565b6001600160a01b0316148061161e575061161e6002336116df565b61163a5760405162461bcd60e51b81526004016106b190614ef5565b6111ec600088888888888861286c565b60006001600160e01b031982166301f4921160e61b14806106df57506106df82613494565b60006001600160e01b03198216636cdb3d1360e11b14806106ff57506001600160e01b031982166303a24d0760e21b14806106df57506106df825b60006001600160e01b03198216632a9f3abf60e11b14806106df57506301ffc9a760e01b6001600160e01b03198316146106df565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6001600160a01b0381161580159061172557506001600160a01b0381163014155b61176d5760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b60448201526064016106b1565b611778600a826116df565b156117c05760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36117be600a82611cf2565b505b6117cb600c826116df565b6107575760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a36109d0600c82612807565b606060008211801561182457506008548211155b6118405760405162461bcd60e51b81526004016106b19061509c565b600061184b83611ba2565b9050611858600c826116df565b156118755760405162461bcd60e51b81526004016106b190614f6d565b6000838152601160205260409020805461188e90614f39565b1590506119a8576001600160a01b038116600090815260106020526040902080546118b890614f39565b159050611909576001600160a01b0381166000908152601060209081526040808320868452601183529281902090516118f2939201615136565b604051602081830303815290604052915050919050565b6000838152601160205260409020805461192290614f39565b80601f016020809104026020016040519081016040528092919081815260200182805461194e90614f39565b801561199b5780601f106119705761010080835404028352916020019161199b565b820191906000526020600020905b81548152906001019060200180831161197e57829003601f168201915b5050505050915050919050565b6119b98163e9dc637560e01b613545565b15611a315760405163e9dc637560e01b81526001600160a01b0382169063e9dc6375906119ec903090879060040161481a565b600060405180830381865afa158015611a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116fd9190810190615153565b6001600160a01b0381166000908152600f602052604090205460ff16611a83576001600160a01b0381166000908152600e60205260409020611a7284613561565b6040516020016118f29291906151ca565b6001600160a01b0381166000908152600e60205260409020805461192290614f39565b50919050565b60606116fd82612e52565b600083118015611ac957506008548311155b8015611ae657506000611adb84611ba2565b6001600160a01b0316145b611b025760405162461bcd60e51b81526004016106b19061509c565b6000838152601160205260409020610bb5828483615235565b611b27848484846135f3565b6000858152601360205260408120611b3e91614508565b611b5d84848484601360008b8152602001908152602001600020613698565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee85858585604051611b939493929190615326565b60405180910390a25050505050565b6000908152601660205260409020546001600160a01b031690565b600080600080611bcc86612e52565b91509150600182511115611c215760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b60448201526064016106b1565b8151600003611c3857306000935093505050610970565b81600081518110611c4b57611c4b614fea565b60200260200101516127108683600081518110611c6a57611c6a614fea565b6020026020010151611c7c9190615389565b611c8691906153a0565b9350935050509250929050565b33611c9c611201565b6001600160a01b0316146111165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b1565b60006116fd836001600160a01b038416613753565b8151835114611d285760405162461bcd60e51b81526004016106b1906153c2565b6001600160a01b038416611d4e5760405162461bcd60e51b81526004016106b19061540a565b33611d5d818787878787613846565b60005b8451811015611e46576000858281518110611d7d57611d7d614fea565b602002602001015190506000858381518110611d9b57611d9b614fea565b60209081029190910181015160008481526006835260408082206001600160a01b038e168352909352919091205490915081811015611dec5760405162461bcd60e51b81526004016106b19061544f565b60008381526006602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611e2b908490615499565b9250508190555050505080611e3f90615016565b9050611d60565b50846001600160a01b0316866001600160a01b0316826001600160a01b03166000805160206159c18339815191528787604051611e849291906154ac565b60405180910390a46110a4818787878787613852565b60008052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c61084d828483615235565b611eda600c826116df565b156107575760405162461bcd60e51b81526004016106b190614f6d565b6001600160a01b0384163014801590611f1d5750611f1d846001600160a01b03166139b4565b611f535760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106b1565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152600e60205260409020611fac838583615235565b506001600160a01b0384166000908152600f60205260409020805460ff1916821515179055611fdc600a85612807565b50610bb5846001612dc8565b60006106df825490565b60006116fd83836139c3565b61200a848484846135f3565b6001600160a01b038516600090815260126020526040812061202b91614508565b61205c84848484601260008b6001600160a01b03166001600160a01b03168152602001908152602001600020613698565b6001600160a01b0385166120ac577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b8484848460405161209f9493929190615326565b60405180910390a161089f565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f85858585604051611b939493929190615326565b60026001540361213d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106b1565b6002600155565b61214f8383836139ed565b6000828152601760205260408120805483929061216d9084906154bf565b9091555050505050565b612182838383613af7565b60005b8251811015610bb5578181815181106121a0576121a0614fea565b6020026020010151601760008584815181106121be576121be614fea565b6020026020010151815260200190815260200160002060008282546121e391906154bf565b9091555050600101612185565b8261220d5760405162461bcd60e51b81526004016106b19061502f565b6000601660008686600081811061222657612226614fea565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b848110156122be57816001600160a01b03166016600088888581811061227657612276614fea565b60209081029290920135835250810191909152604001600020546001600160a01b0316146122b65760405162461bcd60e51b81526004016106b1906154d2565b60010161224e565b506001600160a01b038116156110a4576122df816303dc6f6560e51b613545565b156110a4576040516303dc6f6560e51b81526001600160a01b03821690637b8deca0906123189089908990899089908990600401615508565b600060405180830381600087803b15801561233257600080fd5b505af1158015612346573d6000803e3d6000fd5b50505050505050505050565b61235d600a336116df565b6111165760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b60448201526064016106b1565b336000908152600e602052604090206123c2838583615235565b50336000908152600f60205260409020805460ff19169115159190911790555050565b600980546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f906124309083906147e4565b60405180910390a150565b33611adb84611ba2565b33600090815260106020526040902061084d828483615235565b6001600160a01b0387161561250c5761250c86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250613c8492505050565b60018514801561251c5750600183145b80156125285750600181145b156125a9576125a48686600081811061254357612543614fea565b905060200201602081019061255891906145b4565b8585600081811061256b5761256b614fea565b905060200201358484600081811061258557612585614fea565b6040805160008152602080820190925291029290920135919050613d13565b6127fe565b6001851480156125b857508281145b15612682576125a4868660008181106125d3576125d3614fea565b90506020020160208101906125e891906145b4565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201829052509250612652915050565b6040519080825280601f01601f19166020018201604052801561267c576020820181803683370190505b50613d48565b6001831480156126925750600181145b156127075760005b85811015612701576126f98787838181106126b7576126b7614fea565b90506020020160208101906126cc91906145b4565b868660008181106126df576126df614fea565b905060200201358585600081811061258557612585614fea565b60010161269a565b506127fe565b60018314801561271657508481145b156127845760005b858110156127015761277c87878381811061273b5761273b614fea565b905060200201602081019061275091906145b4565b8686600081811061276357612763614fea565b9050602002013585858581811061258557612585614fea565b60010161271e565b848314801561279257508481145b156127e65760005b85811015612701576127de8787838181106127b7576127b7614fea565b90506020020160208101906127cc91906145b4565b86868481811061276357612763614fea565b60010161279a565b60405162461bcd60e51b81526004016106b19061502f565b50505050505050565b60006116fd836001600160a01b038416613dc2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060018611156128d2576040805160018082528183019092529060208083019080368337019050509050600182118015906128b1575060018414806128b157508584145b6128cd5760405162461bcd60e51b81526004016106b19061502f565b61293e565b836001600160401b038111156128ea576128ea614833565b604051908082528060200260200182016040528015612913578160200160208202803683370190505b50905081158061292257508382145b61293e5760405162461bcd60e51b81526004016106b19061502f565b60005b81518110156129b55760086000815461295990615016565b90915550600854825183908390811061297457612974614fea565b602090810291909101810191909152600854600090815260169091526040902080546001600160a01b0319166001600160a01b038b16179055600101612941565b506001600160a01b03881615612a3557612a3587878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82528794509092508a918a91829190850190849080828437600092019190915250613c8492505050565b600186148015612a46575080516001145b15612aa957612aa487876000818110612a6157612a61614fea565b9050602002016020810190612a7691906145b4565b82600081518110612a8957612a89614fea565b60200260200101518787600081811061258557612585614fea565b612bfb565b6001861115612b96576001849003612b2c5760005b86811015612b2657612b1e888883818110612adb57612adb614fea565b9050602002016020810190612af091906145b4565b83600081518110612b0357612b03614fea565b60200260200101518888600081811061258557612585614fea565b600101612abe565b50612bfb565b60005b86811015612b2657612b8e888883818110612b4c57612b4c614fea565b9050602002016020810190612b6191906145b4565b83600081518110612b7457612b74614fea565b602002602001015188888581811061258557612585614fea565b600101612b2f565b612bfb87876000818110612bac57612bac614fea565b9050602002016020810190612bc191906145b4565b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250612652915050565b60005b8151811015612ca7578281108015612c3b57506000848483818110612c2557612c25614fea565b9050602002810190612c379190615056565b9050115b15612c9f57838382818110612c5257612c52614fea565b9050602002810190612c649190615056565b60116000858581518110612c7a57612c7a614fea565b602002602001015181526020019081526020016000209182612c9d929190615235565b505b600101612bfe565b50979650505050505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb0161084d828483615235565b816001600160a01b0316836001600160a01b031603612d5b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016106b1565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612ddc826001620e90cb60e41b0319613545565b156109d0576001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b6060612e4b82612e52565b5092915050565b606080600060136000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612ed457600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612e8a565b5050505090508051600003613021576000612eee85611ba2565b90506001600160a01b0381161561301f57612f1081634e53ee3d60e11b613545565b15612f9b57604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a90612f43903090899060040161481a565b600060405180830381865afa158015612f60573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f8891908101906155a6565b8151919550935015612f9b575050915091565b6001600160a01b038116600090815260126020908152604080832080548251818502810185019093528083529193909284015b8282101561301857600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612fce565b5050505091505b505b80516000036130c4576000808052601260209081527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b8054604080518285028101850190915281815293919290919084015b828210156130bd57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613073565b5050505090505b8051156131fa5780516001600160401b038111156130e4576130e4614833565b60405190808252806020026020018201604052801561310d578160200160208202803683370190505b50925080516001600160401b0381111561312957613129614833565b604051908082528060200260200182016040528015613152578160200160208202803683370190505b50915060005b81518110156131f85781818151811061317357613173614fea565b60200260200101516000015184828151811061319157613191614fea565b60200260200101906001600160a01b031690816001600160a01b0316815250508181815181106131c3576131c3614fea565b60200260200101516020015161ffff168382815181106131e5576131e5614fea565b6020908102919091010152600101613158565b505b50915091565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36109d0600a82611cf2565b61324c600a836116df565b61328c5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21032bc3a32b739b4b7b760791b60448201526064016106b1565b6001600160a01b03811615806132ae57506132ae816378ea2a9760e11b613545565b6132ec5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106b1565b6001600160a01b038281166000908152601560205260409020548116908216146109d0576001600160a01b0382811660008181526015602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b6001600160a01b0384166133905760405162461bcd60e51b81526004016106b19061540a565b33600061339c85613e11565b905060006133a985613e11565b90506133b9838989858589613846565b60008681526006602090815260408083206001600160a01b038c168452909152902054858110156133fc5760405162461bcd60e51b81526004016106b19061544f565b60008781526006602090815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061343b908490615499565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816916000805160206159e1833981519152910160405180910390a4613489848a8a8a8a8a613e5c565b505050505050505050565b60006001600160e01b031982166314d9799760e21b14806134c557506001600160e01b031982166328f10a2160e01b145b806134d457506134d48261166f565b806134ef57506001600160e01b03198216635d9dd7eb60e11b145b8061350a57506001600160e01b03198216632dde656160e21b145b8061352557506001600160e01b031982166335681b5360e21b145b806106df57506001600160e01b0319821663152a902d60e11b1492915050565b600061355083613f1e565b80156116fd57506116fd8383613f51565b6060600061356e83613fda565b60010190506000816001600160401b0381111561358d5761358d614833565b6040519080825280601f01601f1916602001820160405280156135b7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846135c157509392505050565b8281146136125760405162461bcd60e51b81526004016106b19061502f565b6000805b8281101561364c5783838281811061363057613630614fea565b90506020020135826136429190615499565b9150600101613616565b50612710811061089f5760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b60448201526064016106b1565b60005b828110156110a4578160405180604001604052808888858181106136c1576136c1614fea565b90506020020160208101906136d691906145b4565b6001600160a01b031681526020018686858181106136f6576136f6614fea565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b03909116179190911790550161369b565b6000818152600183016020526040812054801561383c5760006137776001836154bf565b855490915060009061378b906001906154bf565b90508181146137f05760008660000182815481106137ab576137ab614fea565b90600052602060002001549050808760000184815481106137ce576137ce614fea565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806138015761380161566b565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106df565b60009150506106df565b6110a4858585856140b0565b613864846001600160a01b03166139b4565b156110a45760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061389d9089908990889088908890600401615681565b6020604051808303816000875af19250505080156138d8575060408051601f3d908101601f191682019092526138d5918101906156d3565b60015b613984576138e46156f0565b806308c379a00361391d57506138f861570c565b80613903575061391f565b8060405162461bcd60e51b81526004016106b19190614621565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016106b1565b6001600160e01b0319811663bc197c8160e01b146127fe5760405162461bcd60e51b81526004016106b190615795565b6001600160a01b03163b151590565b60008260000182815481106139da576139da614fea565b9060005260206000200154905092915050565b6001600160a01b038316613a135760405162461bcd60e51b81526004016106b1906157dd565b336000613a1f84613e11565b90506000613a2c84613e11565b9050613a4c83876000858560405180602001604052806000815250613846565b60008581526006602090815260408083206001600160a01b038a16845290915290205484811015613a8f5760405162461bcd60e51b81526004016106b190615820565b60008681526006602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816916000805160206159e1833981519152910160405180910390a46040805160208101909152600090526127fe565b6001600160a01b038316613b1d5760405162461bcd60e51b81526004016106b1906157dd565b8051825114613b3e5760405162461bcd60e51b81526004016106b1906153c2565b6000339050613b6181856000868660405180602001604052806000815250613846565b60005b8351811015613c29576000848281518110613b8157613b81614fea565b602002602001015190506000848381518110613b9f57613b9f614fea565b60209081029190910181015160008481526006835260408082206001600160a01b038c168352909352919091205490915081811015613bf05760405162461bcd60e51b81526004016106b190615820565b60009283526006602090815260408085206001600160a01b038b1686529091529092209103905580613c2181615016565b915050613b64565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03166000805160206159c18339815191528686604051613c689291906154ac565b60405180910390a4604080516020810190915260009052610bb5565b336000908152601560205260409020546001600160a01b03161561084d5733600081815260156020526040908190205490516378ea2a9760e11b81526001600160a01b039091169163f1d4552e91613ce59190879087908790600401615864565b600060405180830381600087803b158015613cff57600080fd5b505af11580156127fe573d6000803e3d6000fd5b613d1f848484846142ef565b60008381526017602052604081208054849290613d3d908490615499565b909155505050505050565b613d54848484846143bf565b60005b835181101561089f57828181518110613d7257613d72614fea565b602002602001015160176000868481518110613d9057613d90614fea565b602002602001015181526020019081526020016000206000828254613db59190615499565b9091555050600101613d57565b6000818152600183016020526040812054613e09575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106df565b5060006106df565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613e4b57613e4b614fea565b602090810291909101015292915050565b613e6e846001600160a01b03166139b4565b156110a45760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613ea790899089908890889088906004016158ae565b6020604051808303816000875af1925050508015613ee2575060408051601f3d908101601f19168201909252613edf918101906156d3565b60015b613eee576138e46156f0565b6001600160e01b0319811663f23a6e6160e01b146127fe5760405162461bcd60e51b81526004016106b190615795565b6000613f31826301ffc9a760e01b613f51565b80156106df5750613f4a826001600160e01b0319613f51565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015613fc3575060208210155b8015613fcf5750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106140195772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614043576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061406157662386f26fc10000830492506010015b6305f5e1008310614079576305f5e100830492506008015b612710831061408d57612710830492506004015b6064831061409f576064830492506002015b600a83106106df5760010192915050565b6001600160a01b03841615610bb557600060166000846000815181106140d8576140d8614fea565b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b0316905060005b835181101561417957816001600160a01b03166016600086848151811061413057614130614fea565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146141715760405162461bcd60e51b81526004016106b1906154d2565b600101614107565b506001600160a01b038116158015906141aa57506001600160a01b03811660009081526014602052604090205460ff165b156142475760405163e483517760e01b81526001600160a01b0382169063e4835177906141e390339089908990899089906004016158e8565b6020604051808303816000875af1158015614202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614226919061592e565b6142425760405162461bcd60e51b81526004016106b19061594b565b61089f565b6009546001600160a01b03161561089f5760095460405163e483517760e01b81526001600160a01b039091169063e48351779061429090339089908990899089906004016158e8565b6020604051808303816000875af11580156142af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d3919061592e565b61089f5760405162461bcd60e51b81526004016106b19061594b565b6001600160a01b0384166143155760405162461bcd60e51b81526004016106b19061597f565b33600061432185613e11565b9050600061432e85613e11565b905061433f83600089858589613846565b60008681526006602090815260408083206001600160a01b038b16845290915281208054879290614371908490615499565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716916000805160206159e1833981519152910160405180910390a46127fe83600089898989613e5c565b6001600160a01b0384166143e55760405162461bcd60e51b81526004016106b19061597f565b81518351146144065760405162461bcd60e51b81526004016106b1906153c2565b3361441681600087878787613846565b60005b84518110156144b25783818151811061443457614434614fea565b60200260200101516006600087848151811061445257614452614fea565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461449a9190615499565b909155508190506144aa81615016565b915050614419565b50846001600160a01b031660006001600160a01b0316826001600160a01b03166000805160206159c183398151915287876040516144f19291906154ac565b60405180910390a461089f81600087878787613852565b508054600082559060005260206000209081019061075791905b80821115610b635780546001600160b01b0319168155600101614522565b6001600160a01b038116811461075757600080fd5b6000806040838503121561456857600080fd5b823561457381614540565b946020939093013593505050565b6001600160e01b03198116811461075757600080fd5b6000602082840312156145a957600080fd5b81356116fd81614581565b6000602082840312156145c657600080fd5b81356116fd81614540565b60005b838110156145ec5781810151838201526020016145d4565b50506000910152565b6000815180845261460d8160208601602086016145d1565b601f01601f19169290920160200192915050565b6020815260006116fd60208301846145f5565b60006020828403121561464657600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561467d57815187529582019590820190600101614661565b509495945050505050565b6020815260006116fd602083018461464d565b60008083601f8401126146ad57600080fd5b5081356001600160401b038111156146c457600080fd5b60208301915083602082850101111561097057600080fd5b6000806000604084860312156146f157600080fd5b8335925060208401356001600160401b0381111561470e57600080fd5b61471a8682870161469b565b9497909650939450505050565b60008083601f84011261473957600080fd5b5081356001600160401b0381111561475057600080fd5b6020830191508360208260051b850101111561097057600080fd5b60008060008060006060868803121561478357600080fd5b8535945060208601356001600160401b03808211156147a157600080fd5b6147ad89838a01614727565b909650945060408801359150808211156147c657600080fd5b506147d388828901614727565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561480b57600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561486e5761486e614833565b6040525050565b60006001600160401b0382111561488e5761488e614833565b5060051b60200190565b600082601f8301126148a957600080fd5b813560206148b682614875565b6040516148c38282614849565b83815260059390931b85018201928281019150868411156148e357600080fd5b8286015b848110156148fe57803583529183019183016148e7565b509695505050505050565b60006001600160401b0382111561492257614922614833565b50601f01601f191660200190565b600082601f83011261494157600080fd5b813561494c81614909565b6040516149598282614849565b82815285602084870101111561496e57600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080600060a086880312156149a457600080fd5b85356149af81614540565b945060208601356149bf81614540565b935060408601356001600160401b03808211156149db57600080fd5b6149e789838a01614898565b945060608801359150808211156149fd57600080fd5b614a0989838a01614898565b93506080880135915080821115614a1f57600080fd5b50614a2c88828901614930565b9150509295509295909350565b60008060208385031215614a4c57600080fd5b82356001600160401b03811115614a6257600080fd5b614a6e8582860161469b565b90969095509350505050565b600080600060408486031215614a8f57600080fd5b8335614a9a81614540565b925060208401356001600160401b0381111561470e57600080fd5b600081518084526020808501945080840160005b8381101561467d5781516001600160a01b031687529582019590820190600101614ac9565b6020815260006116fd6020830184614ab5565b60008060008060408587031215614b1757600080fd5b84356001600160401b0380821115614b2e57600080fd5b614b3a88838901614727565b90965094506020870135915080821115614b5357600080fd5b50614b6087828801614727565b95989497509550505050565b600080600080600060608688031215614b8457600080fd5b8535614b8f81614540565b945060208601356001600160401b03808211156147a157600080fd5b801515811461075757600080fd5b60008060008060608587031215614bcf57600080fd5b8435614bda81614540565b935060208501356001600160401b03811115614bf557600080fd5b614c018782880161469b565b9094509250506040850135614c1581614bab565b939692955090935050565b60008060408385031215614c3357600080fd5b82356001600160401b0380821115614c4a57600080fd5b818501915085601f830112614c5e57600080fd5b81356020614c6b82614875565b604051614c788282614849565b83815260059390931b8501820192828101915089841115614c9857600080fd5b948201945b83861015614cbf578535614cb081614540565b82529482019490820190614c9d565b96505086013592505080821115614cd557600080fd5b50614ce285828601614898565b9150509250929050565b60008060008060008060608789031215614d0557600080fd5b86356001600160401b0380821115614d1c57600080fd5b614d288a838b01614727565b90985096506020890135915080821115614d4157600080fd5b614d4d8a838b01614727565b90965094506040890135915080821115614d6657600080fd5b50614d7389828a01614727565b979a9699509497509295939492505050565b600080600060408486031215614d9a57600080fd5b83356001600160401b03811115614db057600080fd5b614dbc8682870161469b565b9094509250506020840135614dd081614bab565b809150509250925092565b60008060408385031215614dee57600080fd5b8235614df981614540565b91506020830135614e0981614bab565b809150509250929050565b600060208284031215614e2657600080fd5b81356116fd81614bab565b604081526000614e446040830185614ab5565b8281036020840152614e56818561464d565b95945050505050565b60008060408385031215614e7257600080fd5b8235614e7d81614540565b91506020830135614e0981614540565b600080600080600060a08688031215614ea557600080fd5b8535614eb081614540565b94506020860135614ec081614540565b9350604086013592506060860135915060808601356001600160401b03811115614ee957600080fd5b614a2c88828901614930565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614f4d57607f821691505b602082108103611aa657634e487b7160e01b600052602260045260246000fd5b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161502857615028615000565b5060010190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6000808335601e1984360301811261506d57600080fd5b8301803591506001600160401b0382111561508757600080fd5b60200191503681900382131561097057600080fd5b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b600081546150d081614f39565b600182811680156150e857600181146150fd5761512c565b60ff198416875282151583028701945061512c565b8560005260208060002060005b858110156151235781548a82015290840190820161510a565b50505082870194505b5050505092915050565b600061514b61514583866150c3565b846150c3565b949350505050565b60006020828403121561516557600080fd5b81516001600160401b0381111561517b57600080fd5b8201601f8101841361518c57600080fd5b805161519781614909565b6040516151a48282614849565b8281528660208486010111156151b957600080fd5b6111f78360208301602087016145d1565b60006151d682856150c3565b83516151e68183602088016145d1565b01949350505050565b601f82111561084d57600081815260208120601f850160051c810160208610156152165750805b601f850160051c820191505b818110156110a457828155600101615222565b6001600160401b0383111561524c5761524c614833565b6152608361525a8354614f39565b836151ef565b6000601f841160018114615294576000851561527c5750838201355b600019600387901b1c1916600186901b17835561089f565b600083815260209020601f19861690835b828110156152c557868501358255602094850194600190920191016152a5565b50868210156152e25760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835260006001600160fb1b0383111561530d57600080fd5b8260051b80836020870137939093016020019392505050565b6040808252810184905260008560608301825b8781101561536957823561534c81614540565b6001600160a01b0316825260209283019290910190600101615339565b50838103602085015261537d8186886152f4565b98975050505050505050565b80820281158282048414176106df576106df615000565b6000826153bd57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156106df576106df615000565b604081526000614e44604083018561464d565b818103818111156106df576106df615000565b6020808252601c908201527b4d69736d61746368656420746f6b656e206f726967696e61746f727360201b604082015260600190565b6001600160a01b038616815260606020820181905260009061552d90830186886152f4565b828103604084015261537d8185876152f4565b600082601f83011261555157600080fd5b8151602061555e82614875565b60405161556b8282614849565b83815260059390931b850182019282810191508684111561558b57600080fd5b8286015b848110156148fe578051835291830191830161558f565b600080604083850312156155b957600080fd5b82516001600160401b03808211156155d057600080fd5b818501915085601f8301126155e457600080fd5b815160206155f182614875565b6040516155fe8282614849565b83815260059390931b850182019282810191508984111561561e57600080fd5b948201945b8386101561564557855161563681614540565b82529482019490820190615623565b9188015191965090935050508082111561565e57600080fd5b50614ce285828601615540565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0386811682528516602082015260a0604082018190526000906156ad9083018661464d565b82810360608401526156bf818661464d565b9050828103608084015261537d81856145f5565b6000602082840312156156e557600080fd5b81516116fd81614581565b600060033d11156157095760046000803e5060005160e01c5b90565b600060443d101561571a5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561574957505050505090565b82850191508151818111156157615750505050505090565b843d870101602082850101111561577b5750505050505090565b61578a60208286010187614849565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b038516815260806020820181905260009061588890830186614ab5565b828103604084015261589a818661464d565b90508281036060840152613fcf818561464d565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090613fcf908301846145f5565b6001600160a01b03868116825285811660208301528416604082015260a06060820181905260009061591c9083018561464d565b828103608084015261537d818561464d565b60006020828403121561594057600080fd5b81516116fd81614bab565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b604082015260600190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b60608201526080019056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a2646970667358221220be00994e15b18356081751b76cabdaf83fd382e3856045783c17aed8030d7c1e64736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102605760003560e01c8063695c96e61161014d578063695c96e61461048b5780636d73e6691461049e578063715018a6146104b157806382dcc0c8146104b957806383b7db63146104cc5780638c6e8472146104d45780638da5cb5b146104e757806395d89b41146104ef57806399e0dd7c146104f7578063a22cb4651461050a578063aafb2d441461051d578063ac0c8cfa14610530578063b0fe87c914610543578063b9c4d9fb14610556578063bb3bafd614610569578063bd85b0391461058a578063ce8aee9d146105aa578063d5a06d4c14610569578063e6c884dc146105bd578063e92a89f6146105d0578063e985e9c5146105e3578063f0cdc499146105f6578063f242432a14610609578063f2fde38b1461061c578063feeb5a9a1461062f578063ffa1ad741461064257600080fd5b8062fdd58e1461026557806301ffc9a71461028b57806302e7afb7146102ae57806306fdde03146102c35780630e89341c146102d85780630ebd4c7f146102eb578063162094c41461030b57806320e4afe21461031e57806322f374d014610331578063239be3171461034b57806324d7806c1461035e5780632a55205a146103715780632d345670146103925780632eb2c2d6146103a557806330176e13146103b85780633071a0f9146103cb57806331ae450b146103de578063332dd1ae146103f35780633db0f8ab146104065780633e6134b8146104195780633f0f37f61461042c5780634e1273f41461043f578063596798ad1461045257806361e5bc6b1461046557806366d1e9d014610478575b600080fd5b610278610273366004614555565b61064a565b6040519081526020015b60405180910390f35b61029e610299366004614597565b6106e5565b6040519015158152602001610282565b6102c16102bc3660046145b4565b61070e565b005b6102cb61075a565b6040516102829190614621565b6102cb6102e6366004614634565b6107ec565b6102fe6102f9366004614634565b6107f7565b6040516102829190614688565b6102c16103193660046146dc565b610802565b6102c161032c36600461476b565b610852565b6009546001600160a01b03165b60405161028291906147e4565b61033e610359366004614634565b6108a6565b61029e61036c3660046145b4565b61092f565b61038461037f3660046147f8565b61095e565b60405161028292919061481a565b6102c16103a03660046145b4565b610977565b6102c16103b336600461498c565b6109d4565b6102c16103c6366004614a39565b610a19565b6102c16103d9366004614a7a565b610a63565b6103e6610ab9565b6040516102829190614aee565b6102c1610401366004614b01565b610b67565b6102c1610414366004614b6c565b610bbb565b6102c1610427366004614a39565b610d19565b6102c161043a366004614bb9565b610d2d565b6102fe61044d366004614c20565b610d82565b6102c16104603660046145b4565b610eab565b6102c1610473366004614b01565b610ef4565b6102c1610486366004614a39565b610f73565b6102c1610499366004614cec565b610f85565b6102c16104ac3660046145b4565b6110ac565b6102c1611104565b6102c16104c7366004614d85565b611118565b6103e661112b565b6102fe6104e2366004614cec565b6111cb565b61033e611201565b6102cb611210565b6102c1610505366004614a39565b61121f565b6102c1610518366004614ddb565b611269565b6102c161052b366004614b01565b611274565b6102c161053e366004614e14565b61132b565b6102c1610551366004614b6c565b61133d565b6103e6610564366004614634565b61138a565b61057c610577366004614634565b611395565b604051610282929190614e31565b610278610598366004614634565b60009081526017602052604090205490565b6102c16105b83660046145b4565b6113aa565b6102c16105cb366004614cec565b6113f3565b6102c16105de3660046146dc565b6114aa565b61029e6105f1366004614e5f565b6114bd565b6102c1610604366004614e5f565b6114eb565b6102c1610617366004614e8d565b611535565b6102c161062a3660046145b4565b61157a565b6102fe61063d366004614cec565b6115f0565b610278600381565b60006001600160a01b0383166106ba5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526006602090815260408083206001600160a01b03861684529091529020545b92915050565b60006106f08261164a565b806106ff57506106ff8261166f565b806106df57506106df826116aa565b33610717611201565b6001600160a01b0316148061073257506107326002336116df565b61074e5760405162461bcd60e51b81526004016106b190614ef5565b61075781611704565b50565b60606004805461076990614f39565b80601f016020809104026020016040519081016040528092919081815260200182805461079590614f39565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b60606106df82611810565b60606106df82611aac565b3361080b611201565b6001600160a01b0316148061082657506108266002336116df565b6108425760405162461bcd60e51b81526004016106b190614ef5565b61084d838383611ab7565b505050565b3361085b611201565b6001600160a01b0316148061087657506108766002336116df565b6108925760405162461bcd60e51b81526004016106b190614ef5565b61089f8585858585611b1b565b5050505050565b60006108b182611ba2565b90506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b60448201526064016106b1565b61090d600c826116df565b1561092a5760405162461bcd60e51b81526004016106b190614f6d565b919050565b6000816001600160a01b0316610943611201565b6001600160a01b031614806106df57506106df6002836116df565b60008061096b8484611bbd565b915091505b9250929050565b61097f611c93565b61098a6002826116df565b156107575760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36109d0600282611cf2565b5050565b6001600160a01b0385163314806109f057506109f085336114bd565b610a0c5760405162461bcd60e51b81526004016106b190614f9c565b61089f8585858585611d07565b33610a22611201565b6001600160a01b03161480610a3d5750610a3d6002336116df565b610a595760405162461bcd60e51b81526004016106b190614ef5565b6109d08282611e9a565b33610a6c611201565b6001600160a01b03161480610a875750610a876002336116df565b610aa35760405162461bcd60e51b81526004016106b190614ef5565b610aac83611ecf565b61084d8383836000611ef7565b6060610ac56002611fe8565b6001600160401b03811115610adc57610adc614833565b604051908082528060200260200182016040528015610b05578160200160208202803683370190505b50905060005b610b156002611fe8565b811015610b6357610b27600282611ff2565b828281518110610b3957610b39614fea565b6001600160a01b039092166020928302919091019091015280610b5b81615016565b915050610b0b565b5090565b33610b70611201565b6001600160a01b03161480610b8b5750610b8b6002336116df565b610ba75760405162461bcd60e51b81526004016106b190614ef5565b610bb5600085858585611ffe565b50505050565b610bc36120eb565b6001600160a01b038516331480610bdf5750610bdf85336114bd565b610c2b5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f7665640060448201526064016106b1565b828114610c4a5760405162461bcd60e51b81526004016106b19061502f565b6001839003610c9557610c908585856000818110610c6a57610c6a614fea565b9050602002013584846000818110610c8457610c84614fea565b90506020020135612144565b610d03565b610d03858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201919091525061217792505050565b610d1085858585856121f0565b61089f60018055565b610d21612352565b6109d0828260006123a8565b33610d36611201565b6001600160a01b03161480610d515750610d516002336116df565b610d6d5760405162461bcd60e51b81526004016106b190614ef5565b610d7684611ecf565b610bb584848484611ef7565b60608151835114610de75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016106b1565b600083516001600160401b03811115610e0257610e02614833565b604051908082528060200260200182016040528015610e2b578160200160208202803683370190505b50905060005b8451811015610ea357610e76858281518110610e4f57610e4f614fea565b6020026020010151858381518110610e6957610e69614fea565b602002602001015161064a565b828281518110610e8857610e88614fea565b6020908102919091010152610e9c81615016565b9050610e31565b509392505050565b33610eb4611201565b6001600160a01b03161480610ecf5750610ecf6002336116df565b610eeb5760405162461bcd60e51b81526004016106b190614ef5565b610757816123e5565b610efc612352565b828114610f1b5760405162461bcd60e51b81526004016106b19061502f565b60005b8381101561089f57610f6b858583818110610f3b57610f3b614fea565b90506020020135848484818110610f5457610f54614fea565b9050602002810190610f669190615056565b61243b565b600101610f1e565b610f7b612352565b6109d08282612445565b610f8d6120eb565b33610f96611201565b6001600160a01b03161480610fb15750610fb16002336116df565b610fcd5760405162461bcd60e51b81526004016106b190614ef5565b60005b8381101561108a576000858583818110610fec57610fec614fea565b90506020020135905060008111801561100757506008548111155b6110235760405162461bcd60e51b81526004016106b19061509c565b600061102e82611ba2565b6001600160a01b0316146110815760405162461bcd60e51b815260206004820152601a6024820152792a37b5b2b71031b932b0ba32b210313c9032bc3a32b739b4b7b760311b60448201526064016106b1565b50600101610fd0565b5061109b600087878787878761245f565b6110a460018055565b505050505050565b6110b4611c93565b6110bf6002826116df565b6107575760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36109d0600282612807565b61110c611c93565b611116600061281c565b565b611120612352565b61084d8383836123a8565b6060611137600a611fe8565b6001600160401b0381111561114e5761114e614833565b604051908082528060200260200182016040528015611177578160200160208202803683370190505b50905060005b611187600a611fe8565b811015610b6357611199600a82611ff2565b8282815181106111ab576111ab614fea565b6001600160a01b039092166020928302919091019091015260010161117d565b60606111d56120eb565b6111dd612352565b6111ec3388888888888861286c565b90506111f760018055565b9695505050505050565b6000546001600160a01b031690565b60606005805461076990614f39565b33611228611201565b6001600160a01b0316148061124357506112436002336116df565b61125f5760405162461bcd60e51b81526004016106b190614ef5565b6109d08282612cb3565b6109d0338383612ce8565b3361127d611201565b6001600160a01b0316148061129857506112986002336116df565b6112b45760405162461bcd60e51b81526004016106b190614ef5565b8281146112d35760405162461bcd60e51b81526004016106b19061502f565b60005b8381101561089f576113238585838181106112f3576112f3614fea565b9050602002013584848481811061130c5761130c614fea565b905060200281019061131e9190615056565b611ab7565b6001016112d6565b611333612352565b6107573382612dc8565b33611346611201565b6001600160a01b0316148061136157506113616002336116df565b61137d5760405162461bcd60e51b81526004016106b190614ef5565b61089f8585858585611ffe565b60606106df82612e40565b6060806113a183612e52565b91509150915091565b336113b3611201565b6001600160a01b031614806113ce57506113ce6002336116df565b6113ea5760405162461bcd60e51b81526004016106b190614ef5565b61075781613200565b6113fb6120eb565b611403612352565b60005b8381101561149a573361143086868481811061142457611424614fea565b90506020020135611ba2565b6001600160a01b0316146114925760405162461bcd60e51b815260206004820152602360248201527f546f6b656e206e6f742063726561746564206279207468697320657874656e7360448201526234b7b760e91b60648201526084016106b1565b600101611406565b5061109b3387878787878761245f565b6114b2612352565b61084d83838361243b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b336114f4611201565b6001600160a01b0316148061150f575061150f6002336116df565b61152b5760405162461bcd60e51b81526004016106b190614ef5565b6109d08282613241565b6001600160a01b038516331480611551575061155185336114bd565b61156d5760405162461bcd60e51b81526004016106b190614f9c565b61089f858585858561336a565b611582611c93565b6001600160a01b0381166115e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b1565b6107578161281c565b60606115fa6120eb565b33611603611201565b6001600160a01b0316148061161e575061161e6002336116df565b61163a5760405162461bcd60e51b81526004016106b190614ef5565b6111ec600088888888888861286c565b60006001600160e01b031982166301f4921160e61b14806106df57506106df82613494565b60006001600160e01b03198216636cdb3d1360e11b14806106ff57506001600160e01b031982166303a24d0760e21b14806106df57506106df825b60006001600160e01b03198216632a9f3abf60e11b14806106df57506301ffc9a760e01b6001600160e01b03198316146106df565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6001600160a01b0381161580159061172557506001600160a01b0381163014155b61176d5760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b60448201526064016106b1565b611778600a826116df565b156117c05760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36117be600a82611cf2565b505b6117cb600c826116df565b6107575760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a36109d0600c82612807565b606060008211801561182457506008548211155b6118405760405162461bcd60e51b81526004016106b19061509c565b600061184b83611ba2565b9050611858600c826116df565b156118755760405162461bcd60e51b81526004016106b190614f6d565b6000838152601160205260409020805461188e90614f39565b1590506119a8576001600160a01b038116600090815260106020526040902080546118b890614f39565b159050611909576001600160a01b0381166000908152601060209081526040808320868452601183529281902090516118f2939201615136565b604051602081830303815290604052915050919050565b6000838152601160205260409020805461192290614f39565b80601f016020809104026020016040519081016040528092919081815260200182805461194e90614f39565b801561199b5780601f106119705761010080835404028352916020019161199b565b820191906000526020600020905b81548152906001019060200180831161197e57829003601f168201915b5050505050915050919050565b6119b98163e9dc637560e01b613545565b15611a315760405163e9dc637560e01b81526001600160a01b0382169063e9dc6375906119ec903090879060040161481a565b600060405180830381865afa158015611a09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116fd9190810190615153565b6001600160a01b0381166000908152600f602052604090205460ff16611a83576001600160a01b0381166000908152600e60205260409020611a7284613561565b6040516020016118f29291906151ca565b6001600160a01b0381166000908152600e60205260409020805461192290614f39565b50919050565b60606116fd82612e52565b600083118015611ac957506008548311155b8015611ae657506000611adb84611ba2565b6001600160a01b0316145b611b025760405162461bcd60e51b81526004016106b19061509c565b6000838152601160205260409020610bb5828483615235565b611b27848484846135f3565b6000858152601360205260408120611b3e91614508565b611b5d84848484601360008b8152602001908152602001600020613698565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee85858585604051611b939493929190615326565b60405180910390a25050505050565b6000908152601660205260409020546001600160a01b031690565b600080600080611bcc86612e52565b91509150600182511115611c215760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b60448201526064016106b1565b8151600003611c3857306000935093505050610970565b81600081518110611c4b57611c4b614fea565b60200260200101516127108683600081518110611c6a57611c6a614fea565b6020026020010151611c7c9190615389565b611c8691906153a0565b9350935050509250929050565b33611c9c611201565b6001600160a01b0316146111165760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106b1565b60006116fd836001600160a01b038416613753565b8151835114611d285760405162461bcd60e51b81526004016106b1906153c2565b6001600160a01b038416611d4e5760405162461bcd60e51b81526004016106b19061540a565b33611d5d818787878787613846565b60005b8451811015611e46576000858281518110611d7d57611d7d614fea565b602002602001015190506000858381518110611d9b57611d9b614fea565b60209081029190910181015160008481526006835260408082206001600160a01b038e168352909352919091205490915081811015611dec5760405162461bcd60e51b81526004016106b19061544f565b60008381526006602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611e2b908490615499565b9250508190555050505080611e3f90615016565b9050611d60565b50846001600160a01b0316866001600160a01b0316826001600160a01b03166000805160206159c18339815191528787604051611e849291906154ac565b60405180910390a46110a4818787878787613852565b60008052600e6020527fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c61084d828483615235565b611eda600c826116df565b156107575760405162461bcd60e51b81526004016106b190614f6d565b6001600160a01b0384163014801590611f1d5750611f1d846001600160a01b03166139b4565b611f535760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106b1565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152600e60205260409020611fac838583615235565b506001600160a01b0384166000908152600f60205260409020805460ff1916821515179055611fdc600a85612807565b50610bb5846001612dc8565b60006106df825490565b60006116fd83836139c3565b61200a848484846135f3565b6001600160a01b038516600090815260126020526040812061202b91614508565b61205c84848484601260008b6001600160a01b03166001600160a01b03168152602001908152602001600020613698565b6001600160a01b0385166120ac577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b8484848460405161209f9493929190615326565b60405180910390a161089f565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f85858585604051611b939493929190615326565b60026001540361213d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106b1565b6002600155565b61214f8383836139ed565b6000828152601760205260408120805483929061216d9084906154bf565b9091555050505050565b612182838383613af7565b60005b8251811015610bb5578181815181106121a0576121a0614fea565b6020026020010151601760008584815181106121be576121be614fea565b6020026020010151815260200190815260200160002060008282546121e391906154bf565b9091555050600101612185565b8261220d5760405162461bcd60e51b81526004016106b19061502f565b6000601660008686600081811061222657612226614fea565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b848110156122be57816001600160a01b03166016600088888581811061227657612276614fea565b60209081029290920135835250810191909152604001600020546001600160a01b0316146122b65760405162461bcd60e51b81526004016106b1906154d2565b60010161224e565b506001600160a01b038116156110a4576122df816303dc6f6560e51b613545565b156110a4576040516303dc6f6560e51b81526001600160a01b03821690637b8deca0906123189089908990899089908990600401615508565b600060405180830381600087803b15801561233257600080fd5b505af1158015612346573d6000803e3d6000fd5b50505050505050505050565b61235d600a336116df565b6111165760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b60448201526064016106b1565b336000908152600e602052604090206123c2838583615235565b50336000908152600f60205260409020805460ff19169115159190911790555050565b600980546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f906124309083906147e4565b60405180910390a150565b33611adb84611ba2565b33600090815260106020526040902061084d828483615235565b6001600160a01b0387161561250c5761250c86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250613c8492505050565b60018514801561251c5750600183145b80156125285750600181145b156125a9576125a48686600081811061254357612543614fea565b905060200201602081019061255891906145b4565b8585600081811061256b5761256b614fea565b905060200201358484600081811061258557612585614fea565b6040805160008152602080820190925291029290920135919050613d13565b6127fe565b6001851480156125b857508281145b15612682576125a4868660008181106125d3576125d3614fea565b90506020020160208101906125e891906145b4565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201829052509250612652915050565b6040519080825280601f01601f19166020018201604052801561267c576020820181803683370190505b50613d48565b6001831480156126925750600181145b156127075760005b85811015612701576126f98787838181106126b7576126b7614fea565b90506020020160208101906126cc91906145b4565b868660008181106126df576126df614fea565b905060200201358585600081811061258557612585614fea565b60010161269a565b506127fe565b60018314801561271657508481145b156127845760005b858110156127015761277c87878381811061273b5761273b614fea565b905060200201602081019061275091906145b4565b8686600081811061276357612763614fea565b9050602002013585858581811061258557612585614fea565b60010161271e565b848314801561279257508481145b156127e65760005b85811015612701576127de8787838181106127b7576127b7614fea565b90506020020160208101906127cc91906145b4565b86868481811061276357612763614fea565b60010161279a565b60405162461bcd60e51b81526004016106b19061502f565b50505050505050565b60006116fd836001600160a01b038416613dc2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060018611156128d2576040805160018082528183019092529060208083019080368337019050509050600182118015906128b1575060018414806128b157508584145b6128cd5760405162461bcd60e51b81526004016106b19061502f565b61293e565b836001600160401b038111156128ea576128ea614833565b604051908082528060200260200182016040528015612913578160200160208202803683370190505b50905081158061292257508382145b61293e5760405162461bcd60e51b81526004016106b19061502f565b60005b81518110156129b55760086000815461295990615016565b90915550600854825183908390811061297457612974614fea565b602090810291909101810191909152600854600090815260169091526040902080546001600160a01b0319166001600160a01b038b16179055600101612941565b506001600160a01b03881615612a3557612a3587878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82528794509092508a918a91829190850190849080828437600092019190915250613c8492505050565b600186148015612a46575080516001145b15612aa957612aa487876000818110612a6157612a61614fea565b9050602002016020810190612a7691906145b4565b82600081518110612a8957612a89614fea565b60200260200101518787600081811061258557612585614fea565b612bfb565b6001861115612b96576001849003612b2c5760005b86811015612b2657612b1e888883818110612adb57612adb614fea565b9050602002016020810190612af091906145b4565b83600081518110612b0357612b03614fea565b60200260200101518888600081811061258557612585614fea565b600101612abe565b50612bfb565b60005b86811015612b2657612b8e888883818110612b4c57612b4c614fea565b9050602002016020810190612b6191906145b4565b83600081518110612b7457612b74614fea565b602002602001015188888581811061258557612585614fea565b600101612b2f565b612bfb87876000818110612bac57612bac614fea565b9050602002016020810190612bc191906145b4565b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250612652915050565b60005b8151811015612ca7578281108015612c3b57506000848483818110612c2557612c25614fea565b9050602002810190612c379190615056565b9050115b15612c9f57838382818110612c5257612c52614fea565b9050602002810190612c649190615056565b60116000858581518110612c7a57612c7a614fea565b602002602001015181526020019081526020016000209182612c9d929190615235565b505b600101612bfe565b50979650505050505050565b6000805260106020527f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb0161084d828483615235565b816001600160a01b0316836001600160a01b031603612d5b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016106b1565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612ddc826001620e90cb60e41b0319613545565b156109d0576001600160a01b038216600081815260146020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b6060612e4b82612e52565b5092915050565b606080600060136000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015612ed457600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612e8a565b5050505090508051600003613021576000612eee85611ba2565b90506001600160a01b0381161561301f57612f1081634e53ee3d60e11b613545565b15612f9b57604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a90612f43903090899060040161481a565b600060405180830381865afa158015612f60573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f8891908101906155a6565b8151919550935015612f9b575050915091565b6001600160a01b038116600090815260126020908152604080832080548251818502810185019093528083529193909284015b8282101561301857600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101612fce565b5050505091505b505b80516000036130c4576000808052601260209081527f7e7fa33969761a458e04f477e039a608702b4f924981d6653935a8319a08ad7b8054604080518285028101850190915281815293919290919084015b828210156130bd57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613073565b5050505090505b8051156131fa5780516001600160401b038111156130e4576130e4614833565b60405190808252806020026020018201604052801561310d578160200160208202803683370190505b50925080516001600160401b0381111561312957613129614833565b604051908082528060200260200182016040528015613152578160200160208202803683370190505b50915060005b81518110156131f85781818151811061317357613173614fea565b60200260200101516000015184828151811061319157613191614fea565b60200260200101906001600160a01b031690816001600160a01b0316815250508181815181106131c3576131c3614fea565b60200260200101516020015161ffff168382815181106131e5576131e5614fea565b6020908102919091010152600101613158565b505b50915091565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36109d0600a82611cf2565b61324c600a836116df565b61328c5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21032bc3a32b739b4b7b760791b60448201526064016106b1565b6001600160a01b03811615806132ae57506132ae816378ea2a9760e11b613545565b6132ec5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106b1565b6001600160a01b038281166000908152601560205260409020548116908216146109d0576001600160a01b0382811660008181526015602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b6001600160a01b0384166133905760405162461bcd60e51b81526004016106b19061540a565b33600061339c85613e11565b905060006133a985613e11565b90506133b9838989858589613846565b60008681526006602090815260408083206001600160a01b038c168452909152902054858110156133fc5760405162461bcd60e51b81526004016106b19061544f565b60008781526006602090815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061343b908490615499565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816916000805160206159e1833981519152910160405180910390a4613489848a8a8a8a8a613e5c565b505050505050505050565b60006001600160e01b031982166314d9799760e21b14806134c557506001600160e01b031982166328f10a2160e01b145b806134d457506134d48261166f565b806134ef57506001600160e01b03198216635d9dd7eb60e11b145b8061350a57506001600160e01b03198216632dde656160e21b145b8061352557506001600160e01b031982166335681b5360e21b145b806106df57506001600160e01b0319821663152a902d60e11b1492915050565b600061355083613f1e565b80156116fd57506116fd8383613f51565b6060600061356e83613fda565b60010190506000816001600160401b0381111561358d5761358d614833565b6040519080825280601f01601f1916602001820160405280156135b7576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846135c157509392505050565b8281146136125760405162461bcd60e51b81526004016106b19061502f565b6000805b8281101561364c5783838281811061363057613630614fea565b90506020020135826136429190615499565b9150600101613616565b50612710811061089f5760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b60448201526064016106b1565b60005b828110156110a4578160405180604001604052808888858181106136c1576136c1614fea565b90506020020160208101906136d691906145b4565b6001600160a01b031681526020018686858181106136f6576136f6614fea565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b03909116179190911790550161369b565b6000818152600183016020526040812054801561383c5760006137776001836154bf565b855490915060009061378b906001906154bf565b90508181146137f05760008660000182815481106137ab576137ab614fea565b90600052602060002001549050808760000184815481106137ce576137ce614fea565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806138015761380161566b565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106df565b60009150506106df565b6110a4858585856140b0565b613864846001600160a01b03166139b4565b156110a45760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061389d9089908990889088908890600401615681565b6020604051808303816000875af19250505080156138d8575060408051601f3d908101601f191682019092526138d5918101906156d3565b60015b613984576138e46156f0565b806308c379a00361391d57506138f861570c565b80613903575061391f565b8060405162461bcd60e51b81526004016106b19190614621565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016106b1565b6001600160e01b0319811663bc197c8160e01b146127fe5760405162461bcd60e51b81526004016106b190615795565b6001600160a01b03163b151590565b60008260000182815481106139da576139da614fea565b9060005260206000200154905092915050565b6001600160a01b038316613a135760405162461bcd60e51b81526004016106b1906157dd565b336000613a1f84613e11565b90506000613a2c84613e11565b9050613a4c83876000858560405180602001604052806000815250613846565b60008581526006602090815260408083206001600160a01b038a16845290915290205484811015613a8f5760405162461bcd60e51b81526004016106b190615820565b60008681526006602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816916000805160206159e1833981519152910160405180910390a46040805160208101909152600090526127fe565b6001600160a01b038316613b1d5760405162461bcd60e51b81526004016106b1906157dd565b8051825114613b3e5760405162461bcd60e51b81526004016106b1906153c2565b6000339050613b6181856000868660405180602001604052806000815250613846565b60005b8351811015613c29576000848281518110613b8157613b81614fea565b602002602001015190506000848381518110613b9f57613b9f614fea565b60209081029190910181015160008481526006835260408082206001600160a01b038c168352909352919091205490915081811015613bf05760405162461bcd60e51b81526004016106b190615820565b60009283526006602090815260408085206001600160a01b038b1686529091529092209103905580613c2181615016565b915050613b64565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03166000805160206159c18339815191528686604051613c689291906154ac565b60405180910390a4604080516020810190915260009052610bb5565b336000908152601560205260409020546001600160a01b03161561084d5733600081815260156020526040908190205490516378ea2a9760e11b81526001600160a01b039091169163f1d4552e91613ce59190879087908790600401615864565b600060405180830381600087803b158015613cff57600080fd5b505af11580156127fe573d6000803e3d6000fd5b613d1f848484846142ef565b60008381526017602052604081208054849290613d3d908490615499565b909155505050505050565b613d54848484846143bf565b60005b835181101561089f57828181518110613d7257613d72614fea565b602002602001015160176000868481518110613d9057613d90614fea565b602002602001015181526020019081526020016000206000828254613db59190615499565b9091555050600101613d57565b6000818152600183016020526040812054613e09575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106df565b5060006106df565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613e4b57613e4b614fea565b602090810291909101015292915050565b613e6e846001600160a01b03166139b4565b156110a45760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613ea790899089908890889088906004016158ae565b6020604051808303816000875af1925050508015613ee2575060408051601f3d908101601f19168201909252613edf918101906156d3565b60015b613eee576138e46156f0565b6001600160e01b0319811663f23a6e6160e01b146127fe5760405162461bcd60e51b81526004016106b190615795565b6000613f31826301ffc9a760e01b613f51565b80156106df5750613f4a826001600160e01b0319613f51565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015613fc3575060208210155b8015613fcf5750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106140195772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614043576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061406157662386f26fc10000830492506010015b6305f5e1008310614079576305f5e100830492506008015b612710831061408d57612710830492506004015b6064831061409f576064830492506002015b600a83106106df5760010192915050565b6001600160a01b03841615610bb557600060166000846000815181106140d8576140d8614fea565b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b0316905060005b835181101561417957816001600160a01b03166016600086848151811061413057614130614fea565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146141715760405162461bcd60e51b81526004016106b1906154d2565b600101614107565b506001600160a01b038116158015906141aa57506001600160a01b03811660009081526014602052604090205460ff165b156142475760405163e483517760e01b81526001600160a01b0382169063e4835177906141e390339089908990899089906004016158e8565b6020604051808303816000875af1158015614202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614226919061592e565b6142425760405162461bcd60e51b81526004016106b19061594b565b61089f565b6009546001600160a01b03161561089f5760095460405163e483517760e01b81526001600160a01b039091169063e48351779061429090339089908990899089906004016158e8565b6020604051808303816000875af11580156142af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d3919061592e565b61089f5760405162461bcd60e51b81526004016106b19061594b565b6001600160a01b0384166143155760405162461bcd60e51b81526004016106b19061597f565b33600061432185613e11565b9050600061432e85613e11565b905061433f83600089858589613846565b60008681526006602090815260408083206001600160a01b038b16845290915281208054879290614371908490615499565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716916000805160206159e1833981519152910160405180910390a46127fe83600089898989613e5c565b6001600160a01b0384166143e55760405162461bcd60e51b81526004016106b19061597f565b81518351146144065760405162461bcd60e51b81526004016106b1906153c2565b3361441681600087878787613846565b60005b84518110156144b25783818151811061443457614434614fea565b60200260200101516006600087848151811061445257614452614fea565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461449a9190615499565b909155508190506144aa81615016565b915050614419565b50846001600160a01b031660006001600160a01b0316826001600160a01b03166000805160206159c183398151915287876040516144f19291906154ac565b60405180910390a461089f81600087878787613852565b508054600082559060005260206000209081019061075791905b80821115610b635780546001600160b01b0319168155600101614522565b6001600160a01b038116811461075757600080fd5b6000806040838503121561456857600080fd5b823561457381614540565b946020939093013593505050565b6001600160e01b03198116811461075757600080fd5b6000602082840312156145a957600080fd5b81356116fd81614581565b6000602082840312156145c657600080fd5b81356116fd81614540565b60005b838110156145ec5781810151838201526020016145d4565b50506000910152565b6000815180845261460d8160208601602086016145d1565b601f01601f19169290920160200192915050565b6020815260006116fd60208301846145f5565b60006020828403121561464657600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561467d57815187529582019590820190600101614661565b509495945050505050565b6020815260006116fd602083018461464d565b60008083601f8401126146ad57600080fd5b5081356001600160401b038111156146c457600080fd5b60208301915083602082850101111561097057600080fd5b6000806000604084860312156146f157600080fd5b8335925060208401356001600160401b0381111561470e57600080fd5b61471a8682870161469b565b9497909650939450505050565b60008083601f84011261473957600080fd5b5081356001600160401b0381111561475057600080fd5b6020830191508360208260051b850101111561097057600080fd5b60008060008060006060868803121561478357600080fd5b8535945060208601356001600160401b03808211156147a157600080fd5b6147ad89838a01614727565b909650945060408801359150808211156147c657600080fd5b506147d388828901614727565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b6000806040838503121561480b57600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561486e5761486e614833565b6040525050565b60006001600160401b0382111561488e5761488e614833565b5060051b60200190565b600082601f8301126148a957600080fd5b813560206148b682614875565b6040516148c38282614849565b83815260059390931b85018201928281019150868411156148e357600080fd5b8286015b848110156148fe57803583529183019183016148e7565b509695505050505050565b60006001600160401b0382111561492257614922614833565b50601f01601f191660200190565b600082601f83011261494157600080fd5b813561494c81614909565b6040516149598282614849565b82815285602084870101111561496e57600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080600060a086880312156149a457600080fd5b85356149af81614540565b945060208601356149bf81614540565b935060408601356001600160401b03808211156149db57600080fd5b6149e789838a01614898565b945060608801359150808211156149fd57600080fd5b614a0989838a01614898565b93506080880135915080821115614a1f57600080fd5b50614a2c88828901614930565b9150509295509295909350565b60008060208385031215614a4c57600080fd5b82356001600160401b03811115614a6257600080fd5b614a6e8582860161469b565b90969095509350505050565b600080600060408486031215614a8f57600080fd5b8335614a9a81614540565b925060208401356001600160401b0381111561470e57600080fd5b600081518084526020808501945080840160005b8381101561467d5781516001600160a01b031687529582019590820190600101614ac9565b6020815260006116fd6020830184614ab5565b60008060008060408587031215614b1757600080fd5b84356001600160401b0380821115614b2e57600080fd5b614b3a88838901614727565b90965094506020870135915080821115614b5357600080fd5b50614b6087828801614727565b95989497509550505050565b600080600080600060608688031215614b8457600080fd5b8535614b8f81614540565b945060208601356001600160401b03808211156147a157600080fd5b801515811461075757600080fd5b60008060008060608587031215614bcf57600080fd5b8435614bda81614540565b935060208501356001600160401b03811115614bf557600080fd5b614c018782880161469b565b9094509250506040850135614c1581614bab565b939692955090935050565b60008060408385031215614c3357600080fd5b82356001600160401b0380821115614c4a57600080fd5b818501915085601f830112614c5e57600080fd5b81356020614c6b82614875565b604051614c788282614849565b83815260059390931b8501820192828101915089841115614c9857600080fd5b948201945b83861015614cbf578535614cb081614540565b82529482019490820190614c9d565b96505086013592505080821115614cd557600080fd5b50614ce285828601614898565b9150509250929050565b60008060008060008060608789031215614d0557600080fd5b86356001600160401b0380821115614d1c57600080fd5b614d288a838b01614727565b90985096506020890135915080821115614d4157600080fd5b614d4d8a838b01614727565b90965094506040890135915080821115614d6657600080fd5b50614d7389828a01614727565b979a9699509497509295939492505050565b600080600060408486031215614d9a57600080fd5b83356001600160401b03811115614db057600080fd5b614dbc8682870161469b565b9094509250506020840135614dd081614bab565b809150509250925092565b60008060408385031215614dee57600080fd5b8235614df981614540565b91506020830135614e0981614bab565b809150509250929050565b600060208284031215614e2657600080fd5b81356116fd81614bab565b604081526000614e446040830185614ab5565b8281036020840152614e56818561464d565b95945050505050565b60008060408385031215614e7257600080fd5b8235614e7d81614540565b91506020830135614e0981614540565b600080600080600060a08688031215614ea557600080fd5b8535614eb081614540565b94506020860135614ec081614540565b9350604086013592506060860135915060808601356001600160401b03811115614ee957600080fd5b614a2c88828901614930565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614f4d57607f821691505b602082108103611aa657634e487b7160e01b600052602260045260246000fd5b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161502857615028615000565b5060010190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6000808335601e1984360301811261506d57600080fd5b8301803591506001600160401b0382111561508757600080fd5b60200191503681900382131561097057600080fd5b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b600081546150d081614f39565b600182811680156150e857600181146150fd5761512c565b60ff198416875282151583028701945061512c565b8560005260208060002060005b858110156151235781548a82015290840190820161510a565b50505082870194505b5050505092915050565b600061514b61514583866150c3565b846150c3565b949350505050565b60006020828403121561516557600080fd5b81516001600160401b0381111561517b57600080fd5b8201601f8101841361518c57600080fd5b805161519781614909565b6040516151a48282614849565b8281528660208486010111156151b957600080fd5b6111f78360208301602087016145d1565b60006151d682856150c3565b83516151e68183602088016145d1565b01949350505050565b601f82111561084d57600081815260208120601f850160051c810160208610156152165750805b601f850160051c820191505b818110156110a457828155600101615222565b6001600160401b0383111561524c5761524c614833565b6152608361525a8354614f39565b836151ef565b6000601f841160018114615294576000851561527c5750838201355b600019600387901b1c1916600186901b17835561089f565b600083815260209020601f19861690835b828110156152c557868501358255602094850194600190920191016152a5565b50868210156152e25760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835260006001600160fb1b0383111561530d57600080fd5b8260051b80836020870137939093016020019392505050565b6040808252810184905260008560608301825b8781101561536957823561534c81614540565b6001600160a01b0316825260209283019290910190600101615339565b50838103602085015261537d8186886152f4565b98975050505050505050565b80820281158282048414176106df576106df615000565b6000826153bd57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156106df576106df615000565b604081526000614e44604083018561464d565b818103818111156106df576106df615000565b6020808252601c908201527b4d69736d61746368656420746f6b656e206f726967696e61746f727360201b604082015260600190565b6001600160a01b038616815260606020820181905260009061552d90830186886152f4565b828103604084015261537d8185876152f4565b600082601f83011261555157600080fd5b8151602061555e82614875565b60405161556b8282614849565b83815260059390931b850182019282810191508684111561558b57600080fd5b8286015b848110156148fe578051835291830191830161558f565b600080604083850312156155b957600080fd5b82516001600160401b03808211156155d057600080fd5b818501915085601f8301126155e457600080fd5b815160206155f182614875565b6040516155fe8282614849565b83815260059390931b850182019282810191508984111561561e57600080fd5b948201945b8386101561564557855161563681614540565b82529482019490820190615623565b9188015191965090935050508082111561565e57600080fd5b50614ce285828601615540565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0386811682528516602082015260a0604082018190526000906156ad9083018661464d565b82810360608401526156bf818661464d565b9050828103608084015261537d81856145f5565b6000602082840312156156e557600080fd5b81516116fd81614581565b600060033d11156157095760046000803e5060005160e01c5b90565b600060443d101561571a5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561574957505050505090565b82850191508151818111156157615750505050505090565b843d870101602082850101111561577b5750505050505090565b61578a60208286010187614849565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b038516815260806020820181905260009061588890830186614ab5565b828103604084015261589a818661464d565b90508281036060840152613fcf818561464d565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090613fcf908301846145f5565b6001600160a01b03868116825285811660208301528416604082015260a06060820181905260009061591c9083018561464d565b828103608084015261537d818561464d565b60006020828403121561594057600080fd5b81516116fd81614bab565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b604082015260600190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b60608201526080019056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a2646970667358221220be00994e15b18356081751b76cabdaf83fd382e3856045783c17aed8030d7c1e64736f6c63430008130033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:4144:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "63:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "70:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "75:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "66:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "66:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "56:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "56:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "56:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "103:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "106:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "96:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "96:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "96:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "127:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "130:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "120:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "120:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "120:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "14:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "210:776:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "259:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "268:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "271:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "261:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "261:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "261:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "238:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "246:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "234:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "234:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "253:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "230:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "230:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "223:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "223:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "220:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "284:23:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "300:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "294:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "294:13:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "288:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "316:28:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "334:2:81",
                            "type": "",
                            "value": "64"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "338:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "330:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "330:10:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "342:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "326:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "326:18:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "320:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "367:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "369:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "369:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "369:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "359:2:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "363:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "356:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "356:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "353:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "398:17:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "412:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nodeType": "YulIdentifier",
                      "src": "408:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "408:7:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "402:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "424:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "444:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "438:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "438:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "428:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "456:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "478:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "502:2:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "506:4:81",
                                        "type": "",
                                        "value": "0x1f"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "498:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "498:13:81"
                                  },
                                  {
                                    "name": "_3",
                                    "nodeType": "YulIdentifier",
                                    "src": "513:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "494:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "494:22:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "518:2:81",
                                "type": "",
                                "value": "63"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "490:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "490:31:81"
                          },
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "523:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "486:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "486:40:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "474:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "474:53:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "460:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "586:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "588:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "588:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "588:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "545:10:81"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "557:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "542:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "542:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "565:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "577:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "562:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "562:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "539:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "539:46:81"
                  },
                  "nodeType": "YulIf",
                  "src": "536:72:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "624:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "628:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "617:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "617:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "617:22:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "655:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "663:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "648:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "648:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "648:18:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "675:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "685:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "679:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "735:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "744:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "747:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "737:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "737:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "737:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "712:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "720:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "708:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "708:15:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "725:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "704:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "704:24:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "730:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "701:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "701:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "698:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "760:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "769:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "764:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "825:87:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "memPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "854:6:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "862:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "850:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "850:14:81"
                                },
                                {
                                  "name": "_4",
                                  "nodeType": "YulIdentifier",
                                  "src": "866:2:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "846:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "846:23:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "offset",
                                          "nodeType": "YulIdentifier",
                                          "src": "885:6:81"
                                        },
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "893:1:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "881:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "881:14:81"
                                    },
                                    {
                                      "name": "_4",
                                      "nodeType": "YulIdentifier",
                                      "src": "897:2:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "877:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "877:23:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "871:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "871:30:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "839:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "839:63:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "839:63:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "790:1:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "793:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "787:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "787:9:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "797:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "799:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "808:1:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "811:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "804:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "804:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "799:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "783:3:81",
                    "statements": []
                  },
                  "src": "779:133:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr",
                                "nodeType": "YulIdentifier",
                                "src": "936:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "944:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "932:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "932:15:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "949:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "928:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "928:24:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "954:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "921:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "921:35:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "921:35:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "965:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "974:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "965:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_string_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "184:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "192:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "200:5:81",
                "type": ""
              }
            ],
            "src": "146:840:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1109:444:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1155:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1164:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1167:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1157:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1157:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1157:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1130:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1139:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1126:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1126:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1151:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1122:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1122:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1119:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1180:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1200:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1194:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1194:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "1184:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1219:28:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1237:2:81",
                            "type": "",
                            "value": "64"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1241:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "1233:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1233:10:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1245:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "1229:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1229:18:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "1223:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1274:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1283:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1286:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1276:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1276:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1276:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "1262:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1270:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "1259:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1259:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1256:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1299:71:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1342:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "1353:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1338:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1338:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "1362:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "1309:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1309:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1299:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1379:41:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1405:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1416:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1401:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1401:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1395:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1395:25:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "1383:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1449:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1458:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1461:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1451:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1451:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1451:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "1435:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1445:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "1432:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1432:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1429:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1474:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1517:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "1528:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1513:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1513:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "1539:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "1484:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1484:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "1474:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1067:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1078:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1090:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "1098:6:81",
                "type": ""
              }
            ],
            "src": "991:562:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1613:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1623:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1637:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "1640:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "1633:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1633:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "1623:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1654:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "1684:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1690:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "1680:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1680:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "1658:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1731:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1733:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "1747:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1755:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "1743:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1743:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1733:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "1711:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "1704:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1704:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1701:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1821:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1842:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1849:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1854:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "1845:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1845:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1835:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1835:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1835:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1886:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1889:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1879:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1879:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1879:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1914:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1917:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1907:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1907:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1907:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "1777:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1800:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1808:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "1797:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1797:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "1774:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1774:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1771:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "1593:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1602:6:81",
                "type": ""
              }
            ],
            "src": "1558:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1999:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2016:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "2019:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2009:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2009:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2009:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2032:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2050:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2053:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "2040:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2040:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "2032:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "1982:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "1990:4:81",
                "type": ""
              }
            ],
            "src": "1943:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2150:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2183:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "2197:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "2207:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "2201:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2228:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "2232:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2221:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2221:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2221:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "2251:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2273:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2277:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "2263:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2263:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "2255:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "2295:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "2318:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2328:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "2335:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "2347:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "2331:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "2331:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "2324:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2324:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2314:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2314:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "2299:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "2389:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "2391:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "2406:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "2391:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "2371:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2383:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "2368:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2368:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "2365:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "2425:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "2439:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2449:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "2456:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "2461:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "2452:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "2452:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "2445:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2445:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2435:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2435:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "2429:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "2479:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "2492:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "2483:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "2577:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "2586:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "2593:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "2579:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2579:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "2579:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "2527:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "2534:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "2524:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2524:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "2538:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "2540:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "2553:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2560:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "2549:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2549:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "2540:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "2520:3:81",
                          "statements": []
                        },
                        "src": "2516:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "2166:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2171:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2163:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2163:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2160:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "2122:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "2129:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "2134:10:81",
                "type": ""
              }
            ],
            "src": "2069:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2704:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "2714:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "2729:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "2747:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "2750:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "2743:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2743:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "2760:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "2756:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "2756:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2739:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2739:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "2735:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2735:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "2725:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2725:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2771:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "2774:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "2767:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2767:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "2722:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2722:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "2714:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "2681:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "2687:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "2695:4:81",
                "type": ""
              }
            ],
            "src": "2619:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2886:1256:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2896:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "2916:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2910:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2910:10:81"
                  },
                  "variables": [
                    {
                      "name": "newLen",
                      "nodeType": "YulTypedName",
                      "src": "2900:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2963:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "2965:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2965:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2965:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "2935:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2951:2:81",
                                "type": "",
                                "value": "64"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2955:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "2947:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2947:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2959:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2943:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2943:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2932:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2932:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2929:56:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "3038:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "3076:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "3070:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3070:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "3044:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3044:38:81"
                      },
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "3084:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "2994:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2994:97:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2994:97:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3100:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "3117:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "3104:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3127:23:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "3146:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "srcOffset_1",
                      "nodeType": "YulTypedName",
                      "src": "3131:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3159:24:81",
                  "value": {
                    "name": "srcOffset_1",
                    "nodeType": "YulIdentifier",
                    "src": "3172:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulIdentifier",
                      "src": "3159:9:81"
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3229:656:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "3243:35:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "3262:6:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "3274:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "3270:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3270:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "3258:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3258:20:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "3247:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "3291:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "3335:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "3305:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3305:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "3295:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "3353:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3362:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "3357:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "3440:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "3465:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "3483:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "3488:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "3479:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "3479:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "mload",
                                          "nodeType": "YulIdentifier",
                                          "src": "3473:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "3473:26:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "3458:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3458:42:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "3458:42:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "3517:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "3531:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3539:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3527:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3527:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "3517:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "3558:40:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "3575:9:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "3586:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3571:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3571:27:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "3558:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "3387:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "3390:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "3384:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3384:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "3399:28:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "3401:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "3410:1:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "3413:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3406:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3406:19:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "3401:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "3380:3:81",
                              "statements": []
                            },
                            "src": "3376:236:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "3660:166:81",
                              "statements": [
                                {
                                  "nodeType": "YulVariableDeclaration",
                                  "src": "3678:43:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "3705:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "3710:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "3701:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "3701:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "3695:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3695:26:81"
                                  },
                                  "variables": [
                                    {
                                      "name": "lastValue",
                                      "nodeType": "YulTypedName",
                                      "src": "3682:9:81",
                                      "type": ""
                                    }
                                  ]
                                },
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "3745:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "lastValue",
                                            "nodeType": "YulIdentifier",
                                            "src": "3757:9:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "3784:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "newLen",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "3787:6:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "3780:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "3780:14:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "3796:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "3776:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "3776:24:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "3806:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "3802:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "3802:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "3772:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "3772:37:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "3768:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "3768:42:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "3753:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "3753:58:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "3738:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3738:74:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "3738:74:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "3631:7:81"
                                },
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "3640:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "3628:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3628:19:81"
                            },
                            "nodeType": "YulIf",
                            "src": "3625:201:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "3846:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3860:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "newLen",
                                          "nodeType": "YulIdentifier",
                                          "src": "3863:6:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "3856:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3856:14:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "3872:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "3852:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3852:22:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "3839:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3839:36:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3839:36:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "3222:663:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3227:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3902:234:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "3916:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3929:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "3920:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "3965:67:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "3983:35:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "4002:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "4007:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "3998:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "3998:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "3992:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3992:26:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "3983:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "newLen",
                              "nodeType": "YulIdentifier",
                              "src": "3946:6:81"
                            },
                            "nodeType": "YulIf",
                            "src": "3943:89:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "4052:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "4111:5:81"
                                    },
                                    {
                                      "name": "newLen",
                                      "nodeType": "YulIdentifier",
                                      "src": "4118:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "4058:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "4058:67:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "4045:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4045:81:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "4045:81:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "3894:242:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "3202:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3210:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3199:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3199:14:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "3192:944:81"
                }
              ]
            },
            "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nodeType": "YulTypedName",
                "src": "2871:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "2877:3:81",
                "type": ""
              }
            ],
            "src": "2790:1352:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        mstore(add(add(memPtr, _1), _4), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := srcOffset_1\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\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}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:49494:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "59:86:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "123:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "132:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "135:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "125:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "125:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "125:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "82:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "93:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "108:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "113:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "104:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "104:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "117:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "100:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "100:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "89:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "89:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "79:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "79:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "72:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "72:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "69:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "48:5:81",
                "type": ""
              }
            ],
            "src": "14:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "237:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "283:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "292:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "295:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "285:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "285:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "285:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "258:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "267:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "254:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "279:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "250:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "250:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "247:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "308:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "334:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "321:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "321:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "312:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "378:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "353:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "353:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "353:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "393:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "403:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "393:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "417:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "444:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "455:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "440:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "440:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "427:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "427:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "417:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "195:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "206:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "218:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "226:6:81",
                "type": ""
              }
            ],
            "src": "150:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "571:76:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "581:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "593:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "604:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "589:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "589:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "581:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "623:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "634:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "616:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "616:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "616:25:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "540:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "551:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "562:4:81",
                "type": ""
              }
            ],
            "src": "470:177:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "696:87:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "761:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "770:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "773:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "763:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "763:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "763:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "719:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "730:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "741:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "746:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "737:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "737:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "726:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "726:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "716:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "716:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "709:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "709:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "706:71:81"
                }
              ]
            },
            "name": "validator_revert_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "685:5:81",
                "type": ""
              }
            ],
            "src": "652:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "857:176:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "903:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "912:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "915:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "905:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "905:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "905:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "878:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "887:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "874:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "899:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "870:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "870:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "867:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "928:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "954:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "941:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "941:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "932:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "997:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "973:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "973:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "973:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1012:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1022:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1012:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "823:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "834:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "846:6:81",
                "type": ""
              }
            ],
            "src": "788:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1133:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1143:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1155:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1166:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1151:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1151:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1143:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1185:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "1210:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1203:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1203:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1196:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1196:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1178:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1178:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1178:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1102:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1113:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1124:4:81",
                "type": ""
              }
            ],
            "src": "1038:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1300:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1346:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1355:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1358:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1348:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1348:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1348:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1321:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1330:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1317:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1317:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1342:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1313:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1313:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1310:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1371:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1397:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1384:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1384:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1375:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1441:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "1416:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1416:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1416:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1456:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1466:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1456:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1266:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1277:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1289:6:81",
                "type": ""
              }
            ],
            "src": "1230:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1548:184:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1558:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1567:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1562:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1627:63:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "1652:3:81"
                                },
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "1657:1:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1648:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1648:11:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nodeType": "YulIdentifier",
                                      "src": "1671:3:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "1676:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1667:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1667:11:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1661:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1661:18:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1641:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1641:39:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1641:39:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1588:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1591:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1585:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1585:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1599:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1601:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1610:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1613:2:81",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1606:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1606:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1601:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1581:3:81",
                    "statements": []
                  },
                  "src": "1577:113:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "1710:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1715:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1706:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1706:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1724:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1699:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1699:27:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1699:27:81"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "1526:3:81",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "1531:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1536:6:81",
                "type": ""
              }
            ],
            "src": "1482:250:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1787:221:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1797:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1817:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1811:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1811:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1801:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "1839:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1844:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1832:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1832:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1832:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1899:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1906:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1895:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1895:16:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1917:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1922:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1913:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1913:14:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1929:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "1860:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1860:76:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1860:76:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1945:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1960:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "1973:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1981:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "1969:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1969:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1990:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "1986:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1986:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1965:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1965:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1956:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1956:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1997:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1952:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1952:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "1945:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1764:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "1771:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1779:3:81",
                "type": ""
              }
            ],
            "src": "1737:271:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2134:99:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2151:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2162:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2144:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2144:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2144:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2174:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "2200:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2212:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2223:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2208:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2208:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "2182:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2182:45:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2174:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2103:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2114:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2125:4:81",
                "type": ""
              }
            ],
            "src": "2013:220:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2308:110:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2354:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2363:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2366:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2356:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2356:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2356:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2329:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2338:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2325:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2350:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2321:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2321:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2318:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2379:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2402:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2389:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2389:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2379:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2274:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2285:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2297:6:81",
                "type": ""
              }
            ],
            "src": "2238:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2484:374:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2494:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2514:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2508:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2508:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2498:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2536:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2541:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2529:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2529:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2529:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2557:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2567:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2561:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2580:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2591:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2596:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2587:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2587:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2580:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2608:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2626:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2633:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2622:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2622:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "2612:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2645:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2654:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2649:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2713:120:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2734:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2745:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2739:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2739:13:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2727:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2727:26:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2727:26:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2766:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2777:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2782:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2773:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2773:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "2766:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2798:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "2812:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2820:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2808:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2808:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "2798:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2675:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2678:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2672:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2672:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2686:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2688:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2697:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2700:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2693:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2693:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2688:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2668:3:81",
                    "statements": []
                  },
                  "src": "2664:169:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2842:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2849:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "2842:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "2461:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2468:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2476:3:81",
                "type": ""
              }
            ],
            "src": "2423:435:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3014:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3031:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3042:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3024:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3024:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3024:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3054:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3091:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3103:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3114:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3099:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "3062:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3062:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3054:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2983:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2994:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3005:4:81",
                "type": ""
              }
            ],
            "src": "2863:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3202:275:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3251:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3260:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3263:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3253:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3253:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3253:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3230:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3238:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3226:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3226:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3245:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3222:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3222:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3215:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3215:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3212:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3276:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3299:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3286:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3286:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "3276:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3349:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3358:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3361:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3351:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3351:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3351:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3321:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3329:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3318:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3318:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3315:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3374:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3390:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3398:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3386:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3386:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "3374:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3455:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3464:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3467:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3457:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3457:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3457:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3426:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "3434:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3422:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3422:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3443:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3418:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3418:30:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "3450:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3415:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3415:39:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3412:59:81"
                }
              ]
            },
            "name": "abi_decode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3165:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3173:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "3181:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3191:6:81",
                "type": ""
              }
            ],
            "src": "3129:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3589:372:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3635:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3644:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3647:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3637:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3637:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3637:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3610:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3619:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3606:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3631:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3602:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3602:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3599:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3660:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3683:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3670:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3670:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3660:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3702:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3733:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3744:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3729:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3729:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3716:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3716:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "3706:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3791:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3800:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3803:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3793:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3793:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3793:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3763:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3771:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3760:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3760:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3757:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3816:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3873:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3884:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3869:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3869:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3893:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3842:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3842:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "3820:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "3830:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3910:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "3920:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3910:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3937:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3947:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3937:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3539:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3550:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3562:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3570:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3578:6:81",
                "type": ""
              }
            ],
            "src": "3482:479:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4058:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4107:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4116:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4119:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4109:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4109:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4109:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4086:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4094:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4082:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4082:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "4101:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4078:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4078:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4071:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4071:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4068:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4132:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4155:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4142:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4142:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "4132:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4205:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4214:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4217:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4207:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4207:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4207:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4177:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4185:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4174:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4174:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4171:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4230:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4246:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4254:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4242:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4242:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "4230:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4319:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4328:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4331:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4321:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4321:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4321:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4282:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4294:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "4297:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "4290:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4290:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4278:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4278:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4307:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4274:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4314:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4271:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4271:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4268:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_payable_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "4021:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "4029:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "4037:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "4047:6:81",
                "type": ""
              }
            ],
            "src": "3966:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4528:683:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4574:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4583:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4586:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4576:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4576:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4576:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4549:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4558:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4545:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4545:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4570:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4541:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4541:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4538:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4599:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4622:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4609:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4609:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4599:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4641:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4672:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4683:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4668:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4668:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4655:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4655:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4645:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4696:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4706:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4700:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4751:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4760:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4763:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4753:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4753:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4753:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4739:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4747:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4736:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4736:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4733:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4776:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4852:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4863:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4848:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4848:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4872:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4802:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4802:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "4780:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4790:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4889:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "4899:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4889:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4916:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4926:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4916:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4943:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4976:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4987:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4972:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4972:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4959:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4959:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "4947:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5020:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5029:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5032:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5022:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5022:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5022:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "5006:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5016:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5003:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5003:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5000:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5045:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5121:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "5132:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5117:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5117:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5143:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5071:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5071:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "5049:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "5059:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5160:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "5170:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "5160:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5187:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "5197:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "5187:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4462:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4473:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4485:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4493:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4501:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4509:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "4517:6:81",
                "type": ""
              }
            ],
            "src": "4346:865:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5317:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5327:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5339:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5350:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5335:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5335:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5327:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5369:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "5384:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5400:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5405:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "5396:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5396:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5409:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5392:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5392:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5380:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5380:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5362:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5362:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5362:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5286:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5297:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5308:4:81",
                "type": ""
              }
            ],
            "src": "5216:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5511:161:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5557:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5566:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5569:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5559:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5559:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5559:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5532:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5541:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5528:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5528:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5553:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5524:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5524:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5521:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5582:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5605:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5592:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5582:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5624:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5651:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5662:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5647:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5647:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5634:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5634:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5624:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5469:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5480:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5492:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5500:6:81",
                "type": ""
              }
            ],
            "src": "5424:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5806:145:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5816:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5828:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5839:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5824:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5824:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5816:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5858:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "5873:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5889:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5894:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "5885:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5885:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5898:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5881:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5881:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5869:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5869:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5851:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5851:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5851:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5922:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5933:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5918:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5918:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "5938:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5911:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5911:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5911:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5767:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5778:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5786:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5797:4:81",
                "type": ""
              }
            ],
            "src": "5677:274:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5988:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6005:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6012:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6017:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6008:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6008:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5998:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5998:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5998:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6045:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6048:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6038:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6038:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6038:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6069:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6072:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "6062:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6062:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6062:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "5956:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6135:202:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6145:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6167:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "6183:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6189:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6179:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6179:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6198:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "6194:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6194:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "6175:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6175:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6163:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6163:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "6149:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6278:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "6280:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6280:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6280:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "6221:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6233:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "6218:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6218:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "6257:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "6269:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "6254:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6254:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "6215:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6215:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6212:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6316:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "6320:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6309:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6309:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6309:22:81"
                }
              ]
            },
            "name": "finalize_allocation",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "6117:6:81",
                "type": ""
              },
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "6125:4:81",
                "type": ""
              }
            ],
            "src": "6088:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6411:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6455:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "6457:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6457:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6457:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "6427:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6435:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6424:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6424:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6421:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6486:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6502:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "6505:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6498:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6498:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6514:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6494:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6494:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "6486:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "6391:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "6402:4:81",
                "type": ""
              }
            ],
            "src": "6342:183:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6594:660:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6643:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6652:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6655:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6645:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6645:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6645:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6622:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6630:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6618:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6618:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "6637:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "6614:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6614:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "6607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6607:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6604:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6668:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6691:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6678:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6678:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6672:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6707:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6717:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "6711:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6730:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6780:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "6740:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6740:43:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "6734:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6792:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6812:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "6806:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6806:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "6796:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6844:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "6852:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "6824:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6824:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6824:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6864:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "6875:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "6868:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6897:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6905:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6890:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6890:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6890:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6917:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6928:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6936:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6924:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6924:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "6917:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6948:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "6970:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6982:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "6985:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "6978:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6978:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6966:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6966:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6991:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6962:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6962:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "6952:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7022:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7031:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7034:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7024:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7024:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7024:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7009:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "7017:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7006:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7006:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7003:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7047:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7062:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7070:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7058:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7058:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "7051:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7138:86:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7159:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "7177:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "calldataload",
                                "nodeType": "YulIdentifier",
                                "src": "7164:12:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7164:17:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7152:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7152:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7152:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7195:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7206:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "7211:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7202:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7202:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "7195:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "7093:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7098:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7090:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7090:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7106:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7108:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "7119:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "7124:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7115:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7115:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "7108:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7086:3:81",
                    "statements": []
                  },
                  "src": "7082:142:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7233:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7242:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "7233:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "6568:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "6576:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "6584:5:81",
                "type": ""
              }
            ],
            "src": "6530:724:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7316:129:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7360:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "7362:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7362:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7362:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7332:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7340:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7329:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7329:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7326:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7391:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "7411:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7419:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7407:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7407:15:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7428:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "7424:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7424:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "7403:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7403:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7434:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7399:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7399:40:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "7391:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "7296:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "7307:4:81",
                "type": ""
              }
            ],
            "src": "7259:186:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7502:456:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7551:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7560:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7563:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7553:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7553:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7553:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7530:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7538:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7526:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7526:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "7545:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "7522:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7522:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "7515:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7515:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7512:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7576:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7599:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7586:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7586:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7580:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7615:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7653:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "7625:27:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7625:31:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "7619:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7665:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7685:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7679:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7679:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "7669:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7717:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7725:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "7697:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7697:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7697:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7744:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7752:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7737:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7737:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7737:18:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7803:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7812:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7815:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7805:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7805:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7805:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7778:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7786:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7774:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7774:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7791:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7770:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7770:26:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "7798:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7767:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7767:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7764:55:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "7845:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7853:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7841:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7841:17:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "7864:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7872:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7860:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7860:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7879:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "7828:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7828:54:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7828:54:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr",
                                "nodeType": "YulIdentifier",
                                "src": "7906:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7914:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7902:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7902:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7919:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7898:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7898:26:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7926:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7891:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7891:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7891:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7937:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7946:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "7937:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "7476:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "7484:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "7492:5:81",
                "type": ""
              }
            ],
            "src": "7450:508:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8160:874:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8207:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8216:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8219:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8209:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8209:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8209:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8181:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8190:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8177:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8177:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8202:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8173:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8173:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8170:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8232:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8258:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8245:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8245:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "8236:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "8302:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8277:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8277:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8277:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8317:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "8327:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8317:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8341:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8373:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8384:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8369:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8369:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8356:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8356:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "8345:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "8422:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8397:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8397:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8397:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8439:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "8449:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8439:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8465:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8496:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8507:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8492:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8492:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8479:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8479:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8469:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8520:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8530:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8524:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8575:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8584:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8587:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8577:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8577:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8577:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8563:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8571:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8560:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8560:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8557:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8600:71:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8643:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8654:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8639:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8639:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8663:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8610:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8610:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8600:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8680:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8713:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8724:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8709:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8709:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8696:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8696:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8684:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8757:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8766:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8769:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8759:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8759:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8759:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8743:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8753:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8740:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8740:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8737:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8782:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8825:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8836:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8821:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8821:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8847:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8792:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8792:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "8782:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8864:49:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8897:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8908:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8893:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8893:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8880:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8880:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "8868:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8942:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8951:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8954:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8944:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8944:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8944:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "8928:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8938:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8925:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8925:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8922:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8967:61:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8998:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "9009:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8994:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8994:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9020:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "8977:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8977:51:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "8967:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8094:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8105:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8117:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8125:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8133:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8141:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "8149:6:81",
                "type": ""
              }
            ],
            "src": "7963:1071:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9129:321:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9175:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9184:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9187:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9177:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9177:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9177:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9150:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9159:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9146:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9146:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9171:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9142:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9142:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9139:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9200:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9227:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9214:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9214:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9204:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9280:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9289:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9292:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9282:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9282:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9282:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9252:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9260:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9249:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9249:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9246:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9305:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9362:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9373:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9358:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9358:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9382:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9331:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9331:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "9309:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9319:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9399:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "9409:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9399:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9426:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9436:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9426:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9087:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9098:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9110:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9118:6:81",
                "type": ""
              }
            ],
            "src": "9039:411:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9562:439:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9608:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9617:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9620:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9610:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9610:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9610:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9583:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9592:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9579:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9579:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9604:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9575:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9575:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9572:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9633:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9659:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9646:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9646:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9637:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9703:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9678:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9678:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9678:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9718:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9728:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9718:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9742:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9773:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9784:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9769:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9769:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9756:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9756:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9746:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9831:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9840:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9843:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9833:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9833:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9833:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9803:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9811:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9800:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9800:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9797:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9856:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9913:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9924:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9909:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9909:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9933:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9882:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9882:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9860:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9870:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9950:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9960:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9950:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9977:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "9987:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9977:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9512:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9523:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9535:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9543:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9551:6:81",
                "type": ""
              }
            ],
            "src": "9455:546:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10067:400:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10077:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10097:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "10091:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10091:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "10081:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "10119:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10124:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10112:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10112:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10112:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10140:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10150:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "10144:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10163:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "10174:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10179:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10170:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "10163:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10191:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10209:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10216:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10205:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10205:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "10195:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10228:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10237:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "10232:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10296:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "10317:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "10332:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "10326:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10326:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "10349:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "10354:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "10345:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "10345:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "10358:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "10341:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10341:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "10322:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10322:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10310:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10310:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10310:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "10375:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "10386:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10391:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10382:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10382:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "10375:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "10407:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "10421:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10429:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10417:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10417:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "10407:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "10258:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10261:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "10255:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10255:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "10269:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "10271:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "10280:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10283:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10276:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10276:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "10271:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "10251:3:81",
                    "statements": []
                  },
                  "src": "10247:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10451:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "10458:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "10451:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_address_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "10044:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "10051:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "10059:3:81",
                "type": ""
              }
            ],
            "src": "10006:461:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10623:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10640:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10651:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10633:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10633:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10633:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10663:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "10700:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10712:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10723:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10708:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10708:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "10671:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10671:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "10663:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10592:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10603:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "10614:4:81",
                "type": ""
              }
            ],
            "src": "10472:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10903:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10949:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10958:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10961:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10951:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10951:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10951:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10924:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10933:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10920:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10920:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10945:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10916:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10916:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10913:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10974:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11001:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10988:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10988:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "10978:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11020:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11030:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11024:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11075:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11084:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11087:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11077:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11077:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11077:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "11063:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "11071:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11060:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11060:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11057:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11100:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11176:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11187:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11172:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11172:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "11196:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "11126:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11126:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "11104:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "11114:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11213:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "11223:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11213:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11240:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "11250:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "11240:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11267:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11300:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11311:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11296:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11296:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11283:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11283:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "11271:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11344:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11353:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11356:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11346:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11346:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11346:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "11330:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "11340:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11327:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11327:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11324:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11369:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11445:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "11456:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11441:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11441:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "11467:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "11395:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11395:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "11373:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "11383:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11484:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "11494:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "11484:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11511:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "11521:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "11511:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "10845:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10856:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10868:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10876:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "10884:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "10892:6:81",
                "type": ""
              }
            ],
            "src": "10738:797:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11714:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11760:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11769:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11772:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11762:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11762:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11762:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "11735:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11744:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "11731:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11731:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11756:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "11727:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11727:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11724:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11785:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11811:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11798:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11798:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "11789:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "11855:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "11830:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11830:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11830:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11870:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "11880:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11870:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11894:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11925:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11936:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11921:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11921:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11908:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11908:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "11898:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11949:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11959:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11953:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12004:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12013:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12016:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12006:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12006:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12006:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "11992:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12000:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11989:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11989:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11986:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12029:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12105:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "12116:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12101:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12101:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12125:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12055:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12055:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "12033:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "12043:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12142:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "12152:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "12142:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12169:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "12179:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "12169:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12196:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12229:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12240:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12225:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12225:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12212:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12212:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "12200:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12273:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12282:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12285:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12275:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12275:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12275:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "12259:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12269:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12256:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12256:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12253:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12298:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12374:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "12385:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12370:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12370:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12396:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12324:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12324:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "12302:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "12312:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12413:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "12423:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "12413:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12440:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "12450:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "12440:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11648:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "11659:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "11671:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "11679:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "11687:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "11695:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "11703:6:81",
                "type": ""
              }
            ],
            "src": "11540:924:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12511:76:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12565:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12574:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12577:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12567:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12567:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12567:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "12534:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "12555:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "12548:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "12548:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "12541:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "12541:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "12531:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12531:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "12524:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12524:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12521:60:81"
                }
              ]
            },
            "name": "validator_revert_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "12500:5:81",
                "type": ""
              }
            ],
            "src": "12469:118:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12713:560:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12759:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12768:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12771:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12761:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12761:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12761:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12734:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12743:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12730:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12730:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12755:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12726:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12726:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12723:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12784:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12810:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12797:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12797:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "12788:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "12854:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "12829:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12829:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12829:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12869:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "12879:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "12869:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12893:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12924:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12935:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12920:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12920:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12907:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12907:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12897:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12982:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12991:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12994:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12984:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12984:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12984:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12954:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12962:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12951:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12951:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12948:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13007:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13064:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13075:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13060:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13060:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13084:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13033:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13033:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "13011:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "13021:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13101:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13111:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13101:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13128:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "13138:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13128:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13155:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13187:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13198:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13183:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13183:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13170:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13170:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "13159:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "13233:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "13211:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13211:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13211:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13250:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "13260:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "13250:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12655:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12666:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12678:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12686:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "12694:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "12702:6:81",
                "type": ""
              }
            ],
            "src": "12592:681:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13415:1140:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13461:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13470:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13473:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13463:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13463:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13463:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13436:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13445:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13432:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13432:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13457:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13428:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13428:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13425:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13486:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13513:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13500:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13500:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "13490:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13532:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13542:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "13536:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13587:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13596:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13599:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13589:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13589:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13589:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "13575:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13583:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13572:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13572:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13569:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13612:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13626:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "13637:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13622:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13622:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "13616:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13692:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13701:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13704:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13694:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13694:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13694:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "13671:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13675:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "13667:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "13667:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13682:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "13663:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13663:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "13656:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13656:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13653:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13717:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "13740:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13727:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13727:16:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "13721:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13752:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13762:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "13756:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13775:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "13825:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "13785:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13785:43:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "13779:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13837:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13857:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "13851:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13851:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "13841:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "13889:6:81"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "13897:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "13869:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13869:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13869:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13909:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "13920:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "13913:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "13942:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "13950:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13935:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13935:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13935:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13962:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "13973:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "13981:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13969:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13969:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "13962:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13993:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "14015:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14023:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "14026:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "14019:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14019:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14011:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14011:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14032:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14007:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14007:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "13997:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14067:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14076:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14079:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14069:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14069:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14069:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14050:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14058:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14047:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14047:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14044:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14092:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14107:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14111:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14103:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14103:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "14096:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14179:161:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "14193:30:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "14219:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "14206:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14206:17:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "14197:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "14261:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "14236:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14236:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14236:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "14287:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "14292:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "14280:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14280:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14280:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "14311:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "14322:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "14327:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14318:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14318:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "14311:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "14134:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14139:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "14131:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14131:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "14147:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "14149:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "14160:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "14165:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14156:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14156:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "14149:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "14127:3:81",
                    "statements": []
                  },
                  "src": "14123:217:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14349:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "14359:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14349:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14374:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14407:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "14418:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14403:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14403:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14390:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14390:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "14378:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14451:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14460:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14463:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14453:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14453:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14453:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "14437:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14447:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14434:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14434:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14431:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14476:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14519:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "14530:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14515:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14515:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14541:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "14486:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14486:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "14476:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13373:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13384:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13396:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13404:6:81",
                "type": ""
              }
            ],
            "src": "13278:1277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "14729:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14775:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14784:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14787:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14777:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14777:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14777:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14750:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14759:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "14746:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14746:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14771:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "14742:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14742:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14739:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14800:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14827:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14814:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14814:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "14804:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14846:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "14856:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "14850:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14901:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14910:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14913:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14903:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14903:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14903:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14889:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14897:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14886:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14886:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14883:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14926:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15002:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "15013:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14998:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14998:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15022:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "14952:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14952:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "14930:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "14940:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15039:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "15049:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15039:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15066:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "15076:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15066:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15093:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15126:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15137:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15122:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15122:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15109:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15109:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "15097:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15170:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15179:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15182:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15172:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15172:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15172:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "15156:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15166:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15153:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15153:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15150:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15195:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15271:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15282:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15267:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15267:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15293:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15221:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15221:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "15199:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "15209:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15310:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "15320:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "15310:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15337:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "15347:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "15337:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "14671:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "14682:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "14694:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "14702:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "14710:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "14718:6:81",
                "type": ""
              }
            ],
            "src": "14560:801:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15575:903:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15621:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15630:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15633:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15623:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15623:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15623:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "15596:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15605:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "15592:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15592:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15617:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "15588:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15588:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15585:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15646:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15673:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15660:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15660:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "15650:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15692:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15702:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "15696:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15747:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15756:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15759:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15749:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15749:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15749:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "15735:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15743:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15732:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15732:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15729:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15772:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15848:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "15859:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15844:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15844:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15868:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15798:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15798:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "15776:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "15786:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15885:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "15895:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15885:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15912:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "15922:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15912:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15939:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15972:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15983:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15968:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15968:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15955:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15955:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "15943:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16016:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16025:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16028:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16018:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16018:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16018:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "16002:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16012:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15999:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15999:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15996:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16041:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16117:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "16128:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16113:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16113:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16139:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16067:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16067:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "16045:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "16055:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16156:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "16166:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "16156:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16183:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "16193:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "16183:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16210:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16243:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16254:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16239:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16239:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16226:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16226:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "16214:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16287:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16296:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16299:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16289:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16289:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16289:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "16273:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16283:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16270:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16270:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16267:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16312:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16388:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "16399:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16384:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16384:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16410:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16338:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16338:80:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "16316:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "16326:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16427:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "16437:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "16427:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16454:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "16464:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "16454:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "15501:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "15512:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15524:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15532:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "15540:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "15548:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "15556:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "15564:6:81",
                "type": ""
              }
            ],
            "src": "15366:1112:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16587:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16633:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16642:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16645:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16635:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16635:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16635:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16608:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16617:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16604:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16604:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16629:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "16600:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16600:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16597:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16658:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16685:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16672:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16672:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "16662:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16738:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16747:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16750:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16740:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16740:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16740:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16710:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16718:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16707:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16707:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16704:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16763:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16820:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "16831:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16816:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16816:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16840:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16789:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16789:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "16767:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "16777:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16857:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "16867:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "16857:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16884:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "16894:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "16884:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16911:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16941:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16952:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16937:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16937:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16924:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16924:32:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "16915:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "16987:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "16965:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16965:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "16965:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17002:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "17012:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "17002:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16537:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "16548:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "16560:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "16568:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "16576:6:81",
                "type": ""
              }
            ],
            "src": "16483:540:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17249:903:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17295:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17304:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17307:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17297:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17297:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17297:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "17270:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17279:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "17266:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17266:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17291:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "17262:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17262:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17259:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17320:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17347:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17334:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17334:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "17324:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17366:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17376:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "17370:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17421:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17430:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17433:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17423:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17423:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17423:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "17409:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17417:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17406:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17406:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17403:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17446:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17522:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "17533:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17518:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17518:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "17542:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "17472:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17472:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "17450:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "17460:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17559:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "17569:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "17559:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17586:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "17596:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "17586:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17613:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17646:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17657:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17642:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17642:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17629:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17629:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "17617:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17690:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17699:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17702:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17692:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17692:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17692:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "17676:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17686:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17673:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17673:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17670:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17715:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17791:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "17802:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17787:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17787:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "17813:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "17741:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17741:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "17719:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "17729:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17830:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "17840:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "17830:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17857:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "17867:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "17857:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17884:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17917:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17928:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17913:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17913:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17900:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17900:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "17888:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17961:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17970:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17973:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17963:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17963:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17963:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "17947:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17957:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17944:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17944:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17941:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17986:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18062:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "18073:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18058:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18058:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18084:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18012:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18012:80:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "17990:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "18000:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18101:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "18111:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "18101:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18128:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "18138:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "18128:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17175:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "17186:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17198:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17206:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17214:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "17222:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "17230:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "17238:6:81",
                "type": ""
              }
            ],
            "src": "17028:1124:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18241:298:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18287:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18296:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18299:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18289:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18289:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18289:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18262:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18271:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18258:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18258:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18283:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18254:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18254:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18251:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18312:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18338:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18325:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18325:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18316:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18382:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18357:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18357:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18357:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18397:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18407:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18397:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18421:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18453:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18464:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18449:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18449:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18436:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18436:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "18425:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "18499:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "18477:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18477:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18477:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18516:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "18526:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "18516:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18199:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18210:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18222:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18230:6:81",
                "type": ""
              }
            ],
            "src": "18157:382:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18611:174:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18657:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18666:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18669:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18659:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18659:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18659:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18632:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18641:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18628:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18628:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18653:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18624:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18624:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18621:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18682:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18708:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18695:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18695:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18686:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18749:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "18727:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18727:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18727:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18764:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18774:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18764:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18577:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18588:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18600:6:81",
                "type": ""
              }
            ],
            "src": "18544:241:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18972:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19018:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19027:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19030:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19020:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19020:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19020:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18993:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19002:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18989:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18989:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19014:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18985:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18985:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18982:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19043:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19069:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19056:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19056:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "19047:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "19113:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "19088:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19088:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19088:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19128:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "19138:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19128:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19152:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19183:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19194:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19179:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19179:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19166:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19166:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "19156:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19207:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "19217:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "19211:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19262:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19271:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19274:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19264:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19264:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19264:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "19250:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19258:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "19247:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19247:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19244:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19287:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19363:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "19374:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19359:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19359:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19383:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "19313:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19313:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "19291:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "19301:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19400:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "19410:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19400:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19427:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "19437:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "19427:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19454:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19487:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19498:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19483:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19483:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19470:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19470:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "19458:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19531:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19540:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19543:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19533:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19533:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19533:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "19517:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19527:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "19514:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19514:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19511:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19556:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19632:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "19643:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19628:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19628:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19654:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "19582:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19582:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "19560:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "19570:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19671:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "19681:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "19671:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19698:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "19708:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "19698:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18906:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18917:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18929:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18937:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "18945:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "18953:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "18961:6:81",
                "type": ""
              }
            ],
            "src": "18790:932:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19894:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19911:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19922:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "19904:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19904:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19904:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19934:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "19971:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19983:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19994:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19979:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19979:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "19942:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19942:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "19934:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19863:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "19874:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "19885:4:81",
                "type": ""
              }
            ],
            "src": "19727:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20254:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20271:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20282:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20264:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20264:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20264:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20294:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "20337:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20349:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20360:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20345:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20345:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20308:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20308:56:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "20298:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20384:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20395:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20380:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20380:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "20404:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20412:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "20400:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20400:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20373:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20373:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20373:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20432:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "20469:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "20477:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20440:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20440:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20432:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20215:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "20226:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20234:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20245:4:81",
                "type": ""
              }
            ],
            "src": "20009:481:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20582:301:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20628:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "20637:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "20640:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "20630:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "20630:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "20630:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "20603:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20612:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "20599:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20599:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20624:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "20595:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20595:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "20592:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20653:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20679:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "20666:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20666:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "20657:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "20723:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "20698:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20698:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20698:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20738:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "20748:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "20738:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20762:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20794:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20805:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20790:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20790:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "20777:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20777:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "20766:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "20843:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "20818:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20818:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20818:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20860:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "20870:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "20860:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20540:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "20551:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20563:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "20571:6:81",
                "type": ""
              }
            ],
            "src": "20495:388:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21035:587:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21082:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21091:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21094:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "21084:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21084:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21084:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "21056:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21065:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "21052:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21052:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21077:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "21048:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21048:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "21045:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21107:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21133:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21120:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21120:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "21111:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "21177:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21152:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21152:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21152:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21192:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "21202:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "21192:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21216:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21248:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21259:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21244:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21244:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21231:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21231:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "21220:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "21297:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21272:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21272:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21272:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21314:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "21324:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "21314:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21340:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21367:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21378:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21363:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21363:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21350:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21350:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "21340:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21391:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21418:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21429:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21414:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21414:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21401:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21401:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "21391:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21442:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21473:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21484:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21469:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21469:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21456:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21456:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "21446:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21532:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21541:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21544:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "21534:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21534:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21534:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "21504:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21512:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "21501:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21501:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "21498:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21557:59:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21588:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "21599:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21584:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21584:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "21608:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "21567:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21567:49:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "21557:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "20969:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "20980:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20992:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21000:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "21008:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "21016:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "21024:6:81",
                "type": ""
              }
            ],
            "src": "20888:734:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21801:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21818:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21829:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21811:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21811:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21811:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21852:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21863:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21848:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21848:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21868:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21841:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21841:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21841:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21891:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21902:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21887:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21887:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2061646472657373207a65726f206973206e6f7420612076",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21907:34:81",
                        "type": "",
                        "value": "ERC1155: address zero is not a v"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21880:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21880:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21880:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21962:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21973:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21958:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21958:18:81"
                      },
                      {
                        "hexValue": "616c6964206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "21978:12:81",
                        "type": "",
                        "value": "alid owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "21951:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21951:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21951:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22000:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22012:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22023:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22008:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22008:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22000:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_415a1b99e1fd4a18cf87c08995f5a9130182e8d76e9c17c497bfebaaef9265ad__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21778:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "21792:4:81",
                "type": ""
              }
            ],
            "src": "21627:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22212:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22229:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22240:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22222:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22222:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22222:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22263:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22274:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22259:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22259:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22279:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22252:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22252:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22252:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22302:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22313:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22298:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22298:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22318:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22291:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22291:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22291:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22373:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22384:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22369:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22369:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22389:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22362:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22362:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22362:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22405:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22417:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22428:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22413:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22413:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22405:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22189:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22203:4:81",
                "type": ""
              }
            ],
            "src": "22038:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22498:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "22508:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22522:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "22525:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "22518:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22518:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "22508:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "22539:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "22569:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22575:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "22565:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22565:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "22543:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22616:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "22618:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "22632:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22640:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "22628:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22628:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "22618:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "22596:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "22589:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22589:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22586:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22706:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22727:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "22734:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "22739:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "22730:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "22730:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "22720:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22720:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22720:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22771:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22774:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "22764:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22764:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22764:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22799:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22802:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "22792:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22792:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22792:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "22662:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "22685:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22693:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "22682:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22682:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "22659:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22659:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22656:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "22478:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "22487:6:81",
                "type": ""
              }
            ],
            "src": "22443:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23002:172:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23019:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23030:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23012:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23012:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23012:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23053:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23064:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23049:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23049:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23069:2:81",
                        "type": "",
                        "value": "22"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23042:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23042:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23042:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23092:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23103:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23088:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23088:18:81"
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23108:24:81",
                        "type": "",
                        "value": "No extension for token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23081:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23081:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23081:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23142:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23154:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23165:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23150:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23150:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23142:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22979:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22993:4:81",
                "type": ""
              }
            ],
            "src": "22828:346:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23353:171:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23370:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23381:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23363:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23363:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23363:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23404:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23415:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23400:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23400:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23420:2:81",
                        "type": "",
                        "value": "21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23393:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23393:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23393:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23443:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23454:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23439:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23439:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23459:23:81",
                        "type": "",
                        "value": "Extension blacklisted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23432:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23432:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23432:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23492:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23504:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23515:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23500:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23500:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23492:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23330:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23344:4:81",
                "type": ""
              }
            ],
            "src": "23179:345:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23703:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23720:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23731:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23713:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23713:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23713:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23754:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23765:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23750:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23750:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23770:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23743:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23743:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23743:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23793:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23804:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23789:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23789:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23809:34:81",
                        "type": "",
                        "value": "ERC1155: caller is not token own"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23782:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23782:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23782:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23864:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23875:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23860:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23860:18:81"
                      },
                      {
                        "hexValue": "6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23880:16:81",
                        "type": "",
                        "value": "er or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23853:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23853:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23853:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23906:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23918:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23929:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23914:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23914:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23906:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_47c72b42072ed6c647dec3a0a5c88bec44d3e901c64659bff94ecce0a0323156__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23680:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23694:4:81",
                "type": ""
              }
            ],
            "src": "23529:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23976:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23993:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24000:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24005:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "23996:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23996:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23986:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23986:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23986:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24033:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24036:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24026:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24026:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24026:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24057:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24060:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "24050:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24050:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24050:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "23944:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24108:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24125:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24132:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24137:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "24128:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24128:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24118:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24118:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24118:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24165:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24168:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24158:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24158:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24158:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24189:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24192:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "24182:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24182:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24182:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "24076:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24255:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "24286:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "24288:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "24288:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "24288:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "24271:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24282:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "24278:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24278:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "24268:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24268:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "24265:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24317:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "24328:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24335:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24324:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24324:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "24317:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "24237:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "24247:3:81",
                "type": ""
              }
            ],
            "src": "24208:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24522:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24539:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24550:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24532:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24532:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24532:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24573:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24584:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24569:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24569:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24589:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24562:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24562:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24562:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24612:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24623:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24608:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24608:18:81"
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24628:33:81",
                        "type": "",
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24601:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24601:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24601:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24671:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24683:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24694:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24679:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24679:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24671:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24499:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24513:4:81",
                "type": ""
              }
            ],
            "src": "24348:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24882:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24899:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24910:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24892:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24892:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24892:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24933:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24944:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24929:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24929:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24949:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24922:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24922:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24922:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24972:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24983:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24968:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24968:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24988:15:81",
                        "type": "",
                        "value": "Invalid input"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24961:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24961:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24961:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25013:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25025:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25036:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25021:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25021:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25013:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24859:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24873:4:81",
                "type": ""
              }
            ],
            "src": "24708:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25224:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25241:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25252:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25234:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25234:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25234:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25275:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25286:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25271:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25271:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25291:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25264:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25264:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25264:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25314:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25325:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25310:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25310:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206163636f756e747320616e6420696473206c656e677468",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25330:34:81",
                        "type": "",
                        "value": "ERC1155: accounts and ids length"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25303:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25303:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25303:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25385:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25396:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25381:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25381:18:81"
                      },
                      {
                        "hexValue": "206d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25401:11:81",
                        "type": "",
                        "value": " mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25374:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25374:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25374:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25422:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25434:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25445:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25430:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25430:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25422:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25201:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25215:4:81",
                "type": ""
              }
            ],
            "src": "25050:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25555:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "25565:51:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr_to_tail",
                        "nodeType": "YulIdentifier",
                        "src": "25604:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "25591:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25591:25:81"
                  },
                  "variables": [
                    {
                      "name": "rel_offset_of_tail",
                      "nodeType": "YulTypedName",
                      "src": "25569:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "25705:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "25714:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "25717:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "25707:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "25707:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "25707:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulIdentifier",
                            "src": "25639:18:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [],
                                    "functionName": {
                                      "name": "calldatasize",
                                      "nodeType": "YulIdentifier",
                                      "src": "25667:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "25667:14:81"
                                  },
                                  {
                                    "name": "base_ref",
                                    "nodeType": "YulIdentifier",
                                    "src": "25683:8:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "25663:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "25663:29:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "25698:2:81",
                                    "type": "",
                                    "value": "30"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "25694:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "25694:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "25659:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "25659:43:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "25635:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25635:68:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "25628:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25628:76:81"
                  },
                  "nodeType": "YulIf",
                  "src": "25625:96:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "25730:47:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "base_ref",
                        "nodeType": "YulIdentifier",
                        "src": "25748:8:81"
                      },
                      {
                        "name": "rel_offset_of_tail",
                        "nodeType": "YulIdentifier",
                        "src": "25758:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25744:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25744:33:81"
                  },
                  "variables": [
                    {
                      "name": "addr_1",
                      "nodeType": "YulTypedName",
                      "src": "25734:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25786:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "25809:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "25796:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25796:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "25786:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "25859:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "25868:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "25871:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "25861:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "25861:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "25861:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "25831:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25839:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "25828:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25828:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "25825:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25884:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "25896:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25904:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25892:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25892:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "addr",
                      "nodeType": "YulIdentifier",
                      "src": "25884:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "25960:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "25969:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "25972:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "25962:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "25962:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "25962:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "addr",
                        "nodeType": "YulIdentifier",
                        "src": "25925:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "calldatasize",
                              "nodeType": "YulIdentifier",
                              "src": "25935:12:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "25935:14:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "25951:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "25931:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25931:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "sgt",
                      "nodeType": "YulIdentifier",
                      "src": "25921:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25921:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "25918:58:81"
                }
              ]
            },
            "name": "access_calldata_tail_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "base_ref",
                "nodeType": "YulTypedName",
                "src": "25512:8:81",
                "type": ""
              },
              {
                "name": "ptr_to_tail",
                "nodeType": "YulTypedName",
                "src": "25522:11:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "addr",
                "nodeType": "YulTypedName",
                "src": "25538:4:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "25544:6:81",
                "type": ""
              }
            ],
            "src": "25460:522:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26161:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26178:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26189:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26171:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26171:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26171:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26212:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26223:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26208:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26208:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26228:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26201:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26201:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26201:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26251:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26262:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26247:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26247:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26267:15:81",
                        "type": "",
                        "value": "Invalid token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26240:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26240:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26240:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26292:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26304:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26315:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26300:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26300:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26292:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26138:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26152:4:81",
                "type": ""
              }
            ],
            "src": "25987:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26503:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26520:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26531:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26513:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26513:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26513:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26554:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26565:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26550:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26550:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26570:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26543:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26543:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26543:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26593:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26604:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26589:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26589:18:81"
                      },
                      {
                        "hexValue": "546f6b656e206372656174656420627920657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26609:28:81",
                        "type": "",
                        "value": "Token created by extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26582:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26582:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26582:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26647:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26659:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26670:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26655:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26655:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26647:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26480:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26494:4:81",
                "type": ""
              }
            ],
            "src": "26329:350:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26858:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26875:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26886:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26868:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26868:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26868:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26909:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26920:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26905:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26905:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26925:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26898:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26898:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26898:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26948:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26959:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26944:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26944:18:81"
                      },
                      {
                        "hexValue": "546f6b656e206e6f742063726561746564206279207468697320657874656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26964:34:81",
                        "type": "",
                        "value": "Token not created by this extens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26937:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26937:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26937:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27019:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27030:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27015:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27015:18:81"
                      },
                      {
                        "hexValue": "696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27035:5:81",
                        "type": "",
                        "value": "ion"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27008:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27008:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27008:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27050:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27062:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27073:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27058:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27058:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27050:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26835:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26849:4:81",
                "type": ""
              }
            ],
            "src": "26684:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27262:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27279:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27290:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27272:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27272:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27272:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27313:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27324:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27309:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27309:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27329:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27302:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27302:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27302:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27352:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27363:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27348:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27348:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27368:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27341:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27341:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27341:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27423:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27434:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27419:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27419:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27439:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27412:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27412:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27412:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27457:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27469:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27480:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27465:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27465:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27457:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27239:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "27253:4:81",
                "type": ""
              }
            ],
            "src": "27088:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27669:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27686:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27697:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27679:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27679:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27679:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27720:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27731:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27716:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27716:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27736:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27709:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27709:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27709:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27759:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27770:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27755:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27755:18:81"
                      },
                      {
                        "hexValue": "43616e6e6f7420626c61636b6c69737420796f757273656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27775:27:81",
                        "type": "",
                        "value": "Cannot blacklist yourself"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27748:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27748:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27748:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27812:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27824:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27835:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27820:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27820:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27812:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27646:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "27660:4:81",
                "type": ""
              }
            ],
            "src": "27495:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27905:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27922:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "27925:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27915:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27915:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27915:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27938:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27956:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27959:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "27946:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27946:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "27938:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "27888:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "27896:4:81",
                "type": ""
              }
            ],
            "src": "27849:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28033:664:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28043:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "28066:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nodeType": "YulIdentifier",
                      "src": "28060:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28060:12:81"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nodeType": "YulTypedName",
                      "src": "28047:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28081:50:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "28121:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "extract_byte_array_length",
                      "nodeType": "YulIdentifier",
                      "src": "28095:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28095:36:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "28085:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "28140:11:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "28150:1:81",
                    "type": "",
                    "value": "1"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "28144:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "28201:126:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "28222:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "slotValue",
                                      "nodeType": "YulIdentifier",
                                      "src": "28231:9:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "28246:3:81",
                                          "type": "",
                                          "value": "255"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "28242:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "28242:8:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "and",
                                    "nodeType": "YulIdentifier",
                                    "src": "28227:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "28227:24:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "28215:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28215:37:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "28215:37:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "28265:52:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "28276:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "length",
                                      "nodeType": "YulIdentifier",
                                      "src": "28285:6:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "name": "length",
                                              "nodeType": "YulIdentifier",
                                              "src": "28307:6:81"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "iszero",
                                            "nodeType": "YulIdentifier",
                                            "src": "28300:6:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "28300:14:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "iszero",
                                        "nodeType": "YulIdentifier",
                                        "src": "28293:6:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "28293:22:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nodeType": "YulIdentifier",
                                    "src": "28281:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "28281:35:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "28272:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28272:45:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "28265:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "28194:133:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28199:1:81",
                        "type": "",
                        "value": "0"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "28343:348:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "28364:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "28367:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "28357:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28357:16:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "28357:16:81"
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "28386:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "28396:4:81",
                              "type": "",
                              "value": "0x20"
                            },
                            "variables": [
                              {
                                "name": "_2",
                                "nodeType": "YulTypedName",
                                "src": "28390:2:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "28413:31:81",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "28438:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "_2",
                                  "nodeType": "YulIdentifier",
                                  "src": "28441:2:81"
                                }
                              ],
                              "functionName": {
                                "name": "keccak256",
                                "nodeType": "YulIdentifier",
                                "src": "28428:9:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28428:16:81"
                            },
                            "variables": [
                              {
                                "name": "dataPos",
                                "nodeType": "YulTypedName",
                                "src": "28417:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "28457:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "28466:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "28461:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "28534:111:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "pos",
                                            "nodeType": "YulIdentifier",
                                            "src": "28563:3:81"
                                          },
                                          {
                                            "name": "i",
                                            "nodeType": "YulIdentifier",
                                            "src": "28568:1:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "28559:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28559:11:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "dataPos",
                                            "nodeType": "YulIdentifier",
                                            "src": "28578:7:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sload",
                                          "nodeType": "YulIdentifier",
                                          "src": "28572:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "28572:14:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "28552:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28552:35:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "28552:35:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28604:27:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dataPos",
                                        "nodeType": "YulIdentifier",
                                        "src": "28619:7:81"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "28628:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "28615:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28615:16:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dataPos",
                                      "nodeType": "YulIdentifier",
                                      "src": "28604:7:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "28491:1:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "28494:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "28488:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28488:13:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "28502:19:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "28504:15:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "28513:1:81"
                                      },
                                      {
                                        "name": "_2",
                                        "nodeType": "YulIdentifier",
                                        "src": "28516:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "28509:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "28509:10:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "28504:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "28484:3:81",
                              "statements": []
                            },
                            "src": "28480:165:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "28658:23:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "28669:3:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "28674:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "28665:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "28665:16:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "28658:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "28336:355:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28341:1:81",
                        "type": "",
                        "value": "1"
                      }
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "28171:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "28182:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "28167:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28167:18:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "28160:531:81"
                }
              ]
            },
            "name": "abi_encode_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "28010:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "28017:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "28025:3:81",
                "type": ""
              }
            ],
            "src": "27975:722:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28883:96:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "28893:80:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "28926:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "28960:6:81"
                          },
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "28968:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string_storage",
                          "nodeType": "YulIdentifier",
                          "src": "28934:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28934:38:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "28900:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28900:73:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "28893:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "28851:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "28856:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "28864:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "28875:3:81",
                "type": ""
              }
            ],
            "src": "28702:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29075:612:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29121:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29130:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29133:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "29123:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29123:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29123:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "29096:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "29105:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "29092:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29092:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29117:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "29088:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29088:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "29085:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29146:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "29166:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "29160:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29160:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "29150:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29219:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29228:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29231:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "29221:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29221:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29221:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "29191:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29199:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "29188:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29188:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "29185:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29244:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "29258:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "29269:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "29254:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29254:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "29248:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29324:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29333:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29336:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "29326:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29326:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29326:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "29303:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "29307:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "29299:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "29299:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "29314:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "29295:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29295:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "29288:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29288:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "29285:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29349:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "29365:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "29359:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29359:9:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "29353:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29377:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "29415:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "29387:27:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29387:31:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "29381:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29427:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29447:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "29441:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29441:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "29431:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "29479:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "29487:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "29459:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29459:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29459:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "29506:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "29514:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29499:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29499:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29499:18:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "29563:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29572:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29575:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "29565:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "29565:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "29565:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "29540:2:81"
                              },
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "29544:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "29536:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "29536:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29549:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29532:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29532:20:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "29554:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "29529:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29529:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "29526:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "29627:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29631:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29623:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29623:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "29640:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "29648:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "29636:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "29636:15:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "29653:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "29588:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29588:68:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29588:68:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29665:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "29675:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "29665:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "29041:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "29052:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "29064:6:81",
                "type": ""
              }
            ],
            "src": "28984:703:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29876:205:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29886:48:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "29922:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "29930:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "29896:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29896:38:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "29890:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29943:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "29963:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "29957:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29957:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "29947:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "30018:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30026:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30014:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30014:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "30033:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "30037:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "29979:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29979:65:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29979:65:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30053:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "30064:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "30068:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30060:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30060:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "30053:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "29844:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "29849:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "29857:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "29868:3:81",
                "type": ""
              }
            ],
            "src": "29692:389:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30167:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30200:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "30214:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "30224:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "30218:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "30245:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "30249:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "30238:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30238:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30238:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "30268:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "30290:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30294:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "30280:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30280:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "30272:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "30312:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "30335:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "30345:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "30352:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "30364:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "30348:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "30348:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "30341:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "30341:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "30331:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30331:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "30316:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "30406:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "30408:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "30423:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "30408:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "30388:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30400:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "30385:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30385:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "30382:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "30442:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "30456:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "30466:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "30473:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "30478:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "30469:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "30469:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "30462:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "30462:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "30452:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30452:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "30446:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "30496:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "30509:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "30500:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "30594:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "30603:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "30610:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "30596:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "30596:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "30596:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "30544:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "30551:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "30541:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30541:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "30555:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "30557:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "30570:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "30577:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "30566:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "30566:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "30557:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "30537:3:81",
                          "statements": []
                        },
                        "src": "30533:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "30183:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30188:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "30180:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30180:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30177:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "30139:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "30146:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "30151:10:81",
                "type": ""
              }
            ],
            "src": "30086:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30721:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30731:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "30746:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "30764:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "30767:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "30760:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "30760:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "30777:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "30773:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "30773:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "30756:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "30756:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "30752:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "30752:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "30742:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30742:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30788:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "30791:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "30784:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30784:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "30739:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30739:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "30731:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "30698:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "30704:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "30712:4:81",
                "type": ""
              }
            ],
            "src": "30636:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30910:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30951:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "30953:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30953:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30953:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "30926:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30931:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "30923:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30923:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30920:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "31026:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "31064:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "31058:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "31058:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "31032:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31032:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "31072:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "30982:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30982:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30982:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31085:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "31102:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "31089:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "31146:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31160:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "31179:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31188:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "31184:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31184:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "31175:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31175:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "31164:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31205:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "31249:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "31219:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31219:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "31209:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31267:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "31276:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "31271:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "31355:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31380:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "31405:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "31410:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "31401:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "31401:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "31388:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "31388:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "31373:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31373:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "31373:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31439:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31453:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31461:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31449:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31449:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "31439:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31480:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "31497:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31508:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31493:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31493:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "31480:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "31309:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "31312:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "31306:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31306:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "31321:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31323:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "31332:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31335:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "31328:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31328:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "31323:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "31302:3:81",
                              "statements": []
                            },
                            "src": "31298:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "31572:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "31597:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "31626:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "31631:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "31622:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "31622:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "31609:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "31609:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "31660:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "31663:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "31656:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "31656:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "31669:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "31652:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "31652:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "31679:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "31675:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "31675:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "31648:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "31648:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "31644:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "31644:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "31605:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "31605:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "31590:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31590:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "31590:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "31546:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "31555:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "31543:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31543:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "31540:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "31719:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "31733:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "31736:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "31729:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "31729:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31742:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "31725:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31725:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "31712:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31712:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "31712:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "31139:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31144:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "31772:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "31786:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31799:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "31790:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "31832:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "31850:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "31876:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "31881:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "31872:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "31872:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "31859:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31859:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "31850:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "31816:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "31813:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "31926:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "31985:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "31992:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "31932:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31932:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "31919:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31919:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "31919:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "31764:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "31122:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31127:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31119:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31119:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "31112:895:81"
                }
              ]
            },
            "name": "copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "slot",
                "nodeType": "YulTypedName",
                "src": "30890:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "30896:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "30901:3:81",
                "type": ""
              }
            ],
            "src": "30807:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32096:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "32113:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "32118:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32106:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32106:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32106:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32169:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32178:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32181:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "32171:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32171:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32171:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "32140:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "32156:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "32161:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "32152:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32152:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32165:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "32148:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32148:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "32137:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32137:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "32134:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32194:30:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32214:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "32217:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "32210:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32210:14:81"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nodeType": "YulTypedName",
                      "src": "32198:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "32250:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "32255:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32246:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32246:14:81"
                      },
                      {
                        "name": "start",
                        "nodeType": "YulIdentifier",
                        "src": "32262:5:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "32269:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "32233:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32233:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32233:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "32287:36:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "32302:3:81"
                          },
                          {
                            "name": "length_1",
                            "nodeType": "YulIdentifier",
                            "src": "32307:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "32298:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32298:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32318:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "32294:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32294:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "32287:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nodeType": "YulTypedName",
                "src": "32065:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "32072:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "32080:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "32088:3:81",
                "type": ""
              }
            ],
            "src": "32018:311:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32599:663:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32609:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32627:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32638:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "32623:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32623:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "32613:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32657:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32668:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32650:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32650:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32650:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32680:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "32691:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "32684:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "32713:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "32721:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "32706:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32706:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32706:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "32737:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "32748:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32759:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "32744:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32744:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "32737:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32771:20:81",
                  "value": {
                    "name": "value0",
                    "nodeType": "YulIdentifier",
                    "src": "32785:6:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "32775:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32800:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "32809:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "32804:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32868:255:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "32882:33:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "32908:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "32895:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32895:20:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "32886:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "32953:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "32928:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32928:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32928:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "32979:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "32988:5:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "33003:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "33008:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "32999:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "32999:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "33012:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "32995:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32995:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "32984:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32984:31:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "32972:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32972:44:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32972:44:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "33029:14:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "33039:4:81",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "33033:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "33056:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "33067:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "33072:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "33063:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33063:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "33056:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "33088:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "33102:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "33110:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "33098:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33098:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "33088:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "32830:1:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "32833:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "32827:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32827:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "32841:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "32843:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "32852:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32855:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "32848:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32848:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "32843:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "32823:3:81",
                    "statements": []
                  },
                  "src": "32819:304:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33143:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33154:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33139:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33139:20:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "33165:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33170:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "33161:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33161:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33132:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33132:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33132:49:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33190:66:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "33236:6:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "33244:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "33252:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "33198:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33198:58:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "33190:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_address_payable_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "32544:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "32555:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "32563:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "32571:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "32579:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "32590:4:81",
                "type": ""
              }
            ],
            "src": "32334:928:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33441:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33458:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33469:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33451:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33451:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33451:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33492:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33503:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33488:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33488:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33508:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33481:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33481:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "33531:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33542:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33527:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33527:18:81"
                      },
                      {
                        "hexValue": "4d6f7265207468616e203120726f79616c7479207265636569766572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "33547:30:81",
                        "type": "",
                        "value": "More than 1 royalty receiver"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33520:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33520:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33520:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33587:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33599:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33610:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33595:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33595:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "33587:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "33418:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "33432:4:81",
                "type": ""
              }
            ],
            "src": "33267:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33676:116:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "33686:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "33701:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33704:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nodeType": "YulIdentifier",
                      "src": "33697:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33697:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nodeType": "YulIdentifier",
                      "src": "33686:7:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33764:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "33766:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33766:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33766:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nodeType": "YulIdentifier",
                                "src": "33735:1:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "33728:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33728:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nodeType": "YulIdentifier",
                                "src": "33742:1:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nodeType": "YulIdentifier",
                                    "src": "33749:7:81"
                                  },
                                  {
                                    "name": "x",
                                    "nodeType": "YulIdentifier",
                                    "src": "33758:1:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nodeType": "YulIdentifier",
                                  "src": "33745:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "33745:15:81"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "33739:2:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33739:22:81"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nodeType": "YulIdentifier",
                          "src": "33725:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33725:37:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "33718:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33718:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33715:71:81"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "33655:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "33658:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nodeType": "YulTypedName",
                "src": "33664:7:81",
                "type": ""
              }
            ],
            "src": "33624:168:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33829:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33846:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33853:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33858:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "33849:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33849:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33839:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33839:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33839:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33886:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33889:4:81",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33879:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33879:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33879:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33910:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33913:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "33903:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33903:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33903:15:81"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nodeType": "YulFunctionDefinition",
            "src": "33797:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33975:171:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34006:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34027:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "34034:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "34039:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "34030:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "34030:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "34020:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34020:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34020:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34071:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34074:4:81",
                              "type": "",
                              "value": "0x12"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "34064:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34064:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34064:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34099:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34102:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "34092:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34092:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34092:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "33995:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "33988:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33988:9:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33985:132:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34126:14:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "34135:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "34138:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nodeType": "YulIdentifier",
                      "src": "34131:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34131:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nodeType": "YulIdentifier",
                      "src": "34126:1:81"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "33960:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "33963:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nodeType": "YulTypedName",
                "src": "33969:1:81",
                "type": ""
              }
            ],
            "src": "33929:217:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34325:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34342:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34353:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34335:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34335:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34335:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34376:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34387:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34372:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34372:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34392:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34365:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34365:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34365:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34415:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34426:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34411:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34411:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34431:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34404:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34404:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34404:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34475:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34487:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34498:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34483:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34483:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34475:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34302:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34316:4:81",
                "type": ""
              }
            ],
            "src": "34151:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34686:230:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34703:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34714:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34696:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34696:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34696:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34737:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34748:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34733:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34733:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34753:2:81",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34726:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34726:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34726:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34776:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34787:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34772:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34772:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e67746820",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34792:34:81",
                        "type": "",
                        "value": "ERC1155: ids and amounts length "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34765:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34765:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34765:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34847:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34858:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34843:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34843:18:81"
                      },
                      {
                        "hexValue": "6d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34863:10:81",
                        "type": "",
                        "value": "mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34836:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34836:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34836:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34883:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34895:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34906:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34891:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34891:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34883:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34663:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34677:4:81",
                "type": ""
              }
            ],
            "src": "34512:404:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35095:227:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35112:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35123:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35105:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35105:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35105:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35146:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35157:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35142:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35142:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35162:2:81",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35135:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35135:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35185:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35196:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35181:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35181:18:81"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f206164",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35201:34:81",
                        "type": "",
                        "value": "ERC1155: transfer to the zero ad"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35174:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35174:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35174:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35256:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35267:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35252:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35252:18:81"
                      },
                      {
                        "hexValue": "6472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35272:7:81",
                        "type": "",
                        "value": "dress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35245:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35245:35:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35245:35:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35289:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35301:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35312:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35297:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35297:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35289:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35072:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35086:4:81",
                "type": ""
              }
            ],
            "src": "34921:401:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35501:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35518:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35529:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35511:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35511:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35511:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35552:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35563:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35548:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35548:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35568:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35541:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35541:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35541:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35591:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35602:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35587:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35587:18:81"
                      },
                      {
                        "hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35607:34:81",
                        "type": "",
                        "value": "ERC1155: insufficient balance fo"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35580:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35580:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35580:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35662:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35673:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35658:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35658:18:81"
                      },
                      {
                        "hexValue": "72207472616e73666572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35678:12:81",
                        "type": "",
                        "value": "r transfer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35651:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35651:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35651:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35700:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35712:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35723:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35708:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35708:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35700:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35478:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35492:4:81",
                "type": ""
              }
            ],
            "src": "35327:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35786:77:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "35796:16:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "35807:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "35810:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35803:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35803:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "35796:3:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35835:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "35837:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35837:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35837:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "35827:1:81"
                      },
                      {
                        "name": "sum",
                        "nodeType": "YulIdentifier",
                        "src": "35830:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "35824:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35824:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35821:36:81"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "35769:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "35772:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "35778:3:81",
                "type": ""
              }
            ],
            "src": "35738:125:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36097:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36114:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36125:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36107:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36107:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36107:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "36137:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "36180:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36192:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36203:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36188:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36188:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "36151:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36151:56:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "36141:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36227:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36238:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36223:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36223:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "36247:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36255:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "36243:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36243:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36216:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36216:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36216:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36275:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "36312:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "36320:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "36283:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36283:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36275:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36058:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "36069:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "36077:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36088:4:81",
                "type": ""
              }
            ],
            "src": "35868:465:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36512:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36529:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36540:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36522:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36522:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36522:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36563:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36574:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36559:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36559:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36579:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36552:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36552:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36552:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36601:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36612:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36597:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36597:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36617:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36590:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36590:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36590:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36636:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36648:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36659:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36644:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36644:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36636:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36489:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36503:4:81",
                "type": ""
              }
            ],
            "src": "36338:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36847:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36864:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36875:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36857:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36857:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36857:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36898:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36909:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36894:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36894:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36914:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36887:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36887:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36887:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36937:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36948:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36933:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36933:18:81"
                      },
                      {
                        "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36953:33:81",
                        "type": "",
                        "value": "ReentrancyGuard: reentrant call"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36926:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36926:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36926:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36996:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37008:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37019:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37004:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37004:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36996:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36824:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36838:4:81",
                "type": ""
              }
            ],
            "src": "36673:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37082:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "37092:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "37104:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "37107:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "37100:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37100:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "37092:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "37133:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "37135:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "37135:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "37135:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "37124:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "37130:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "37121:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37121:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "37118:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "37064:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "37067:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "37073:4:81",
                "type": ""
              }
            ],
            "src": "37033:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37340:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37357:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37368:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37350:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37350:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37350:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37391:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37402:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37387:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37387:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37407:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37380:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37380:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37380:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37430:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37441:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37426:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37426:18:81"
                      },
                      {
                        "hexValue": "4d69736d61746368656420746f6b656e206f726967696e61746f7273",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "37446:30:81",
                        "type": "",
                        "value": "Mismatched token originators"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37419:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37419:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37419:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37486:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37498:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37509:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37494:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37494:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "37486:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_949602a3a8201646aa1cfd4aa9eeb487c03c2df49971f81c096e783331adde02__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37317:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37331:4:81",
                "type": ""
              }
            ],
            "src": "37166:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37800:339:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37817:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "37832:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "37848:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "37853:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "37844:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "37844:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "37857:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "37840:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "37840:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "37828:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37828:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37810:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37810:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37881:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37892:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37877:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37877:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37897:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37870:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37870:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37870:30:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37909:87:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "37961:6:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "37969:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37981:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37992:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37977:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37977:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "37923:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37923:73:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "37913:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38016:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38027:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38012:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38012:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "38036:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38044:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "38032:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38032:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38005:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38005:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38005:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38064:69:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "38110:6:81"
                      },
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "38118:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "38126:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "38072:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38072:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38064:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37737:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "37748:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "37756:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "37764:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "37772:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "37780:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37791:4:81",
                "type": ""
              }
            ],
            "src": "37523:616:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38318:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38335:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38346:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38328:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38328:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38328:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38369:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38380:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38365:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38365:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38385:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38358:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38358:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38358:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38408:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38419:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38404:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38404:18:81"
                      },
                      {
                        "hexValue": "4d757374206265207265676973746572656420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38424:30:81",
                        "type": "",
                        "value": "Must be registered extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38397:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38397:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38397:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38464:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38476:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38487:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38472:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38472:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38464:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38295:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "38309:4:81",
                "type": ""
              }
            ],
            "src": "38144:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38675:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38692:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38703:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38685:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38685:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38685:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38726:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38737:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38722:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38722:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38742:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38715:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38715:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38715:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38765:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38776:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38761:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38761:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2073657474696e6720617070726f76616c20737461747573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38781:34:81",
                        "type": "",
                        "value": "ERC1155: setting approval status"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38754:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38754:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38754:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38836:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38847:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38832:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38832:18:81"
                      },
                      {
                        "hexValue": "20666f722073656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38852:11:81",
                        "type": "",
                        "value": " for self"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38825:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38825:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38825:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38873:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38885:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38896:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38881:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38881:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38873:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38652:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "38666:4:81",
                "type": ""
              }
            ],
            "src": "38501:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38986:646:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39035:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39044:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39047:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39037:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39037:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39037:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "39014:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "39022:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "39010:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "39010:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "39029:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "39006:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39006:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "38999:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38999:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38996:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39060:23:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "39076:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39070:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39070:13:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "39064:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39092:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "39102:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "39096:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39115:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39165:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "39125:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39125:43:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "39119:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39177:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39197:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39191:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39191:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "39181:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "39229:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "39237:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "39209:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39209:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39209:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39249:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "39260:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "39253:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "39282:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39290:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39275:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39275:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39275:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39302:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "39313:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39321:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39309:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39309:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "39302:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39333:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "39355:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "39367:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "39370:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "39363:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "39363:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39351:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39351:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39376:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39347:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39347:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "39337:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39407:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39416:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39419:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39409:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39409:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39409:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "39394:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "39402:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "39391:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39391:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "39388:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39432:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "39447:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "39455:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39443:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39443:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "39436:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39523:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "39544:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "39555:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "39549:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "39549:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "39537:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39537:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39537:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "39573:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "39584:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "39589:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "39580:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39580:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "39573:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "39478:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "39483:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "39475:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39475:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "39491:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "39493:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "39504:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "39509:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "39500:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39500:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "39493:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "39471:3:81",
                    "statements": []
                  },
                  "src": "39467:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39611:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "39620:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "39611:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "38960:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "38968:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "38976:5:81",
                "type": ""
              }
            ],
            "src": "38911:721:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39793:1123:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39839:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39848:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39851:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39841:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39841:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39841:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "39814:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39823:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "39810:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39810:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39835:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "39806:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39806:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "39803:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39864:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39884:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "39878:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39878:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "39868:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39903:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "39913:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "39907:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "39958:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39967:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "39970:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "39960:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "39960:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "39960:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "39946:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "39954:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "39943:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39943:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "39940:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39983:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39997:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "40008:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39993:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39993:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "39987:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40063:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40072:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40075:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40065:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40065:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40065:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "40042:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "40046:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "40038:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "40038:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "40053:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "40034:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40034:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "40027:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40027:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40024:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40088:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "40104:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40098:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40098:9:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "40092:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40116:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "40126:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "40120:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40139:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "40189:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "40149:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40149:43:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "40143:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40201:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40221:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40215:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40215:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "40205:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40253:6:81"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "40261:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "40233:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40233:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40233:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40273:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "40284:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "40277:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40306:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "40314:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40299:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40299:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40299:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40326:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40337:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "40345:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40333:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40333:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "40326:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40357:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "40379:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "40387:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "40390:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "40383:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "40383:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40375:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40375:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "40396:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40371:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40371:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "40361:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40431:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40440:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40443:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40433:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40433:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40433:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "40414:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "40422:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "40411:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40411:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40408:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40456:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "40471:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "40475:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40467:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40467:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "40460:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40543:154:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "40557:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "40576:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "40570:5:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40570:10:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "40561:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "40618:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "40593:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40593:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40593:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "40644:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "40649:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "40637:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40637:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40637:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "40668:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "40679:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "40684:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "40675:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40675:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "40668:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "40498:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "40503:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "40495:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40495:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "40511:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "40513:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "40524:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "40529:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "40520:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40520:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "40513:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "40491:3:81",
                    "statements": []
                  },
                  "src": "40487:210:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40706:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "40716:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "40706:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40731:41:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40757:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "40768:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40753:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40753:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40747:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40747:25:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "40735:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40801:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40810:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40813:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40803:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40803:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40803:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "40787:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "40797:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "40784:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40784:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40781:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40826:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40880:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "40891:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40876:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40876:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "40902:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "40836:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40836:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "40826:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39751:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "39762:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "39774:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "39782:6:81",
                "type": ""
              }
            ],
            "src": "39637:1279:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41095:167:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41112:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41123:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41105:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41105:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41105:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41146:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41157:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41142:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41142:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41162:2:81",
                        "type": "",
                        "value": "17"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41135:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41135:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41185:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41196:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41181:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41181:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "41201:19:81",
                        "type": "",
                        "value": "Invalid extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41174:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41174:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41174:47:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41230:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41242:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41253:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41238:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41238:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41230:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_39736ad8edb82cab8fab418c447e0b8998fe764b7748a15a1ca217315b23256b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41072:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41086:4:81",
                "type": ""
              }
            ],
            "src": "40921:341:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41441:165:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41458:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41469:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41451:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41451:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41451:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41492:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41503:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41488:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41488:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41508:2:81",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41481:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41481:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41531:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41542:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41527:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41527:18:81"
                      },
                      {
                        "hexValue": "496e76616c69642061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "41547:17:81",
                        "type": "",
                        "value": "Invalid address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41520:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41520:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41520:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41574:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41586:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41597:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41582:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41582:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41574:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41418:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41432:4:81",
                "type": ""
              }
            ],
            "src": "41267:339:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41740:119:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "41750:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41762:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41773:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41758:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41758:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "41750:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41792:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "41803:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41785:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41785:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41785:25:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41830:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "41841:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41826:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41826:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "41846:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41819:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41819:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41819:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "41701:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "41712:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "41720:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "41731:4:81",
                "type": ""
              }
            ],
            "src": "41611:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42038:173:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42055:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42066:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42048:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42048:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42048:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42089:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42100:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42085:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42085:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42105:2:81",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42078:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42078:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42078:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42128:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42139:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42124:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42124:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f74616c20726f79616c74696573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "42144:25:81",
                        "type": "",
                        "value": "Invalid total royalties"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42117:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42117:53:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42117:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42179:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42191:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42202:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "42187:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42187:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "42179:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42015:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42029:4:81",
                "type": ""
              }
            ],
            "src": "41864:347:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42294:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42340:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42349:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42352:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42342:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42342:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42342:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "42315:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42324:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "42311:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42311:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42336:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "42307:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42307:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "42304:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42365:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42391:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "42378:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42378:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "42369:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "42435:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "42410:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42410:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42410:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42450:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "42460:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "42450:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_payable",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42260:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "42271:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "42283:6:81",
                "type": ""
              }
            ],
            "src": "42216:255:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42508:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42525:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42532:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42537:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "42528:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42528:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42518:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42518:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42518:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42565:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42568:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42558:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42558:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42558:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42589:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42592:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "42582:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42582:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42582:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "42476:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42939:496:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42949:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42967:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42972:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "42963:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42963:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42976:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "42959:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42959:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "42953:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42994:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "43009:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "43017:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "43005:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43005:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42987:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42987:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42987:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43041:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43052:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43037:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43037:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "43061:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "43069:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "43057:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43057:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43030:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43030:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43030:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43093:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43104:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43089:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43089:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43109:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43082:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43082:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43082:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43122:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "43165:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43177:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43188:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43173:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43173:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "43136:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43136:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "43126:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43213:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43224:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43209:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43209:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "43233:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43241:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "43229:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43229:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43202:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43202:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43261:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "43304:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "43312:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "43275:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43275:44:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "43265:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43339:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43350:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43335:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43335:19:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "43360:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43368:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "43356:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43356:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43328:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43328:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43328:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43388:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "43414:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "43422:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "43396:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43396:33:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43388:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42876:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "42887:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "42895:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "42903:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "42911:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "42919:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42930:4:81",
                "type": ""
              }
            ],
            "src": "42608:827:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43520:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "43566:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43575:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43578:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "43568:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "43568:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "43568:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "43541:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43550:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "43537:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43537:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43562:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "43533:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43533:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "43530:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43591:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43610:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "43604:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43604:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "43595:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "43653:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "43629:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43629:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43629:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43668:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "43678:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "43668:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43486:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "43497:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43509:6:81",
                "type": ""
              }
            ],
            "src": "43440:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43737:136:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "43782:85:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43811:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43814:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43817:1:81",
                              "type": "",
                              "value": "4"
                            }
                          ],
                          "functionName": {
                            "name": "returndatacopy",
                            "nodeType": "YulIdentifier",
                            "src": "43796:14:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "43796:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "43796:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "43832:25:81",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43843:3:81",
                              "type": "",
                              "value": "224"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "43854:1:81",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "43848:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "43848:8:81"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "43839:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "43839:18:81"
                        },
                        "variableNames": [
                          {
                            "name": "sig",
                            "nodeType": "YulIdentifier",
                            "src": "43832:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "43753:14:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43753:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43771:1:81",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "43750:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43750:23:81"
                  },
                  "nodeType": "YulIf",
                  "src": "43747:120:81"
                }
              ]
            },
            "name": "return_data_selector",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "sig",
                "nodeType": "YulTypedName",
                "src": "43729:3:81",
                "type": ""
              }
            ],
            "src": "43694:179:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43925:624:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "43965:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "43967:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "43941:14:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43941:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43959:4:81",
                        "type": "",
                        "value": "0x44"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "43938:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43938:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "43935:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43983:21:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44001:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "43995:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43995:9:81"
                  },
                  "variables": [
                    {
                      "name": "data",
                      "nodeType": "YulTypedName",
                      "src": "43987:4:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44013:16:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44027:1:81",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nodeType": "YulIdentifier",
                      "src": "44023:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44023:6:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "44017:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "44053:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44059:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "returndatasize",
                              "nodeType": "YulIdentifier",
                              "src": "44066:14:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "44066:16:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44084:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44062:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44062:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "returndatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "44038:14:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44038:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44038:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44097:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "44117:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "44111:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44111:11:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "44101:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44131:26:81",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "returndatasize",
                      "nodeType": "YulIdentifier",
                      "src": "44141:14:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44141:16:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "44135:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44166:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "44176:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "44170:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "44252:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "44254:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "44212:6:81"
                          },
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "44220:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "44209:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44209:14:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "44232:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "44240:4:81",
                                "type": "",
                                "value": "0x24"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "44228:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "44228:17:81"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "44247:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "44225:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44225:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "44206:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44206:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "44203:58:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44270:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "44285:4:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "44291:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "44281:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44281:17:81"
                  },
                  "variables": [
                    {
                      "name": "msg",
                      "nodeType": "YulTypedName",
                      "src": "44274:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44307:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "msg",
                        "nodeType": "YulIdentifier",
                        "src": "44327:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "44321:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44321:10:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "44311:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "44358:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "44360:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "44346:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "44354:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "44343:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44343:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "44340:27:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "44449:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "44451:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "msg",
                                "nodeType": "YulIdentifier",
                                "src": "44390:3:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "44395:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "44386:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "44386:16:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44404:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44382:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44382:27:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "44419:4:81"
                              },
                              {
                                "arguments": [],
                                "functionName": {
                                  "name": "returndatasize",
                                  "nodeType": "YulIdentifier",
                                  "src": "44425:14:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "44425:16:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "44415:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "44415:27:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44444:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44411:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44411:36:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "44379:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44379:69:81"
                  },
                  "nodeType": "YulIf",
                  "src": "44376:82:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "44487:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "44501:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "44509:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "44497:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "44497:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44518:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44493:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44493:30:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "44467:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44467:57:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44467:57:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44533:10:81",
                  "value": {
                    "name": "msg",
                    "nodeType": "YulIdentifier",
                    "src": "44540:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "44533:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "try_decode_error_message",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "43917:3:81",
                "type": ""
              }
            ],
            "src": "43878:671:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44728:242:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44745:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44756:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44738:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44738:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44738:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44779:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44790:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44775:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44775:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44795:2:81",
                        "type": "",
                        "value": "52"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44768:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44768:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44768:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44818:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44829:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44814:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44814:18:81"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f206e6f6e2d45524331313535",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "44834:34:81",
                        "type": "",
                        "value": "ERC1155: transfer to non-ERC1155"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44807:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44807:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44807:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44889:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44900:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44885:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44885:18:81"
                      },
                      {
                        "hexValue": "526563656976657220696d706c656d656e746572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "44905:22:81",
                        "type": "",
                        "value": "Receiver implementer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44878:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44878:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44878:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44937:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44949:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44960:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "44945:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44945:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "44937:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f591f7b75ffc499e05f8b34c3364b2eceff651378d9549db1d5d67c0d8255c5d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44705:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "44719:4:81",
                "type": ""
              }
            ],
            "src": "44554:416:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45149:230:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45166:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45177:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45159:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45159:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45159:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45200:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45211:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45196:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45196:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45216:2:81",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45189:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45189:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45189:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45239:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45250:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45235:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45235:18:81"
                      },
                      {
                        "hexValue": "455243313135353a204552433131353552656365697665722072656a65637465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "45255:34:81",
                        "type": "",
                        "value": "ERC1155: ERC1155Receiver rejecte"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45228:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45228:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45228:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45310:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45321:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45306:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45306:18:81"
                      },
                      {
                        "hexValue": "6420746f6b656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "45326:10:81",
                        "type": "",
                        "value": "d tokens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45299:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45299:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45299:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "45346:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45358:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45369:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "45354:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45354:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "45346:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "45126:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "45140:4:81",
                "type": ""
              }
            ],
            "src": "44975:404:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45558:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45575:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45586:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45568:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45568:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45568:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45609:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45620:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45605:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45605:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45625:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45598:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45598:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45598:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45648:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45659:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45644:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45644:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206275726e2066726f6d20746865207a65726f2061646472",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "45664:34:81",
                        "type": "",
                        "value": "ERC1155: burn from the zero addr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45637:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45637:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45637:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45719:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45730:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45715:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45715:18:81"
                      },
                      {
                        "hexValue": "657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "45735:5:81",
                        "type": "",
                        "value": "ess"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45708:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45708:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45708:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "45750:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45762:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45773:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "45758:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45758:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "45750:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "45535:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "45549:4:81",
                "type": ""
              }
            ],
            "src": "45384:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45962:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45979:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45990:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "45972:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45972:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45972:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46013:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46024:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46009:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46009:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46029:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46002:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46002:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46002:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46052:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46063:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46048:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46048:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206275726e20616d6f756e7420657863656564732062616c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46068:34:81",
                        "type": "",
                        "value": "ERC1155: burn amount exceeds bal"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46041:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46041:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46041:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46123:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46134:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46119:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46119:18:81"
                      },
                      {
                        "hexValue": "616e6365",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46139:6:81",
                        "type": "",
                        "value": "ance"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46112:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46112:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46112:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46155:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46167:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46178:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "46163:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46163:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "46155:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "45939:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "45953:4:81",
                "type": ""
              }
            ],
            "src": "45788:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46528:433:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46545:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "46560:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "46576:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "46581:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "46572:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "46572:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "46585:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "46568:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "46568:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "46556:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46556:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46538:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46538:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46538:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46609:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46620:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46605:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46605:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46625:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46598:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46598:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46598:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "46638:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "46681:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46693:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46704:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46689:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46689:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "46652:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46652:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "46642:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46729:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46740:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46725:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46725:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "46749:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46757:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "46745:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46745:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46718:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46718:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46718:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "46777:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "46820:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "46828:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "46791:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46791:44:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "46781:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46855:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46866:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46851:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46851:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "46875:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46883:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "46871:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46871:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46844:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46844:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46844:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46903:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "46940:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "46948:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "46911:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46911:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "46903:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "46473:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "46484:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "46492:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "46500:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "46508:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "46519:4:81",
                "type": ""
              }
            ],
            "src": "46193:768:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47197:330:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "47207:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47225:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47230:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "47221:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47221:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47234:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "47217:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47217:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "47211:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47252:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "47267:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "47275:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "47263:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47263:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47245:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47245:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47245:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47299:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47310:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47295:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47295:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "47319:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "47327:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "47315:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47315:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47288:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47288:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47288:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47351:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47362:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47347:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47347:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "47367:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47340:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47340:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47340:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47394:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47405:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47390:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47390:18:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "47410:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47383:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47383:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47383:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47437:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47448:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47433:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47433:19:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47454:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47426:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47426:32:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47426:32:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "47467:54:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "47493:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47505:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47516:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47501:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47501:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "47475:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47475:46:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "47467:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47134:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "47145:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "47153:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "47161:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "47169:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "47177:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "47188:4:81",
                "type": ""
              }
            ],
            "src": "46966:561:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47631:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "47641:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47653:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47664:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "47649:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47649:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "47641:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47683:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "47698:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "47710:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "47715:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "47706:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "47706:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "47694:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47694:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47676:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47676:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47676:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47600:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "47611:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "47622:4:81",
                "type": ""
              }
            ],
            "src": "47532:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "48052:433:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48062:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48080:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48085:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "48076:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48076:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48089:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "48072:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48072:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "48066:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "48107:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "48122:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "48130:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "48118:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48118:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48100:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48100:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48100:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48154:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48165:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "48150:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48150:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "48174:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "48182:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "48170:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48170:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48143:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48143:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48143:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48206:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48217:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "48202:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48202:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nodeType": "YulIdentifier",
                            "src": "48226:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "48234:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "48222:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48222:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48195:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48195:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48195:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48258:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48269:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "48254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48254:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48274:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48247:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48247:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48247:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48287:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "48330:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48342:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48353:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "48338:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48338:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "48301:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48301:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "48291:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48378:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48389:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "48374:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48374:19:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "48399:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48407:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "48395:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48395:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48367:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48367:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48367:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "48427:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "48464:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "48472:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "48435:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48435:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "48427:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47989:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "48000:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "48008:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "48016:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "48024:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "48032:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "48043:4:81",
                "type": ""
              }
            ],
            "src": "47739:746:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "48568:167:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "48614:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "48623:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "48626:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "48616:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "48616:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "48616:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "48589:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48598:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "48585:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48585:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48610:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "48581:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48581:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "48578:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48639:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "48658:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "48652:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48652:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "48643:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "48699:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "48677:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48677:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48677:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "48714:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "48724:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "48714:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "48534:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "48545:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "48557:6:81",
                "type": ""
              }
            ],
            "src": "48490:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "48914:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "48931:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48942:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48924:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48924:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48924:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "48965:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "48976:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "48961:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48961:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48981:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48954:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48954:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48954:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49004:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49015:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49000:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49000:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20617070726f76616c206661696c757265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "49020:28:81",
                        "type": "",
                        "value": "Extension approval failure"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "48993:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48993:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "48993:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "49058:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "49070:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "49081:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "49066:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49066:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "49058:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "48891:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "48905:4:81",
                "type": ""
              }
            ],
            "src": "48740:350:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "49269:223:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "49286:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "49297:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49279:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49279:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49279:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49320:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49331:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49316:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49316:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "49336:2:81",
                        "type": "",
                        "value": "33"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49309:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49309:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49309:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49359:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49370:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49355:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49355:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206d696e7420746f20746865207a65726f20616464726573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "49375:34:81",
                        "type": "",
                        "value": "ERC1155: mint to the zero addres"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49348:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49348:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49348:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49430:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49441:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49426:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49426:18:81"
                      },
                      {
                        "hexValue": "73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "49446:3:81",
                        "type": "",
                        "value": "s"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49419:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49419:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49419:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "49459:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "49471:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "49482:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "49467:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49467:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "49459:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49246:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "49260:4:81",
                "type": ""
              }
            ],
            "src": "49095:397:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\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    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_array_uint256_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_uint256_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_string_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_decode_array_address_payable_dyn_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), value1)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function finalize_allocation(memPtr, size)\n    {\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_uint256_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function array_allocation_size_bytes(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(and(add(length, 31), not(31)), 0x20)\n    }\n    function abi_decode_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := array_allocation_size_bytes(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _2)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\n    }\n    function abi_decode_tuple_t_string_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n    }\n    function abi_encode_array_address_dyn(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        let _1 := 0x20\n        pos := add(pos, _1)\n        let srcPtr := add(value, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        end := pos\n    }\n    function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_address_dyn(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function validator_revert_bool(value)\n    {\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let value_1 := calldataload(add(headStart, 64))\n        validator_revert_bool(value_1)\n        value3 := value_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_string_calldata_ptrt_bool(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_string_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let value := calldataload(add(headStart, 32))\n        validator_revert_bool(value)\n        value2 := value\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value0_1, value1_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value0 := value0_1\n        value1 := value1_1\n        let offset_1 := calldataload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_bool(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_array$_t_address_payable_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value1_1, value2_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset), dataEnd)\n        value1 := value1_1\n        value2 := value2_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_address_dyn(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_address_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_1)\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_415a1b99e1fd4a18cf87c08995f5a9130182e8d76e9c17c497bfebaaef9265ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC1155: address zero is not a v\")\n        mstore(add(headStart, 96), \"alid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"AdminControl: Must be owner or a\")\n        mstore(add(headStart, 96), \"dmin\")\n        tail := add(headStart, 128)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 22)\n        mstore(add(headStart, 64), \"No extension for token\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 21)\n        mstore(add(headStart, 64), \"Extension blacklisted\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_47c72b42072ed6c647dec3a0a5c88bec44d3e901c64659bff94ecce0a0323156__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 46)\n        mstore(add(headStart, 64), \"ERC1155: caller is not token own\")\n        mstore(add(headStart, 96), \"er or approved\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"Caller is not owner or approved\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"Invalid input\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1155: accounts and ids length\")\n        mstore(add(headStart, 96), \" mismatch\")\n        tail := add(headStart, 128)\n    }\n    function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n    {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n        let addr_1 := add(base_ref, rel_offset_of_tail)\n        length := calldataload(addr_1)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        addr := add(addr_1, 0x20)\n        if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 13)\n        mstore(add(headStart, 64), \"Invalid token\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Token created by extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Token not created by this extens\")\n        mstore(add(headStart, 96), \"ion\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"Cannot blacklist yourself\")\n        tail := add(headStart, 96)\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function abi_encode_string_storage(value, pos) -> ret\n    {\n        let slotValue := sload(value)\n        let length := extract_byte_array_length(slotValue)\n        let _1 := 1\n        switch and(slotValue, _1)\n        case 0 {\n            mstore(pos, and(slotValue, not(255)))\n            ret := add(pos, mul(length, iszero(iszero(length))))\n        }\n        case 1 {\n            mstore(0, value)\n            let _2 := 0x20\n            let dataPos := keccak256(0, _2)\n            let i := 0\n            for { } lt(i, length) { i := add(i, _2) }\n            {\n                mstore(add(pos, i), sload(dataPos))\n                dataPos := add(dataPos, _1)\n            }\n            ret := add(pos, length)\n        }\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_storage__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        end := abi_encode_string_storage(value1, abi_encode_string_storage(value0, pos))\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n        let _2 := mload(_1)\n        let _3 := array_allocation_size_bytes(_2)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        mstore(memPtr, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(memPtr, 32), _2)\n        value0 := memPtr\n    }\n    function abi_encode_tuple_packed_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let _1 := abi_encode_string_storage(value0, pos)\n        let length := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), _1, length)\n        end := add(_1, length)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_array_uint256_dyn_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        if gt(length, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length_1 := shl(5, length)\n        calldatacopy(add(pos, 0x20), start, length_1)\n        end := add(add(pos, length_1), 0x20)\n    }\n    function abi_encode_tuple_t_array$_t_address_payable_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_address_payable_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let tail_1 := add(headStart, 64)\n        mstore(headStart, 64)\n        let pos := tail_1\n        mstore(tail_1, value1)\n        pos := add(headStart, 96)\n        let srcPtr := value0\n        let i := 0\n        for { } lt(i, value1) { i := add(i, 1) }\n        {\n            let value := calldataload(srcPtr)\n            validator_revert_address(value)\n            mstore(pos, and(value, sub(shl(160, 1), 1)))\n            let _1 := 0x20\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, 0x20), sub(pos, headStart))\n        tail := abi_encode_array_uint256_dyn_calldata(value2, value3, pos)\n    }\n    function abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"More than 1 royalty receiver\")\n        tail := add(headStart, 96)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ids and amounts length \")\n        mstore(add(headStart, 96), \"mismatch\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC1155: transfer to the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC1155: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r transfer\")\n        tail := add(headStart, 128)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_uint256_dyn(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value1, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 7)\n        mstore(add(headStart, 64), \"Invalid\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 31)\n        mstore(add(headStart, 64), \"ReentrancyGuard: reentrant call\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_949602a3a8201646aa1cfd4aa9eeb487c03c2df49971f81c096e783331adde02__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Mismatched token originators\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 96)\n        let tail_1 := abi_encode_array_uint256_dyn_calldata(value1, value2, add(headStart, 96))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn_calldata(value3, value4, tail_1)\n    }\n    function abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"Must be registered extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC1155: setting approval status\")\n        mstore(add(headStart, 96), \" for self\")\n        tail := add(headStart, 128)\n    }\n    function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := 0x20\n        let _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, mload(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function abi_decode_tuple_t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        let _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _4)\n        let srcEnd := add(add(_2, shl(5, _3)), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            let value := mload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        let offset_1 := mload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_39736ad8edb82cab8fab418c447e0b8998fe764b7748a15a1ca217315b23256b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 17)\n        mstore(add(headStart, 64), \"Invalid extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 15)\n        mstore(add(headStart, 64), \"Invalid address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 23)\n        mstore(add(headStart, 64), \"Invalid total royalties\")\n        tail := add(headStart, 96)\n    }\n    function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        tail := abi_encode_string(value4, tail_2)\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function return_data_selector() -> sig\n    {\n        if gt(returndatasize(), 3)\n        {\n            returndatacopy(0, 0, 4)\n            sig := shr(224, mload(0))\n        }\n    }\n    function try_decode_error_message() -> ret\n    {\n        if lt(returndatasize(), 0x44) { leave }\n        let data := mload(64)\n        let _1 := not(3)\n        returndatacopy(data, 4, add(returndatasize(), _1))\n        let offset := mload(data)\n        let _2 := returndatasize()\n        let _3 := 0xffffffffffffffff\n        if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n        let msg := add(data, offset)\n        let length := mload(msg)\n        if gt(length, _3) { leave }\n        if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n        finalize_allocation(data, add(add(offset, length), 0x20))\n        ret := msg\n    }\n    function abi_encode_tuple_t_stringliteral_f591f7b75ffc499e05f8b34c3364b2eceff651378d9549db1d5d67c0d8255c5d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"ERC1155: transfer to non-ERC1155\")\n        mstore(add(headStart, 96), \"Receiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ERC1155Receiver rejecte\")\n        mstore(add(headStart, 96), \"d tokens\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC1155: burn from the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC1155: burn amount exceeds bal\")\n        mstore(add(headStart, 96), \"ance\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_array_address_dyn(value1, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value2, tail_1)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_array_uint256_dyn(value3, tail_2)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), 160)\n        tail := abi_encode_string(value4, add(headStart, 160))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        let _1 := sub(shl(160, 1), 1)\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value3, add(headStart, 160))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value4, tail_1)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bool(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 26)\n        mstore(add(headStart, 64), \"Extension approval failure\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC1155: mint to the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "291:14844:24:-:0;;;899:1:32;868:32;;480:87:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;549:5;556:7;936:32:7;719:10:17;936:18:7;:32::i;:::-;1716:1:8;1821:22;;428:5:74;:13;436:5;428;:13;:::i;:::-;-1:-1:-1;451:7:74;:17;461:7;451;:17;:::i;:::-;;362:113;;480:87:24;;291:14844;;2433:187:7;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:127:81:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:81;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:81;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:81:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:81;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:81;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:81;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:81;;;3992:26;3943:89;-1:-1:-1;;2747:1:81;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:81;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:81;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:81;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:81:o;:::-;291:14844:24;;;;;;",
  "deployedSourceMap": "291:14844:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1618:227:75;;;;;;:::i;:::-;;:::i;:::-;;;616:25:81;;;604:2;589:18;1618:227:75;;;;;;;;634:304:24;;;;;;:::i;:::-;;:::i;:::-;;;1203:14:81;;1196:22;1178:41;;1166:2;1151:18;634:304:24;1038:187:81;2018:126:24;;;;;;:::i;:::-;;:::i;:::-;;2516:89:75;;;:::i;:::-;;;;;;;:::i;13388:125:24:-;;;;;;:::i;:::-;;:::i;12948:138::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3990:136::-;;;;;;:::i;:::-;;:::i;11683:204::-;;;;;;:::i;:::-;;:::i;13281:115:32:-;13369:20;;-1:-1:-1;;;;;13369:20:32;13281:115;;;;;;;:::i;10446:306:24:-;;;;;;:::i;:::-;;:::i;1980:137:0:-;;;;;;:::i;:::-;;:::i;13156:166:24:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1712:205:0:-;;;;;;:::i;:::-;;:::i;3685:422:75:-;;;;;;:::i;:::-;;:::i;3608:118:24:-;;;;;;:::i;:::-;;:::i;1226:205::-;;;;;;:::i;:::-;;:::i;1111:261:0:-;;;:::i;:::-;;;;;;;:::i;11417:199:24:-;;;;;;:::i;:::-;;:::i;10818:532::-;;;;;;:::i;:::-;;:::i;2223:157::-;;;;;;:::i;:::-;;:::i;1503:239::-;;;;;;:::i;:::-;;:::i;2002:508:75:-;;;;;;:::i;:::-;;:::i;15003:130:24:-;;;;;;:::i;:::-;;:::i;3193:345::-;;;;;;:::i;:::-;;:::i;2717:158::-;;;;;;:::i;:::-;;:::i;5125:519::-;;;;;;:::i;:::-;;:::i;1440:205:0:-;;;;;;:::i;:::-;;:::i;1831:101:7:-;;;:::i;2459:177:24:-;;;;;;:::i;:::-;;:::i;3998:316:32:-;;;:::i;5722:264:24:-;;;;;;:::i;:::-;;:::i;1201:85:7:-;;;:::i;2611:93:75:-;;;:::i;3798:126:24:-;;;;;;:::i;:::-;;:::i;2772:151:75:-;;;;;;:::i;:::-;;:::i;4192:313:24:-;;;;;;:::i;:::-;;:::i;4915:163:32:-;;;;;;:::i;:::-;;:::i;11963:226:24:-;;;;;;:::i;:::-;;:::i;12722:162::-;;;;;;:::i;:::-;;:::i;12256:169::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;13594:132::-;;;;;;:::i;:::-;13672:7;13698:21;;;:12;:21;;;;;;;13594:132;1817:128;;;;;;:::i;:::-;;:::i;6069:440::-;;;;;;:::i;:::-;;:::i;2950:168::-;;;;;;:::i;:::-;;:::i;2990:166:75:-;;;;;;:::i;:::-;;:::i;4578:160:24:-;;;;;;:::i;:::-;;:::i;3223:390:75:-;;;;;;:::i;:::-;;:::i;2081:198:7:-;;;;;;:::i;:::-;;:::i;4811:236:24:-;;;;;;:::i;:::-;;:::i;562:35:33:-;;596:1;562:35;;1618:227:75;1704:7;-1:-1:-1;;;;;1731:21:75;;1723:76;;;;-1:-1:-1;;;1723:76:75;;21829:2:81;1723:76:75;;;21811:21:81;21868:2;21848:18;;;21841:30;21907:34;21887:18;;;21880:62;-1:-1:-1;;;21958:18:81;;;21951:40;22008:19;;1723:76:75;;;;;;;;;-1:-1:-1;1816:13:75;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;1816:22:75;;;;;;;;;;1618:227;;;;;:::o;634:304:24:-;766:4;789:49;826:11;789:36;:49::i;:::-;:95;;;;842:42;872:11;842:29;:42::i;:::-;789:142;;;;888:43;919:11;888:30;:43::i;2018:126::-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;2107:30:24::1;2127:9;2107:19;:30::i;:::-;2018:126:::0;:::o;2516:89:75:-;2561:13;2593:5;2586:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2516:89;:::o;13388:125:24:-;13456:13;13488:18;13498:7;13488:9;:18::i;12948:138::-;13024:13;13056:23;13071:7;13056:14;:23::i;3990:136::-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;4092:27:24::1;4105:7;4114:4;;4092:12;:27::i;:::-;3990:136:::0;;;:::o;11683:204::-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;11834:46:24::1;11848:7;11857:9;;11868:11;;11834:13;:46::i;:::-;11683:204:::0;;;;;:::o;10446:306::-;10525:17;10566:24;10582:7;10566:15;:24::i;:::-;10554:36;-1:-1:-1;;;;;;10608:23:24;;10600:58;;;;-1:-1:-1;;;10600:58:24;;23030:2:81;10600:58:24;;;23012:21:81;23069:2;23049:18;;;23042:30;-1:-1:-1;;;23088:18:81;;;23081:52;23150:18;;10600:58:24;22828:346:81;10600:58:24;10677:42;:22;10709:9;10677:31;:42::i;:::-;10676:43;10668:77;;;;-1:-1:-1;;;10668:77:24;;;;;;;:::i;:::-;10446:306;;;:::o;1980:137:0:-;2042:4;2077:5;-1:-1:-1;;;;;2066:16:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2066:16:0;;:43;;;-1:-1:-1;2086:23:0;:7;2103:5;2086:16;:23::i;13156:166:24:-;13249:7;13258;13284:31;13300:7;13309:5;13284:15;:31::i;:::-;13277:38;;;;13156:166;;;;;;:::o;1712:205:0:-;1094:13:7;:11;:13::i;:::-;1790:23:0::1;:7;1807:5:::0;1790:16:::1;:23::i;:::-;1786:125;;;1834:31;::::0;1854:10:::1;::::0;-1:-1:-1;;;;;1834:31:0;::::1;::::0;::::1;::::0;;;::::1;1879:21;:7;1894:5:::0;1879:14:::1;:21::i;:::-;;1712:205:::0;:::o;3685:422:75:-;-1:-1:-1;;;;;3910:18:75;;3918:10;3910:18;;:56;;;3932:34;3949:4;3955:10;3932:16;:34::i;:::-;3889:149;;;;-1:-1:-1;;;3889:149:75;;;;;;;:::i;:::-;4048:52;4071:4;4077:2;4081:3;4086:7;4095:4;4048:22;:52::i;3608:118:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;3697:22:24::1;3714:4;;3697:16;:22::i;1226:205::-:0;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;1339:30:24::1;1359:9;1339:19;:30::i;:::-;1379:45;1398:9;1409:7;;1418:5;1379:18;:45::i;1111:261:0:-:0;1164:23;1222:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1208:31:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1208:31:0;;1199:40;;1254:6;1249:94;1270:16;:7;:14;:16::i;:::-;1266:1;:20;1249:94;;;1319:13;:7;1330:1;1319:10;:13::i;:::-;1307:6;1314:1;1307:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:25:0;;;:9;;;;;;;;;;;:25;1288:3;;;;:::i;:::-;;;;1249:94;;;;1111:261;:::o;11417:199:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;11551:58:24::1;11582:1;11586:9;;11597:11;;11551:22;:58::i;:::-;11417:199:::0;;;;:::o;10818:532::-;2261:21:8;:19;:21::i;:::-;-1:-1:-1;;;;;10961:21:24;::::1;10972:10;10961:21;::::0;:62:::1;;;10986:37;11003:7;11012:10;10986:16;:37::i;:::-;10953:106;;;::::0;-1:-1:-1;;;10953:106:24;;24550:2:81;10953:106:24::1;::::0;::::1;24532:21:81::0;24589:2;24569:18;;;24562:30;24628:33;24608:18;;;24601:61;24679:18;;10953:106:24::1;24348:355:81::0;10953:106:24::1;11077:33:::0;;::::1;11069:59;;;;-1:-1:-1::0;;;11069:59:24::1;;;;;;;:::i;:::-;11161:1;11142:20:::0;;;11138:159:::1;;11178:39;11184:7;11193:8;;11202:1;11193:11;;;;;;;:::i;:::-;;;;;;;11206:7;;11214:1;11206:10;;;;;;;:::i;:::-;;;;;;;11178:5;:39::i;:::-;11138:159;;;11248:38;11259:7;11268:8;;11248:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;11248:38:24::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;-1:-1:-1;11278:7:24;;-1:-1:-1;11278:7:24;;;;11248:38;::::1;::::0;11278:7;;11248:38;11278:7;11248:38;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;11248:10:24::1;::::0;-1:-1:-1;;;11248:38:24:i:1;:::-;11306:37;11316:7;11325:8;;11335:7;;11306:9;:37::i;:::-;2303:20:8::0;1716:1;2809:22;;2629:209;2223:157:24;2307:18;:16;:18::i;:::-;2335:38;2361:4;;2367:5;2335:25;:38::i;1503:239::-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;1639:30:24::1;1659:9;1639:19;:30::i;:::-;1679:56;1698:9;1709:7;;1718:16;1679:18;:56::i;2002:508:75:-:0;2153:16;2212:3;:10;2193:8;:15;:29;2185:83;;;;-1:-1:-1;;;2185:83:75;;25252:2:81;2185:83:75;;;25234:21:81;25291:2;25271:18;;;25264:30;25330:34;25310:18;;;25303:62;-1:-1:-1;;;25381:18:81;;;25374:39;25430:19;;2185:83:75;25050:405:81;2185:83:75;2279:30;2326:8;:15;-1:-1:-1;;;;;2312:30:75;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2312:30:75;;2279:63;;2358:9;2353:120;2377:8;:15;2373:1;:19;2353:120;;;2432:30;2442:8;2451:1;2442:11;;;;;;;;:::i;:::-;;;;;;;2455:3;2459:1;2455:6;;;;;;;;:::i;:::-;;;;;;;2432:9;:30::i;:::-;2413:13;2427:1;2413:16;;;;;;;;:::i;:::-;;;;;;;;;;:49;2394:3;;;:::i;:::-;;;2353:120;;;-1:-1:-1;2490:13:75;2002:508;-1:-1:-1;;;2002:508:75:o;15003:130:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;15092:34:24::1;15116:9;15092:23;:34::i;3193:345::-:0;3304:18;:16;:18::i;:::-;3340:30;;;3332:56;;;;-1:-1:-1;;;3332:56:24;;;;;;;:::i;:::-;3403:6;3398:134;3411:19;;;3398:134;;;3447:43;3469:8;;3478:1;3469:11;;;;;;;:::i;:::-;;;;;;;3482:4;;3487:1;3482:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3447:21;:43::i;:::-;3516:3;;3398:134;;2717:158;2805:18;:16;:18::i;:::-;2833:35;2861:6;;2833:27;:35::i;5125:519::-;2261:21:8;:19;:21::i;:::-;942:10:0::1;931:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;931:21:0::1;;:53;;;-1:-1:-1::0;956:28:0::1;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1::0;;;923:102:0::1;;;;;;;:::i;:::-;5297:6:24::2;5292:288;5305:19:::0;;::::2;5292:288;;;5341:15;5359:8;;5368:1;5359:11;;;;;;;:::i;:::-;;;;;;;5341:29;;5402:1;5392:7;:11;:37;;;;;5418:11;;5407:7;:22;;5392:37;5384:63;;;;-1:-1:-1::0;;;5384:63:24::2;;;;;;;:::i;:::-;5505:1;5469:24;5485:7:::0;5469:15:::2;:24::i;:::-;-1:-1:-1::0;;;;;5469:38:24::2;;5461:77;;;::::0;-1:-1:-1;;;5461:77:24;;26531:2:81;5461:77:24::2;::::0;::::2;26513:21:81::0;26570:2;26550:18;;;26543:30;-1:-1:-1;;;26589:18:81;;;26582:56;26655:18;;5461:77:24::2;26329:350:81::0;5461:77:24::2;-1:-1:-1::0;5564:3:24::2;;5292:288;;;;5589:48;5611:1;5615:2;;5619:8;;5629:7;;5589:13;:48::i;:::-;2303:20:8::0;1716:1;2809:22;;2629:209;2303:20;5125:519:24;;;;;;:::o;1440:205:0:-;1094:13:7;:11;:13::i;:::-;1520:23:0::1;:7;1537:5:::0;1520:16:::1;:23::i;:::-;1515:124;;1564:32;::::0;1585:10:::1;::::0;-1:-1:-1;;;;;1564:32:0;::::1;::::0;::::1;::::0;;;::::1;1610:18;:7;1622:5:::0;1610:11:::1;:18::i;1831:101:7:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2459:177:24:-;2559:18;:16;:18::i;:::-;2587:42;2613:4;;2619:9;2587:25;:42::i;3998:316:32:-;4055:27;4121:20;:11;:18;:20::i;:::-;-1:-1:-1;;;;;4107:35:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4107:35:32;;4094:48;;4157:6;4152:129;4169:20;:11;:18;:20::i;:::-;4165:1;:24;4152:129;;;4222:17;:11;4237:1;4222:14;:17::i;:::-;4206:10;4217:1;4206:13;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4206:33:32;;;:13;;;;;;;;;;;:33;4265:3;;4152:129;;5722:264:24;5868:25;2261:21:8;:19;:21::i;:::-;5905:18:24::1;:16;:18::i;:::-;5940:39;5949:10;5961:2;;5965:7;;5974:4;;5940:8;:39::i;:::-;5933:46;;2303:20:8::0;1716:1;2809:22;;2629:209;2303:20;5722:264:24;;;;;;;;:::o;1201:85:7:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:7;;1201:85::o;2611:93:75:-;2658:13;2690:7;2683:14;;;;;:::i;3798:126:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;3891:26:24::1;3910:6;;3891:18;:26::i;2772:151:75:-:0;2866:50;2885:10;2897:8;2907;2866:18;:50::i;4192:313:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;4316:30:24;;::::1;4308:56;;;;-1:-1:-1::0;;;4308:56:24::1;;;;;;;:::i;:::-;4379:6;4374:125;4387:19:::0;;::::1;4374:125;;;4423:34;4436:8;;4445:1;4436:11;;;;;;;:::i;:::-;;;;;;;4449:4;;4454:1;4449:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4423:12;:34::i;:::-;4483:3;;4374:125;;4915:163:32::0;4994:18;:16;:18::i;:::-;5022:49;5051:10;5063:7;5022:28;:49::i;11963:226:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;12125:57:24::1;12148:9;12159;;12170:11;;12125:22;:57::i;12722:162::-:0;12805:24;12848:29;12869:7;12848:20;:29::i;12256:169::-;12335:24;12361:16;12396:22;12410:7;12396:13;:22::i;:::-;12389:29;;;;12256:169;;;:::o;1817:128::-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;1907:31:24::1;1928:9;1907:20;:31::i;6069:440::-:0;2261:21:8;:19;:21::i;:::-;6227:18:24::1;:16;:18::i;:::-;6260:6;6255:190;6268:19:::0;;::::1;6255:190;;;6352:10;6312:28;6328:8:::0;;6337:1;6328:11;;::::1;;;;;:::i;:::-;;;;;;;6312:15;:28::i;:::-;-1:-1:-1::0;;;;;6312:51:24::1;;6304:99;;;::::0;-1:-1:-1;;;6304:99:24;;26886:2:81;6304:99:24::1;::::0;::::1;26868:21:81::0;26925:2;26905:18;;;26898:30;26964:34;26944:18;;;26937:62;-1:-1:-1;;;27015:18:81;;;27008:33;27058:19;;6304:99:24::1;26684:399:81::0;6304:99:24::1;6429:3;;6255:190;;;;6454:48;6468:10;6480:2;;6484:8;;6494:7;;6454:13;:48::i;2950:168::-:0;3047:18;:16;:18::i;:::-;3075:36;3097:7;3106:4;;3075:21;:36::i;2990:166:75:-;-1:-1:-1;;;;;3112:27:75;;;3089:4;3112:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;2990:166::o;4578:160:24:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;;;;;;:::i;:::-;4688:43:24::1;4708:9;4719:11;4688:19;:43::i;3223:390:75:-:0;-1:-1:-1;;;;;3423:18:75;;3431:10;3423:18;;:56;;;3445:34;3462:4;3468:10;3445:16;:34::i;:::-;3402:149;;;;-1:-1:-1;;;3402:149:75;;;;;;;:::i;:::-;3561:45;3579:4;3585:2;3589;3593:6;3601:4;3561:17;:45::i;2081:198:7:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:7;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:7;;27290:2:81;2161:73:7::1;::::0;::::1;27272:21:81::0;27329:2;27309:18;;;27302:30;27368:34;27348:18;;;27341:62;-1:-1:-1;;;27419:18:81;;;27412:36;27465:19;;2161:73:7::1;27088:402:81::0;2161:73:7::1;2244:28;2263:8;2244:18;:28::i;4811:236:24:-:0;4966:16;2261:21:8;:19;:21::i;:::-;942:10:0::1;931:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;931:21:0::1;;:53;;;-1:-1:-1::0;956:28:0::1;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1::0;;;923:102:0::1;;;;;;;:::i;:::-;5001:39:24::2;5018:1;5022:2;;5026:7;;5035:4;;5001:8;:39::i;1012:229:33:-:0;1119:4;-1:-1:-1;;;;;;1142:52:33;;-1:-1:-1;;;1142:52:33;;:92;;;1198:36;1222:11;1198:23;:36::i;1171:305:75:-;1273:4;-1:-1:-1;;;;;;1308:41:75;;-1:-1:-1;;;1308:41:75;;:109;;-1:-1:-1;;;;;;;1365:52:75;;-1:-1:-1;;;1365:52:75;1308:161;;;;1433:36;1457:11;565:230:0;667:4;-1:-1:-1;;;;;;690:46:0;;-1:-1:-1;;;690:46:0;;:98;;-1:-1:-1;;;;;;;;;;937:40:19;;;752:36:0;829:155:19;8852:165:23;-1:-1:-1;;;;;8985:23:23;;8932:4;4343:19;;;:12;;;:19;;;;;;:24;;8955:55;8948:62;8852:165;-1:-1:-1;;;8852:165:23:o;5571:501:32:-;-1:-1:-1;;;;;5645:23:32;;;;;;:53;;-1:-1:-1;;;;;;5672:26:32;;5693:4;5672:26;;5645:53;5637:91;;;;-1:-1:-1;;;5637:91:32;;27697:2:81;5637:91:32;;;27679:21:81;27736:2;27716:18;;;27709:30;-1:-1:-1;;;27755:18:81;;;27748:55;27820:18;;5637:91:32;27495:349:81;5637:91:32;5741:31;:11;5762:9;5741:20;:31::i;:::-;5737:151;;;5792:44;;5825:10;;-1:-1:-1;;;;;5792:44:32;;;;;;;;5849:29;:11;5868:9;5849:18;:29::i;:::-;;5737:151;5901:42;:22;5933:9;5901:31;:42::i;:::-;5896:170;;5963:43;;5995:10;;-1:-1:-1;;;;;5963:43:32;;;;;;;;6019:37;:22;6046:9;6019:26;:37::i;7558:1016::-;7617:13;7660:1;7650:7;:11;:37;;;;;7676:11;;7665:7;:22;;7650:37;7642:63;;;;-1:-1:-1;;;7642:63:32;;;;;;;:::i;:::-;7716:17;7736:24;7752:7;7736:15;:24::i;:::-;7716:44;-1:-1:-1;7779:42:32;:22;7716:44;7779:31;:42::i;:::-;7778:43;7770:77;;;;-1:-1:-1;;;7770:77:32;;;;;;;:::i;:::-;7868:19;;;;:10;:19;;;;;7862:33;;;;;:::i;:::-;:38;;-1:-1:-1;7858:280:32;;-1:-1:-1;;;;;7926:30:32;;;;;;:19;:30;;;;;7920:44;;;;;:::i;:::-;:49;;-1:-1:-1;7916:172:32;;-1:-1:-1;;;;;8020:30:32;;;;;;:19;:30;;;;;;;;8052:19;;;:10;:19;;;;;;8003:69;;;;8020:30;8003:69;;:::i;:::-;;;;;;;;;;;;;7989:84;;;7558:1016;;;:::o;7916:172::-;8108:19;;;;:10;:19;;;;;8101:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7558:1016;;;:::o;7858:280::-;8152:87;8184:9;-1:-1:-1;;;8152:31:32;:87::i;:::-;8148:194;;;8262:69;;-1:-1:-1;;;8262:69:32;;-1:-1:-1;;;;;8262:45:32;;;;;:69;;8316:4;;8323:7;;8262:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8262:69:32;;;;;;;;;;;;:::i;8148:194::-;-1:-1:-1;;;;;8357:37:32;;;;;;:26;:37;;;;;;;;8352:216;;-1:-1:-1;;;;;8441:28:32;;;;;;:17;:28;;;;;8471:18;:7;:16;:18::i;:::-;8424:66;;;;;;;;;:::i;8352:216::-;-1:-1:-1;;;;;8529:28:32;;;;;;:17;:28;;;;;8522:35;;;;;:::i;8352:216::-;7632:942;7558:1016;;;:::o;10341:135::-;10405:20;10447:22;10461:7;10447:13;:22::i;7275:226::-;7372:1;7362:7;:11;:37;;;;;7388:11;;7377:7;:22;;7362:37;:79;;;;-1:-1:-1;7439:1:32;7403:24;7419:7;7403:15;:24::i;:::-;-1:-1:-1;;;;;7403:38:32;;7362:79;7354:105;;;;-1:-1:-1;;;7354:105:32;;;;;;;:::i;:::-;7469:19;;;;:10;:19;;;;;:25;7491:3;;7469:19;:25;:::i;10968:348::-;11096:39;11112:9;;11123:11;;11096:15;:39::i;:::-;11152:22;;;;:13;:22;;;;;11145:29;;;:::i;:::-;11184:61;11198:9;;11209:11;;11222:13;:22;11236:7;11222:22;;;;;;;;;;;11184:13;:61::i;:::-;11277:7;11260:49;11286:9;;11297:11;;11260:49;;;;;;;;;:::i;:::-;;;;;;;;10968:348;;;;;:::o;4558:131:33:-;4631:7;4657:25;;;:16;:25;;;;;;-1:-1:-1;;;;;4657:25:33;;4558:131::o;10482:431:32:-;10562:16;10580:14;10606:34;10642:20;10666:22;10680:7;10666:13;:22::i;:::-;10605:83;;;;10726:1;10706:9;:16;:21;;10698:62;;;;-1:-1:-1;;;10698:62:32;;33469:2:81;10698:62:32;;;33451:21:81;33508:2;33488:18;;;33481:30;-1:-1:-1;;;33527:18:81;;;33520:58;33595:18;;10698:62:32;33267:352:81;10698:62:32;10783:9;:16;10803:1;10783:21;10779:77;;10836:4;10843:1;10820:25;;;;;;;;10779:77;10873:9;10883:1;10873:12;;;;;;;;:::i;:::-;;;;;;;10900:5;10894;10887:3;10891:1;10887:6;;;;;;;;:::i;:::-;;;;;;;:12;;;;:::i;:::-;:18;;;;:::i;:::-;10865:41;;;;;;10482:431;;;;;:::o;1359:130:7:-;719:10:17;1422:7:7;:5;:7::i;:::-;-1:-1:-1;;;;;1422:23:7;;1414:68;;;;-1:-1:-1;;;1414:68:7;;34353:2:81;1414:68:7;;;34335:21:81;;;34372:18;;;34365:30;34431:34;34411:18;;;34404:62;34483:18;;1414:68:7;34151:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;5848:1113:75:-;6068:7;:14;6054:3;:10;:28;6046:81;;;;-1:-1:-1;;;6046:81:75;;;;;;;:::i;:::-;-1:-1:-1;;;;;6145:16:75;;6137:66;;;;-1:-1:-1;;;6137:66:75;;;;;;;:::i;:::-;6233:10;6254:60;6233:10;6285:4;6291:2;6295:3;6300:7;6309:4;6254:20;:60::i;:::-;6330:9;6325:411;6349:3;:10;6345:1;:14;6325:411;;;6380:10;6393:3;6397:1;6393:6;;;;;;;;:::i;:::-;;;;;;;6380:19;;6413:14;6430:7;6438:1;6430:10;;;;;;;;:::i;:::-;;;;;;;;;;;;6455:19;6477:13;;;:9;:13;;;;;;-1:-1:-1;;;;;6477:19:75;;;;;;;;;;;;6430:10;;-1:-1:-1;6518:21:75;;;;6510:76;;;;-1:-1:-1;;;6510:76:75;;;;;;;:::i;:::-;6628:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;6628:19:75;;;;;;;;;;6650:20;;;6628:42;;6698:17;;;;;;;:27;;6650:20;;6628:13;6698:27;;6650:20;;6698:27;:::i;:::-;;;;;;;;6366:370;;;6361:3;;;;:::i;:::-;;;6325:411;;;;6781:2;-1:-1:-1;;;;;6751:47:75;6775:4;-1:-1:-1;;;;;6751:47:75;6765:8;-1:-1:-1;;;;;6751:47:75;-1:-1:-1;;;;;;;;;;;6785:3:75;6790:7;6751:47;;;;;;;:::i;:::-;;;;;;;;6879:75;6915:8;6925:4;6931:2;6935:3;6940:7;6949:4;6879:35;:75::i;6886:108:32:-;6952:29;;;:17;:29;;;:35;6984:3;;6952:29;:35;:::i;3771:156::-;3852:42;:22;3884:9;3852:31;:42::i;:::-;3851:43;3843:77;;;;-1:-1:-1;;;3843:77:32;;;;;;;:::i;4370:463::-;-1:-1:-1;;;;;4500:26:32;;4521:4;4500:26;;;;:52;;;4530:22;:9;-1:-1:-1;;;;;4530:20:32;;:22::i;:::-;4492:72;;;;-1:-1:-1;;;4492:72:32;;36540:2:81;4492:72:32;;;36522:21:81;36579:1;36559:18;;;36552:29;-1:-1:-1;;;36597:18:81;;;36590:37;36644:18;;4492:72:32;36338:330:81;4492:72:32;4579:42;;4610:10;;-1:-1:-1;;;;;4579:42:32;;;;;;;;-1:-1:-1;;;;;4631:28:32;;;;;;:17;:28;;;;;:38;4662:7;;4631:28;:38;:::i;:::-;-1:-1:-1;;;;;;4679:37:32;;;;;;:26;:37;;;;;:56;;-1:-1:-1;;4679:56:32;;;;;;;4745:26;:11;4679:37;4745:15;:26::i;:::-;;4781:45;4810:9;4821:4;4781:28;:45::i;9098:115:23:-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;11390:519:32:-;11530:39;11546:9;;11557:11;;11530:15;:39::i;:::-;-1:-1:-1;;;;;11586:28:32;;;;;;:17;:28;;;;;11579:35;;;:::i;:::-;11624:67;11638:9;;11649:11;;11662:17;:28;11680:9;-1:-1:-1;;;;;11662:28:32;-1:-1:-1;;;;;11662:28:32;;;;;;;;;;;;11624:13;:67::i;:::-;-1:-1:-1;;;;;11705:23:32;;11701:202;;11749:47;11773:9;;11784:11;;11749:47;;;;;;;;;:::i;:::-;;;;;;;;11701:202;;;11858:9;-1:-1:-1;;;;;11832:60:32;;11869:9;;11880:11;;11832:60;;;;;;;;;:::i;2336:287:8:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:8;;36875:2:81;2460:63:8;;;36857:21:81;36914:2;36894:18;;;36887:30;36953:33;36933:18;;;36926:61;37004:18;;2460:63:8;36673:355:81;2460:63:8;1759:1;2598:7;:18;2336:287::o;14403:171:24:-;14499:32;14511:7;14520:2;14524:6;14499:11;:32::i;:::-;14541:16;;;;:12;:16;;;;;:26;;14561:6;;14541:16;:26;;14561:6;;14541:26;:::i;:::-;;;;-1:-1:-1;;;;;14403:171:24:o;14634:296::-;14755:39;14772:7;14781:3;14786:7;14755:16;:39::i;:::-;14809:6;14804:120;14821:3;:10;14817:1;:14;14804:120;;;14872:7;14880:1;14872:10;;;;;;;;:::i;:::-;;;;;;;14848:12;:20;14861:3;14865:1;14861:6;;;;;;;;:::i;:::-;;;;;;;14848:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;14908:3:24;;14804:120;;2846:735:33;2972:19;2964:45;;;;-1:-1:-1;;;2964:45:33;;;;;;;:::i;:::-;3019:17;3039:16;:29;3056:8;;3065:1;3056:11;;;;;;;:::i;:::-;;;;;;;;;;3039:29;;-1:-1:-1;3039:29:33;;;;;;;;-1:-1:-1;3039:29:33;;;;-1:-1:-1;;;;;3039:29:33;;-1:-1:-1;3078:174:33;3091:19;;;3078:174;;;3168:9;-1:-1:-1;;;;;3135:42:33;:16;:29;3152:8;;3161:1;3152:11;;;;;;;:::i;:::-;;;;;;;;;;3135:29;;-1:-1:-1;3135:29:33;;;;;;;;-1:-1:-1;3135:29:33;;-1:-1:-1;;;;;3135:29:33;:42;3127:83;;;;-1:-1:-1;;;3127:83:33;;;;;;;:::i;:::-;3236:3;;3078:174;;;-1:-1:-1;;;;;;3320:23:33;;;3316:259;;3362:94;3394:9;-1:-1:-1;;;3362:31:33;:94::i;:::-;3358:207;;;3475:76;;-1:-1:-1;;;3475:76:33;;-1:-1:-1;;;;;3475:50:33;;;;;:76;;3526:5;;3533:8;;;;3543:7;;;;3475:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2954:627;2846:735;;;;;:::o;3566:132:32:-;3626:32;:11;3647:10;3626:20;:32::i;:::-;3618:73;;;;-1:-1:-1;;;3618:73:32;;38346:2:81;3618:73:32;;;38328:21:81;38385:2;38365:18;;;38358:30;-1:-1:-1;;;38404:18:81;;;38397:58;38472:18;;3618:73:32;38144:352:81;6142:193:32;6251:10;6233:29;;;;:17;:29;;;;;:35;6265:3;;6233:29;:35;:::i;:::-;-1:-1:-1;6305:10:32;6278:38;;;;:26;:38;;;;;:50;;-1:-1:-1;;6278:50:32;;;;;;;;;;-1:-1:-1;;6142:193:32:o;13050:158::-;13121:20;:32;;-1:-1:-1;;;;;;13121:32:32;-1:-1:-1;;;;;13121:32:32;;;;;13168:33;;;;;;13121:32;;13168:33;:::i;:::-;;;;;;;;13050:158;:::o;6610:194::-;6734:10;6706:24;6722:7;6706:15;:24::i;6407:127::-;6507:10;6487:31;;;;:19;:31;;;;;:40;6521:6;;6487:31;:40;:::i;8750:1620:24:-;-1:-1:-1;;;;;8895:23:24;;;8891:98;;8934:44;8956:2;;8934:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8934:44:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8960:8:24;;-1:-1:-1;8960:8:24;;;;8934:44;;;8960:8;;8934:44;8960:8;8934:44;;;;;;;;;-1:-1:-1;;8934:44:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8970:7:24;;-1:-1:-1;8970:7:24;;;;8934:44;;;8970:7;;8934:44;8970:7;8934:44;;;;;;;;;-1:-1:-1;8934:21:24;;-1:-1:-1;;;8934:44:24:i;:::-;9016:1;9003:14;;:38;;;;-1:-1:-1;9040:1:24;9021:20;;9003:38;:61;;;;-1:-1:-1;9063:1:24;9045:19;;9003:61;8999:1365;;;9108:51;9114:2;;9117:1;9114:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9121:8;;9130:1;9121:11;;;;;;;:::i;:::-;;;;;;;9134:7;;9142:1;9134:10;;;;;;;:::i;:::-;9146:12;;;9156:1;9146:12;;9134:10;9146:12;;;;;;9134:10;;;;;;;;9146:12;-1:-1:-1;9108:5:24;:51::i;:::-;8999:1365;;;9205:1;9192:14;;:51;;;;-1:-1:-1;9210:33:24;;;9192:51;9188:1176;;;9302:50;9313:2;;9316:1;9313:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9320:8;;9302:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9302:50:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9330:7:24;;-1:-1:-1;9330:7:24;;;;9302:50;;;9330:7;;9302:50;9330:7;9302:50;;;;;;;;-1:-1:-1;9302:50:24;-1:-1:-1;9339:12:24;;-1:-1:-1;;9339:12:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9339:12:24;;9302:10;:50::i;9188:1176::-;9392:1;9373:20;;:43;;;;-1:-1:-1;9415:1:24;9397:19;;9373:43;9369:995;;;9510:6;9505:148;9518:13;;;9505:148;;;9552:51;9558:2;;9561:1;9558:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9565:8;;9574:1;9565:11;;;;;;;:::i;:::-;;;;;;;9578:7;;9586:1;9578:10;;;;;;;:::i;9552:51::-;9633:3;;9505:148;;;;9369:995;;;9692:1;9673:20;;:51;;;;-1:-1:-1;9697:27:24;;;9673:51;9669:695;;;9829:6;9824:148;9837:13;;;9824:148;;;9871:51;9877:2;;9880:1;9877:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9884:8;;9893:1;9884:11;;;;;;;:::i;:::-;;;;;;;9897:7;;9905:1;9897:10;;;;;;;:::i;9871:51::-;9952:3;;9824:148;;9669:695;9992:28;;;:59;;;;-1:-1:-1;10024:27:24;;;9992:59;9988:376;;;10157:6;10152:148;10165:13;;;10152:148;;;10199:51;10205:2;;10208:1;10205:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10212:8;;10221:1;10212:11;;;;;;;:::i;10199:51::-;10280:3;;10152:148;;9988:376;10330:23;;-1:-1:-1;;;10330:23:24;;;;;;;:::i;9988:376::-;8750:1620;;;;;;;:::o;8297:150:23:-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:23;;8390:4;:50::i;2433:187:7:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;6559:2136:24:-;6688:25;6741:1;6729:13;;6725:477;;;6843:16;;;6857:1;6843:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6832:27:24;-1:-1:-1;6896:1:24;6881:16;;;;;:72;;-1:-1:-1;6920:1:24;6902:19;;;:50;;-1:-1:-1;6925:27:24;;;6902:50;6873:98;;;;-1:-1:-1;;;6873:98:24;;;;;;;:::i;:::-;6725:477;;;7087:7;-1:-1:-1;;;;;7073:29:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7073:29:24;-1:-1:-1;7062:40:24;-1:-1:-1;7124:16:24;;;:49;;-1:-1:-1;7144:29:24;;;7124:49;7116:75;;;;-1:-1:-1;;;7116:75:24;;;;;;;:::i;:::-;7244:6;7239:255;7256:8;:15;7252:1;:19;7239:255;;;7290:11;;7288:13;;;;;:::i;:::-;;;;-1:-1:-1;7329:11:24;;7315;;:8;;7324:1;;7315:11;;;;;;:::i;:::-;;;;;;;;;;;:25;;;;7428:11;;7411:29;;;;:16;:29;;;;;;:41;;-1:-1:-1;;;;;;7411:41:24;-1:-1:-1;;;;;7411:41:24;;;;;-1:-1:-1;7478:3:24;7239:255;;;-1:-1:-1;;;;;;7508:23:24;;;7504:98;;7547:44;7569:2;;7547:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7547:44:24;;;;;;;;;;;;;;;;;;7573:8;;-1:-1:-1;7547:44:24;;-1:-1:-1;7583:7:24;;;;;;7547:44;;;;7583:7;;7547:44;7583:7;7547:44;;;;;;;;;-1:-1:-1;7547:21:24;;-1:-1:-1;;;7547:44:24:i;:::-;7629:1;7616:14;;:38;;;;;7634:8;:15;7653:1;7634:20;7616:38;7612:861;;;7695:51;7701:2;;7704:1;7701:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7708:8;7717:1;7708:11;;;;;;;;:::i;:::-;;;;;;;7721:7;;7729:1;7721:10;;;;;;;:::i;7695:51::-;7612:861;;;7779:1;7767:13;;7763:710;;;7879:1;7861:19;;;7857:525;;7959:6;7954:160;7967:13;;;7954:160;;;8005:51;8011:2;;8014:1;8011:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8018:8;8027:1;8018:11;;;;;;;;:::i;:::-;;;;;;;8031:7;;8039:1;8031:10;;;;;;;:::i;8005:51::-;8090:3;;7954:160;;;;7763:710;;7857:525;8213:6;8208:160;8221:13;;;8208:160;;;8259:51;8265:2;;8268:1;8265:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8272:8;8281:1;8272:11;;;;;;;;:::i;:::-;;;;;;;8285:7;;8293:1;8285:10;;;;;;;:::i;8259:51::-;8344:3;;8208:160;;7763:710;8412:50;8423:2;;8426:1;8423:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8430:8;8440:7;;8412:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8412:50:24;-1:-1:-1;8449:12:24;;-1:-1:-1;;8449:12:24;8412:50;8488:6;8483:206;8500:8;:15;8496:1;:19;8483:206;;;8536:15;;;:44;;;;;8579:1;8561:4;;8566:1;8561:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8555:21;;:25;8536:44;8532:116;;;8626:4;;8631:1;8626:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8600:10;:23;8611:8;8620:1;8611:11;;;;;;;;:::i;:::-;;;;;;;8600:23;;;;;;;;;;;:33;;;;;;;:::i;:::-;;8532:116;8673:3;;8483:206;;;;6559:2136;;;;;;;;;:::o;7078:118:32:-;7149:31;;;:19;:31;;;:40;7183:6;;7149:31;:40;:::i;11606:323:75:-;11756:8;-1:-1:-1;;;;;11747:17:75;:5;-1:-1:-1;;;;;11747:17:75;;11739:71;;;;-1:-1:-1;;;11739:71:75;;38703:2:81;11739:71:75;;;38685:21:81;38742:2;38722:18;;;38715:30;38781:34;38761:18;;;38754:62;-1:-1:-1;;;38832:18:81;;;38825:39;38881:19;;11739:71:75;38501:405:81;11739:71:75;-1:-1:-1;;;;;11820:25:75;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11820:46:75;;;;;;;;;;11881:41;;1178::81;;;11881::75;;1151:18:81;11881:41:75;;;;;;;11606:323;;;:::o;1322:354:33:-;1425:101;1457:9;-1:-1:-1;;;;;;1425:31:33;:101::i;:::-;1421:249;;;-1:-1:-1;;;;;1542:37:33;;;;;;:26;:37;;;;;;;;;:47;;-1:-1:-1;;1542:47:33;;;;;;;;;;1608:51;;1178:41:81;;;1608:51:33;;1151:18:81;1608:51:33;;;;;;;1322:354;;:::o;10104:161:32:-;10174:34;10236:22;10250:7;10236:13;:22::i;:::-;-1:-1:-1;10220:38:32;10104:161;-1:-1:-1;;10104:161:32:o;8639:1392::-;8702:34;8738:20;8808:32;8843:13;:22;8857:7;8843:22;;;;;;;;;;;8808:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8808:57:32;;;;-1:-1:-1;;;8808:57:32;;;;;;;;;;;;;;;;;;;;;;;;;8879:9;:16;8899:1;8879:21;8875:642;;8964:17;8984:24;9000:7;8984:15;:24::i;:::-;8964:44;-1:-1:-1;;;;;;9026:23:32;;;9022:485;;9073:88;9105:9;-1:-1:-1;;;9073:31:32;:88::i;:::-;9069:366;;;9204:74;;-1:-1:-1;;;9204:74:32;;-1:-1:-1;;;;;9204:50:32;;;;;:74;;9263:4;;9270:7;;9204:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9204:74:32;;;;;;;;;;;;:::i;:::-;9371:16;;9185:93;;-1:-1:-1;9185:93:32;-1:-1:-1;9371:20:32;9367:49;;9393:23;;8639:1392;;;:::o;9367:49::-;-1:-1:-1;;;;;9464:28:32;;;;;;:17;:28;;;;;;;;9452:40;;;;;;;;;;;;;;;;;;;9464:28;;9452:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9452:40:32;;;;-1:-1:-1;;;9452:40:32;;;;;;;;;;;;;;;;;;;;;;;;;9022:485;8902:615;8875:642;9530:9;:16;9550:1;9530:21;9526:132;;9618:29;;;;:17;:29;;;;;9606:41;;9618:29;9606:41;;;;;;;;;;;;;;;;9618:29;;9606:41;;9618:29;9606:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9606:41:32;;;;-1:-1:-1;;;9606:41:32;;;;;;;;;;;;;;;;;;;;;;;;;9526:132;9680:16;;:20;9676:349;;9750:9;:16;-1:-1:-1;;;;;9728:39:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9728:39:32;;9716:51;;9801:9;:16;-1:-1:-1;;;;;9787:31:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9787:31:32;;9781:37;;9837:6;9832:183;9849:9;:16;9845:1;:20;9832:183;;;9901:9;9911:1;9901:12;;;;;;;;:::i;:::-;;;;;;;:21;;;9886:9;9896:1;9886:12;;;;;;;;:::i;:::-;;;;;;:36;-1:-1:-1;;;;;9886:36:32;;;-1:-1:-1;;;;;9886:36:32;;;;;9949:9;9959:1;9949:12;;;;;;;;:::i;:::-;;;;;;;:16;;;9940:25;;:3;9944:1;9940:6;;;;;;;;:::i;:::-;;;;;;;;;;:25;9995:3;;9832:183;;;;9676:349;8760:1271;8639:1392;;;:::o;5351:163::-;5424:44;;5457:10;;-1:-1:-1;;;;;5424:44:32;;;;;;;;5478:29;:11;5497:9;5478:18;:29::i;1748:527:33:-;1844:31;:11;1865:9;1844:20;:31::i;:::-;1836:61;;;;-1:-1:-1;;;1836:61:33;;41123:2:81;1836:61:33;;;41105:21:81;41162:2;41142:18;;;41135:30;-1:-1:-1;;;41181:18:81;;;41174:47;41238:18;;1836:61:33;40921:341:81;1836:61:33;-1:-1:-1;;;;;1915:25:33;;;;:123;;;1944:94;1976:11;-1:-1:-1;;;1944:31:33;:94::i;:::-;1907:151;;;;-1:-1:-1;;;1907:151:33;;41469:2:81;1907:151:33;;;41451:21:81;41508:2;41488:18;;;41481:30;-1:-1:-1;;;41527:18:81;;;41520:45;41582:18;;1907:151:33;41267:339:81;1907:151:33;-1:-1:-1;;;;;2072:32:33;;;;;;;:21;:32;;;;;;;;:47;;;;2068:201;;-1:-1:-1;;;;;2135:32:33;;;;;;;:21;:32;;;;;;:46;;-1:-1:-1;;;;;;2135:46:33;;;;;;;;;2200:58;2247:10;;2135:46;:32;2200:58;;;1748:527;;:::o;4557:945:75:-;-1:-1:-1;;;;;4738:16:75;;4730:66;;;;-1:-1:-1;;;4730:66:75;;;;;;;:::i;:::-;4826:10;4807:16;4869:21;4887:2;4869:17;:21::i;:::-;4846:44;;4900:24;4927:25;4945:6;4927:17;:25::i;:::-;4900:52;;4963:60;4984:8;4994:4;5000:2;5004:3;5009:7;5018:4;4963:20;:60::i;:::-;5034:19;5056:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5056:19:75;;;;;;;;;;5093:21;;;;5085:76;;;;-1:-1:-1;;;5085:76:75;;;;;;;:::i;:::-;5195:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5195:19:75;;;;;;;;;;5217:20;;;5195:42;;5257:17;;;;;;;:27;;5217:20;;5195:13;5257:27;;5217:20;;5257:27;:::i;:::-;;;;-1:-1:-1;;5300:46:75;;;41785:25:81;;;41841:2;41826:18;;41819:34;;;-1:-1:-1;;;;;5300:46:75;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5300:46:75;41758:18:81;5300:46:75;;;;;;;5427:68;5458:8;5468:4;5474:2;5478;5482:6;5490:4;5427:30;:68::i;:::-;4720:782;;;;4557:945;;;;;:::o;2984:483:32:-;3086:4;-1:-1:-1;;;;;;3109:45:32;;-1:-1:-1;;;3109:45:32;;:80;;-1:-1:-1;;;;;;;3158:31:32;;-1:-1:-1;;;3158:31:32;3109:80;:120;;;;3193:36;3217:11;3193:23;:36::i;:::-;3109:186;;;-1:-1:-1;;;;;;;3245:50:32;;-1:-1:-1;;;3245:50:32;3109:186;:236;;;-1:-1:-1;;;;;;;3299:46:32;;-1:-1:-1;;;3299:46:32;3109:236;:301;;;-1:-1:-1;;;;;;;3361:49:32;;-1:-1:-1;;;3361:49:32;3109:301;:351;;;-1:-1:-1;;;;;;;3414:46:32;;-1:-1:-1;;;3414:46:32;3102:358;2984:483;-1:-1:-1;;2984:483:32:o;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;415:696:18:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;-1:-1:-1;;;;;595:18:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:18;-1:-1:-1;572:41:18;-1:-1:-1;733:28:18;;;749:2;733:28;788:280;-1:-1:-1;;819:5:18;-1:-1:-1;;;953:2:18;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:18;788:280;1032:21;-1:-1:-1;1088:6:18;415:696;-1:-1:-1;;;415:696:18:o;11997:430:32:-;12123:38;;;12115:64;;;;-1:-1:-1;;;12115:64:32;;;;;;;:::i;:::-;12189:24;12228:6;12223:128;12236:22;;;12223:128;;;12295:11;;12307:1;12295:14;;;;;;;:::i;:::-;;;;;;;12275:34;;;;;:::i;:::-;;-1:-1:-1;12335:3:32;;12223:128;;;;12387:5;12368:16;:24;12360:60;;;;-1:-1:-1;;;12360:60:32;;42066:2:81;12360:60:32;;;42048:21:81;42105:2;42085:18;;;42078:30;-1:-1:-1;;;42124:18:81;;;42117:53;42187:18;;12360:60:32;41864:347:81;12489:468:32;12640:6;12635:316;12648:22;;;12635:316;;;12687:9;12719:176;;;;;;;;12790:9;;12800:1;12790:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12719:176:32;;;;;12840:11;;12852:1;12840:14;;;;;;;:::i;:::-;12719:176;12840:14;;;;;;;;;12719:176;;;;;-1:-1:-1;12687:222:32;;;;;;;;-1:-1:-1;12687:222:32;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12687:222:32;-1:-1:-1;;;;;;12687:222:32;;;-1:-1:-1;;;;;12687:222:32;;;;;;;;;;12935:3;12635:316;;2778:1388:23;2844:4;2981:19;;;:12;;;:19;;;;;;3015:15;;3011:1149;;3384:21;3408:14;3421:1;3408:10;:14;:::i;:::-;3456:18;;3384:38;;-1:-1:-1;3436:17:23;;3456:22;;3477:1;;3456:22;:::i;:::-;3436:42;;3510:13;3497:9;:26;3493:398;;3543:17;3563:3;:11;;3575:9;3563:22;;;;;;;;:::i;:::-;;;;;;;;;3543:42;;3714:9;3685:3;:11;;3697:13;3685:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3797:23;;;:12;;;:23;;;;;:36;;;3493:398;3969:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4061:3;:12;;:19;4074:5;4061:19;;;;;;;;;;;4054:26;;;4102:4;4095:11;;;;;;;3011:1149;4144:5;4137:12;;;;;944:210:24;1107:40;1124:4;1130:2;1134:3;1139:7;1107:16;:40::i;14962:792:75:-;15194:15;:2;-1:-1:-1;;;;;15194:13:75;;:15::i;:::-;15190:558;;;15229:79;;-1:-1:-1;;;15229:79:75;;-1:-1:-1;;;;;15229:43:75;;;;;:79;;15273:8;;15283:4;;15289:3;;15294:7;;15303:4;;15229:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15229:79:75;;;;;;;;-1:-1:-1;;15229:79:75;;;;;;;;;;;;:::i;:::-;;;15225:513;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15614:6;15607:14;;-1:-1:-1;;;15607:14:75;;;;;;;;:::i;15225:513::-;;;15661:62;;-1:-1:-1;;;15661:62:75;;44756:2:81;15661:62:75;;;44738:21:81;44795:2;44775:18;;;44768:30;44834:34;44814:18;;;44807:62;-1:-1:-1;;;44885:18:81;;;44878:50;44945:19;;15661:62:75;44554:416:81;15225:513:75;-1:-1:-1;;;;;;15387:60:75;;-1:-1:-1;;;15387:60:75;15383:157;;15471:50;;-1:-1:-1;;;15471:50:75;;;;;;;:::i;1186:320:5:-;-1:-1:-1;;;;;1476:19:5;;:23;;;1186:320::o;4904:118:23:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;9506:784:75:-;-1:-1:-1;;;;;9628:18:75;;9620:66;;;;-1:-1:-1;;;9620:66:75;;;;;;;:::i;:::-;9716:10;9697:16;9759:21;9777:2;9759:17;:21::i;:::-;9736:44;;9790:24;9817:25;9835:6;9817:17;:25::i;:::-;9790:52;;9853:66;9874:8;9884:4;9898:1;9902:3;9907:7;9853:66;;;;;;;;;;;;:20;:66::i;:::-;9930:19;9952:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;9952:19:75;;;;;;;;;;9989:21;;;;9981:70;;;;-1:-1:-1;;;9981:70:75;;;;;;;:::i;:::-;10085:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;10085:19:75;;;;;;;;;;;;10107:20;;;10085:42;;10153:54;;41785:25:81;;;41826:18;;;41819:34;;;10085:19:75;;10153:54;;;;-1:-1:-1;;;;;;;;;;;10153:54:75;41758:18:81;10153:54:75;;;;;;;10218:65;;;;;;;;;10262:1;10218:65;;;5125:519:24;10529:941:75;-1:-1:-1;;;;;10676:18:75;;10668:66;;;;-1:-1:-1;;;10668:66:75;;;;;;;:::i;:::-;10766:7;:14;10752:3;:10;:28;10744:81;;;;-1:-1:-1;;;10744:81:75;;;;;;;:::i;:::-;10836:16;10855:10;10836:29;;10876:66;10897:8;10907:4;10921:1;10925:3;10930:7;10876:66;;;;;;;;;;;;:20;:66::i;:::-;10958:9;10953:364;10977:3;:10;10973:1;:14;10953:364;;;11008:10;11021:3;11025:1;11021:6;;;;;;;;:::i;:::-;;;;;;;11008:19;;11041:14;11058:7;11066:1;11058:10;;;;;;;;:::i;:::-;;;;;;;;;;;;11083:19;11105:13;;;:9;:13;;;;;;-1:-1:-1;;;;;11105:19:75;;;;;;;;;;;;11058:10;;-1:-1:-1;11146:21:75;;;;11138:70;;;;-1:-1:-1;;;11138:70:75;;;;;;;:::i;:::-;11250:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;11250:19:75;;;;;;;;;;11272:20;;11250:42;;10989:3;;;;:::i;:::-;;;;10953:364;;;;11370:1;-1:-1:-1;;;;;11332:55:75;11356:4;-1:-1:-1;;;;;11332:55:75;11346:8;-1:-1:-1;;;;;11332:55:75;-1:-1:-1;;;;;;;;;;;11374:3:75;11379:7;11332:55;;;;;;;:::i;:::-;;;;;;;;11398:65;;;;;;;;;11442:1;11398:65;;;5125:519:24;2479:320:33;2629:10;2652:1;2607:33;;;:21;:33;;;;;;-1:-1:-1;;;;;2607:33:33;:47;2603:190;;2723:10;2701:33;;;;:21;:33;;;;;;;;2670:112;;-1:-1:-1;;;2670:112:33;;-1:-1:-1;;;;;2701:33:33;;;;2670:77;;:112;;2723:10;2760:2;;2764:8;;2774:7;;2670:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13781:196:24;13896:38;13908:7;13917:2;13921:6;13929:4;13896:11;:38::i;:::-;13944:16;;;;:12;:16;;;;;:26;;13964:6;;13944:16;:26;;13964:6;;13944:26;:::i;:::-;;;;-1:-1:-1;;;;;;13781:196:24:o;14037:311::-;14172:40;14189:2;14193:3;14198:7;14207:4;14172:16;:40::i;:::-;14227:6;14222:120;14239:3;:10;14235:1;:14;14222:120;;;14290:7;14298:1;14290:10;;;;;;;;:::i;:::-;;;;;;;14266:12;:20;14279:3;14283:1;14279:6;;;;;;;;:::i;:::-;;;;;;;14266:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;14326:3:24;;14222:120;;2206:404:23;2269:4;4343:19;;;:12;;;:19;;;;;;2285:319;;-1:-1:-1;2327:23:23;;;;;;;;:11;:23;;;;;;;;;;;;;2507:18;;2485:19;;;:12;;;:19;;;;;;:40;;;;2539:11;;2285:319;-1:-1:-1;2588:5:23;2581:12;;15760:193:75;15879:16;;;15893:1;15879:16;;;;;;;;;15826;;15854:22;;15879:16;;;;;;;;;;;;-1:-1:-1;15879:16:75;15854:41;;15916:7;15905:5;15911:1;15905:8;;;;;;;;:::i;:::-;;;;;;;;;;:18;15941:5;15760:193;-1:-1:-1;;15760:193:75:o;14231:725::-;14438:15;:2;-1:-1:-1;;;;;14438:13:75;;:15::i;:::-;14434:516;;;14473:72;;-1:-1:-1;;;14473:72:75;;-1:-1:-1;;;;;14473:38:75;;;;;:72;;14512:8;;14522:4;;14528:2;;14532:6;;14540:4;;14473:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14473:72:75;;;;;;;;-1:-1:-1;;14473:72:75;;;;;;;;;;;;:::i;:::-;;;14469:471;;;;:::i;:::-;-1:-1:-1;;;;;;14594:55:75;;-1:-1:-1;;;14594:55:75;14590:152;;14673:50;;-1:-1:-1;;;14673:50:75;;;;;;;:::i;704:427:20:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:20;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:20;1093:7;-1:-1:-1;;;;;;1060:32:20;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:20:o;4262:647::-;4433:71;;;-1:-1:-1;;;;;;47694:33:81;;4433:71:20;;;;47676:52:81;;;;4433:71:20;;;;;;;;;;47649:18:81;;;;4433:71:20;;;;;;;;;-1:-1:-1;;;;;4433:71:20;-1:-1:-1;;;4433:71:20;;;4712:20;;4364:4;;4433:71;4364:4;;;;;;4433:71;4364:4;;4712:20;4677:7;4670:5;4659:86;4648:97;;4772:16;4758:30;;4822:4;4816:11;4801:26;;4854:7;:29;;;;;4879:4;4865:10;:18;;4854:29;:48;;;;;4901:1;4887:11;:15;4854:48;4847:55;4262:647;-1:-1:-1;;;;;;;4262:647:20:o;9889:890:22:-;9942:7;;-1:-1:-1;;;10017:15:22;;10013:99;;-1:-1:-1;;;10052:15:22;;;-1:-1:-1;10095:2:22;10085:12;10013:99;-1:-1:-1;;;10129:5:22;:15;10125:99;;-1:-1:-1;;;10164:15:22;;;-1:-1:-1;10207:2:22;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:22;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:22;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:22;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:22;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:22:o;3629:923:33:-;-1:-1:-1;;;;;3797:18:33;;3793:31;3817:7;3793:31;3834:17;3854:16;:29;3871:8;3880:1;3871:11;;;;;;;;:::i;:::-;;;;;;;3854:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3854:29:33;3834:49;;3899:6;3894:174;3911:8;:15;3907:1;:19;3894:174;;;3984:9;-1:-1:-1;;;;;3951:42:33;:16;:29;3968:8;3977:1;3968:11;;;;;;;;:::i;:::-;;;;;;;;;;;;3951:29;;;;;;;;;;-1:-1:-1;3951:29:33;;-1:-1:-1;;;;;3951:29:33;:42;3943:83;;;;-1:-1:-1;;;3943:83:33;;;;;;;:::i;:::-;4052:3;;3894:174;;;-1:-1:-1;;;;;;4081:23:33;;;;;;:64;;-1:-1:-1;;;;;;4108:37:33;;;;;;:26;:37;;;;;;;;4081:64;4077:469;;;4169:107;;-1:-1:-1;;;4169:107:33;;-1:-1:-1;;;;;4169:66:33;;;;;:107;;4236:10;;4248:4;;4254:2;;4258:8;;4268:7;;4169:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4161:146;;;;-1:-1:-1;;;4161:146:33;;;;;;;:::i;:::-;4077:469;;;4328:20;;-1:-1:-1;;;;;4328:20:33;:34;4324:222;;4426:20;;4386:118;;-1:-1:-1;;;4386:118:33;;-1:-1:-1;;;;;4426:20:33;;;;4386:77;;:118;;4464:10;;4476:4;;4482:2;;4486:8;;4496:7;;4386:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4378:157;;;;-1:-1:-1;;;4378:157:33;;;;;;;:::i;7334:707:75:-;-1:-1:-1;;;;;7481:16:75;;7473:62;;;;-1:-1:-1;;;7473:62:75;;;;;;;:::i;:::-;7565:10;7546:16;7608:21;7626:2;7608:17;:21::i;:::-;7585:44;;7639:24;7666:25;7684:6;7666:17;:25::i;:::-;7639:52;;7702:66;7723:8;7741:1;7745:2;7749:3;7754:7;7763:4;7702:20;:66::i;:::-;7779:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;7779:17:75;;;;;;;;;:27;;7800:6;;7779:13;:27;;7800:6;;7779:27;:::i;:::-;;;;-1:-1:-1;;7821:52:75;;;41785:25:81;;;41841:2;41826:18;;41819:34;;;-1:-1:-1;;;;;7821:52:75;;;;7854:1;;7821:52;;;;-1:-1:-1;;;;;;;;;;;7821:52:75;41758:18:81;7821:52:75;;;;;;;7960:74;7991:8;8009:1;8013:2;8017;8021:6;8029:4;7960:30;:74::i;8431:789::-;-1:-1:-1;;;;;8603:16:75;;8595:62;;;;-1:-1:-1;;;8595:62:75;;;;;;;:::i;:::-;8689:7;:14;8675:3;:10;:28;8667:81;;;;-1:-1:-1;;;8667:81:75;;;;;;;:::i;:::-;8778:10;8799:66;8778:10;8759:16;8842:2;8846:3;8851:7;8860:4;8799:20;:66::i;:::-;8881:9;8876:101;8900:3;:10;8896:1;:14;8876:101;;;8956:7;8964:1;8956:10;;;;;;;;:::i;:::-;;;;;;;8931:9;:17;8941:3;8945:1;8941:6;;;;;;;;:::i;:::-;;;;;;;8931:17;;;;;;;;;;;:21;8949:2;-1:-1:-1;;;;;8931:21:75;-1:-1:-1;;;;;8931:21:75;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;8912:3:75;;-1:-1:-1;8912:3:75;;;:::i;:::-;;;;8876:101;;;;9028:2;-1:-1:-1;;;;;8992:53:75;9024:1;-1:-1:-1;;;;;8992:53:75;9006:8;-1:-1:-1;;;;;8992:53:75;-1:-1:-1;;;;;;;;;;;9032:3:75;9037:7;8992:53;;;;;;;:::i;:::-;;;;;;;;9132:81;9168:8;9186:1;9190:2;9194:3;9199:7;9208:4;9132:35;:81::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:81;-1:-1:-1;;;;;89:31:81;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:81:o;652:131::-;-1:-1:-1;;;;;;726:32:81;;716:43;;706:71;;773:1;770;763:12;788:245;846:6;899:2;887:9;878:7;874:23;870:32;867:52;;;915:1;912;905:12;867:52;954:9;941:23;973:30;997:5;973:30;:::i;1230:247::-;1289:6;1342:2;1330:9;1321:7;1317:23;1313:32;1310:52;;;1358:1;1355;1348:12;1310:52;1397:9;1384:23;1416:31;1441:5;1416:31;:::i;1482:250::-;1567:1;1577:113;1591:6;1588:1;1585:13;1577:113;;;1667:11;;;1661:18;1648:11;;;1641:39;1613:2;1606:10;1577:113;;;-1:-1:-1;;1724:1:81;1706:16;;1699:27;1482:250::o;1737:271::-;1779:3;1817:5;1811:12;1844:6;1839:3;1832:19;1860:76;1929:6;1922:4;1917:3;1913:14;1906:4;1899:5;1895:16;1860:76;:::i;:::-;1990:2;1969:15;-1:-1:-1;;1965:29:81;1956:39;;;;1997:4;1952:50;;1737:271;-1:-1:-1;;1737:271:81:o;2013:220::-;2162:2;2151:9;2144:21;2125:4;2182:45;2223:2;2212:9;2208:18;2200:6;2182:45;:::i;2238:180::-;2297:6;2350:2;2338:9;2329:7;2325:23;2321:32;2318:52;;;2366:1;2363;2356:12;2318:52;-1:-1:-1;2389:23:81;;2238:180;-1:-1:-1;2238:180:81:o;2423:435::-;2476:3;2514:5;2508:12;2541:6;2536:3;2529:19;2567:4;2596:2;2591:3;2587:12;2580:19;;2633:2;2626:5;2622:14;2654:1;2664:169;2678:6;2675:1;2672:13;2664:169;;;2739:13;;2727:26;;2773:12;;;;2808:15;;;;2700:1;2693:9;2664:169;;;-1:-1:-1;2849:3:81;;2423:435;-1:-1:-1;;;;;2423:435:81:o;2863:261::-;3042:2;3031:9;3024:21;3005:4;3062:56;3114:2;3103:9;3099:18;3091:6;3062:56;:::i;3129:348::-;3181:8;3191:6;3245:3;3238:4;3230:6;3226:17;3222:27;3212:55;;3263:1;3260;3253:12;3212:55;-1:-1:-1;3286:20:81;;-1:-1:-1;;;;;3318:30:81;;3315:50;;;3361:1;3358;3351:12;3315:50;3398:4;3390:6;3386:17;3374:29;;3450:3;3443:4;3434:6;3426;3422:19;3418:30;3415:39;3412:59;;;3467:1;3464;3457:12;3482:479;3562:6;3570;3578;3631:2;3619:9;3610:7;3606:23;3602:32;3599:52;;;3647:1;3644;3637:12;3599:52;3683:9;3670:23;3660:33;;3744:2;3733:9;3729:18;3716:32;-1:-1:-1;;;;;3763:6:81;3760:30;3757:50;;;3803:1;3800;3793:12;3757:50;3842:59;3893:7;3884:6;3873:9;3869:22;3842:59;:::i;:::-;3482:479;;3920:8;;-1:-1:-1;3816:85:81;;-1:-1:-1;;;;3482:479:81:o;3966:375::-;4037:8;4047:6;4101:3;4094:4;4086:6;4082:17;4078:27;4068:55;;4119:1;4116;4109:12;4068:55;-1:-1:-1;4142:20:81;;-1:-1:-1;;;;;4174:30:81;;4171:50;;;4217:1;4214;4207:12;4171:50;4254:4;4246:6;4242:17;4230:29;;4314:3;4307:4;4297:6;4294:1;4290:14;4282:6;4278:27;4274:38;4271:47;4268:67;;;4331:1;4328;4321:12;4346:865;4485:6;4493;4501;4509;4517;4570:2;4558:9;4549:7;4545:23;4541:32;4538:52;;;4586:1;4583;4576:12;4538:52;4622:9;4609:23;4599:33;;4683:2;4672:9;4668:18;4655:32;-1:-1:-1;;;;;4747:2:81;4739:6;4736:14;4733:34;;;4763:1;4760;4753:12;4733:34;4802:78;4872:7;4863:6;4852:9;4848:22;4802:78;:::i;:::-;4899:8;;-1:-1:-1;4776:104:81;-1:-1:-1;4987:2:81;4972:18;;4959:32;;-1:-1:-1;5003:16:81;;;5000:36;;;5032:1;5029;5022:12;5000:36;;5071:80;5143:7;5132:8;5121:9;5117:24;5071:80;:::i;:::-;4346:865;;;;-1:-1:-1;4346:865:81;;-1:-1:-1;5170:8:81;;5045:106;4346:865;-1:-1:-1;;;4346:865:81:o;5216:203::-;-1:-1:-1;;;;;5380:32:81;;;;5362:51;;5350:2;5335:18;;5216:203::o;5424:248::-;5492:6;5500;5553:2;5541:9;5532:7;5528:23;5524:32;5521:52;;;5569:1;5566;5559:12;5521:52;-1:-1:-1;;5592:23:81;;;5662:2;5647:18;;;5634:32;;-1:-1:-1;5424:248:81:o;5677:274::-;-1:-1:-1;;;;;5869:32:81;;;;5851:51;;5933:2;5918:18;;5911:34;5839:2;5824:18;;5677:274::o;5956:127::-;6017:10;6012:3;6008:20;6005:1;5998:31;6048:4;6045:1;6038:15;6072:4;6069:1;6062:15;6088:249;6198:2;6179:13;;-1:-1:-1;;6175:27:81;6163:40;;-1:-1:-1;;;;;6218:34:81;;6254:22;;;6215:62;6212:88;;;6280:18;;:::i;:::-;6316:2;6309:22;-1:-1:-1;;6088:249:81:o;6342:183::-;6402:4;-1:-1:-1;;;;;6427:6:81;6424:30;6421:56;;;6457:18;;:::i;:::-;-1:-1:-1;6502:1:81;6498:14;6514:4;6494:25;;6342:183::o;6530:724::-;6584:5;6637:3;6630:4;6622:6;6618:17;6614:27;6604:55;;6655:1;6652;6645:12;6604:55;6691:6;6678:20;6717:4;6740:43;6780:2;6740:43;:::i;:::-;6812:2;6806:9;6824:31;6852:2;6844:6;6824:31;:::i;:::-;6890:18;;;6982:1;6978:10;;;;6966:23;;6962:32;;;6924:15;;;;-1:-1:-1;7006:15:81;;;7003:35;;;7034:1;7031;7024:12;7003:35;7070:2;7062:6;7058:15;7082:142;7098:6;7093:3;7090:15;7082:142;;;7164:17;;7152:30;;7202:12;;;;7115;;7082:142;;;-1:-1:-1;7242:6:81;6530:724;-1:-1:-1;;;;;;6530:724:81:o;7259:186::-;7307:4;-1:-1:-1;;;;;7332:6:81;7329:30;7326:56;;;7362:18;;:::i;:::-;-1:-1:-1;7428:2:81;7407:15;-1:-1:-1;;7403:29:81;7434:4;7399:40;;7259:186::o;7450:508::-;7492:5;7545:3;7538:4;7530:6;7526:17;7522:27;7512:55;;7563:1;7560;7553:12;7512:55;7599:6;7586:20;7625:31;7653:2;7625:31;:::i;:::-;7685:2;7679:9;7697:31;7725:2;7717:6;7697:31;:::i;:::-;7752:2;7744:6;7737:18;7798:3;7791:4;7786:2;7778:6;7774:15;7770:26;7767:35;7764:55;;;7815:1;7812;7805:12;7764:55;7879:2;7872:4;7864:6;7860:17;7853:4;7845:6;7841:17;7828:54;7926:1;7902:15;;;7919:4;7898:26;7891:37;;;;-1:-1:-1;7906:6:81;7450:508;-1:-1:-1;;;7450:508:81:o;7963:1071::-;8117:6;8125;8133;8141;8149;8202:3;8190:9;8181:7;8177:23;8173:33;8170:53;;;8219:1;8216;8209:12;8170:53;8258:9;8245:23;8277:31;8302:5;8277:31;:::i;:::-;8327:5;-1:-1:-1;8384:2:81;8369:18;;8356:32;8397:33;8356:32;8397:33;:::i;:::-;8449:7;-1:-1:-1;8507:2:81;8492:18;;8479:32;-1:-1:-1;;;;;8560:14:81;;;8557:34;;;8587:1;8584;8577:12;8557:34;8610:61;8663:7;8654:6;8643:9;8639:22;8610:61;:::i;:::-;8600:71;;8724:2;8713:9;8709:18;8696:32;8680:48;;8753:2;8743:8;8740:16;8737:36;;;8769:1;8766;8759:12;8737:36;8792:63;8847:7;8836:8;8825:9;8821:24;8792:63;:::i;:::-;8782:73;;8908:3;8897:9;8893:19;8880:33;8864:49;;8938:2;8928:8;8925:16;8922:36;;;8954:1;8951;8944:12;8922:36;;8977:51;9020:7;9009:8;8998:9;8994:24;8977:51;:::i;:::-;8967:61;;;7963:1071;;;;;;;;:::o;9039:411::-;9110:6;9118;9171:2;9159:9;9150:7;9146:23;9142:32;9139:52;;;9187:1;9184;9177:12;9139:52;9227:9;9214:23;-1:-1:-1;;;;;9252:6:81;9249:30;9246:50;;;9292:1;9289;9282:12;9246:50;9331:59;9382:7;9373:6;9362:9;9358:22;9331:59;:::i;:::-;9409:8;;9305:85;;-1:-1:-1;9039:411:81;-1:-1:-1;;;;9039:411:81:o;9455:546::-;9535:6;9543;9551;9604:2;9592:9;9583:7;9579:23;9575:32;9572:52;;;9620:1;9617;9610:12;9572:52;9659:9;9646:23;9678:31;9703:5;9678:31;:::i;:::-;9728:5;-1:-1:-1;9784:2:81;9769:18;;9756:32;-1:-1:-1;;;;;9800:30:81;;9797:50;;;9843:1;9840;9833:12;10006:461;10059:3;10097:5;10091:12;10124:6;10119:3;10112:19;10150:4;10179:2;10174:3;10170:12;10163:19;;10216:2;10209:5;10205:14;10237:1;10247:195;10261:6;10258:1;10255:13;10247:195;;;10326:13;;-1:-1:-1;;;;;10322:39:81;10310:52;;10382:12;;;;10417:15;;;;10358:1;10276:9;10247:195;;10472:261;10651:2;10640:9;10633:21;10614:4;10671:56;10723:2;10712:9;10708:18;10700:6;10671:56;:::i;10738:797::-;10868:6;10876;10884;10892;10945:2;10933:9;10924:7;10920:23;10916:32;10913:52;;;10961:1;10958;10951:12;10913:52;11001:9;10988:23;-1:-1:-1;;;;;11071:2:81;11063:6;11060:14;11057:34;;;11087:1;11084;11077:12;11057:34;11126:78;11196:7;11187:6;11176:9;11172:22;11126:78;:::i;:::-;11223:8;;-1:-1:-1;11100:104:81;-1:-1:-1;11311:2:81;11296:18;;11283:32;;-1:-1:-1;11327:16:81;;;11324:36;;;11356:1;11353;11346:12;11324:36;;11395:80;11467:7;11456:8;11445:9;11441:24;11395:80;:::i;:::-;10738:797;;;;-1:-1:-1;11494:8:81;-1:-1:-1;;;;10738:797:81:o;11540:924::-;11671:6;11679;11687;11695;11703;11756:2;11744:9;11735:7;11731:23;11727:32;11724:52;;;11772:1;11769;11762:12;11724:52;11811:9;11798:23;11830:31;11855:5;11830:31;:::i;:::-;11880:5;-1:-1:-1;11936:2:81;11921:18;;11908:32;-1:-1:-1;;;;;11989:14:81;;;11986:34;;;12016:1;12013;12006:12;12469:118;12555:5;12548:13;12541:21;12534:5;12531:32;12521:60;;12577:1;12574;12567:12;12592:681;12678:6;12686;12694;12702;12755:2;12743:9;12734:7;12730:23;12726:32;12723:52;;;12771:1;12768;12761:12;12723:52;12810:9;12797:23;12829:31;12854:5;12829:31;:::i;:::-;12879:5;-1:-1:-1;12935:2:81;12920:18;;12907:32;-1:-1:-1;;;;;12951:30:81;;12948:50;;;12994:1;12991;12984:12;12948:50;13033:59;13084:7;13075:6;13064:9;13060:22;13033:59;:::i;:::-;13111:8;;-1:-1:-1;13007:85:81;-1:-1:-1;;13198:2:81;13183:18;;13170:32;13211:30;13170:32;13211:30;:::i;:::-;12592:681;;;;-1:-1:-1;12592:681:81;;-1:-1:-1;;12592:681:81:o;13278:1277::-;13396:6;13404;13457:2;13445:9;13436:7;13432:23;13428:32;13425:52;;;13473:1;13470;13463:12;13425:52;13513:9;13500:23;-1:-1:-1;;;;;13583:2:81;13575:6;13572:14;13569:34;;;13599:1;13596;13589:12;13569:34;13637:6;13626:9;13622:22;13612:32;;13682:7;13675:4;13671:2;13667:13;13663:27;13653:55;;13704:1;13701;13694:12;13653:55;13740:2;13727:16;13762:4;13785:43;13825:2;13785:43;:::i;:::-;13857:2;13851:9;13869:31;13897:2;13889:6;13869:31;:::i;:::-;13935:18;;;14023:1;14019:10;;;;14011:19;;14007:28;;;13969:15;;;;-1:-1:-1;14047:19:81;;;14044:39;;;14079:1;14076;14069:12;14044:39;14103:11;;;;14123:217;14139:6;14134:3;14131:15;14123:217;;;14219:3;14206:17;14236:31;14261:5;14236:31;:::i;:::-;14280:18;;14156:12;;;;14318;;;;14123:217;;;14359:6;-1:-1:-1;;14403:18:81;;14390:32;;-1:-1:-1;;14434:16:81;;;14431:36;;;14463:1;14460;14453:12;14431:36;;14486:63;14541:7;14530:8;14519:9;14515:24;14486:63;:::i;:::-;14476:73;;;13278:1277;;;;;:::o;15366:1112::-;15524:6;15532;15540;15548;15556;15564;15617:2;15605:9;15596:7;15592:23;15588:32;15585:52;;;15633:1;15630;15623:12;15585:52;15673:9;15660:23;-1:-1:-1;;;;;15743:2:81;15735:6;15732:14;15729:34;;;15759:1;15756;15749:12;15729:34;15798:78;15868:7;15859:6;15848:9;15844:22;15798:78;:::i;:::-;15895:8;;-1:-1:-1;15772:104:81;-1:-1:-1;15983:2:81;15968:18;;15955:32;;-1:-1:-1;15999:16:81;;;15996:36;;;16028:1;16025;16018:12;15996:36;16067:80;16139:7;16128:8;16117:9;16113:24;16067:80;:::i;:::-;16166:8;;-1:-1:-1;16041:106:81;-1:-1:-1;16254:2:81;16239:18;;16226:32;;-1:-1:-1;16270:16:81;;;16267:36;;;16299:1;16296;16289:12;16267:36;;16338:80;16410:7;16399:8;16388:9;16384:24;16338:80;:::i;:::-;15366:1112;;;;-1:-1:-1;15366:1112:81;;-1:-1:-1;15366:1112:81;;16437:8;;15366:1112;-1:-1:-1;;;15366:1112:81:o;16483:540::-;16560:6;16568;16576;16629:2;16617:9;16608:7;16604:23;16600:32;16597:52;;;16645:1;16642;16635:12;16597:52;16685:9;16672:23;-1:-1:-1;;;;;16710:6:81;16707:30;16704:50;;;16750:1;16747;16740:12;16704:50;16789:59;16840:7;16831:6;16820:9;16816:22;16789:59;:::i;:::-;16867:8;;-1:-1:-1;16763:85:81;-1:-1:-1;;16952:2:81;16937:18;;16924:32;16965:28;16924:32;16965:28;:::i;:::-;17012:5;17002:15;;;16483:540;;;;;:::o;18157:382::-;18222:6;18230;18283:2;18271:9;18262:7;18258:23;18254:32;18251:52;;;18299:1;18296;18289:12;18251:52;18338:9;18325:23;18357:31;18382:5;18357:31;:::i;:::-;18407:5;-1:-1:-1;18464:2:81;18449:18;;18436:32;18477:30;18436:32;18477:30;:::i;:::-;18526:7;18516:17;;;18157:382;;;;;:::o;18544:241::-;18600:6;18653:2;18641:9;18632:7;18628:23;18624:32;18621:52;;;18669:1;18666;18659:12;18621:52;18708:9;18695:23;18727:28;18749:5;18727:28;:::i;20009:481::-;20282:2;20271:9;20264:21;20245:4;20308:56;20360:2;20349:9;20345:18;20337:6;20308:56;:::i;:::-;20412:9;20404:6;20400:22;20395:2;20384:9;20380:18;20373:50;20440:44;20477:6;20469;20440:44;:::i;:::-;20432:52;20009:481;-1:-1:-1;;;;;20009:481:81:o;20495:388::-;20563:6;20571;20624:2;20612:9;20603:7;20599:23;20595:32;20592:52;;;20640:1;20637;20630:12;20592:52;20679:9;20666:23;20698:31;20723:5;20698:31;:::i;:::-;20748:5;-1:-1:-1;20805:2:81;20790:18;;20777:32;20818:33;20777:32;20818:33;:::i;20888:734::-;20992:6;21000;21008;21016;21024;21077:3;21065:9;21056:7;21052:23;21048:33;21045:53;;;21094:1;21091;21084:12;21045:53;21133:9;21120:23;21152:31;21177:5;21152:31;:::i;:::-;21202:5;-1:-1:-1;21259:2:81;21244:18;;21231:32;21272:33;21231:32;21272:33;:::i;:::-;21324:7;-1:-1:-1;21378:2:81;21363:18;;21350:32;;-1:-1:-1;21429:2:81;21414:18;;21401:32;;-1:-1:-1;21484:3:81;21469:19;;21456:33;-1:-1:-1;;;;;21501:30:81;;21498:50;;;21544:1;21541;21534:12;21498:50;21567:49;21608:7;21599:6;21588:9;21584:22;21567:49;:::i;22038:400::-;22240:2;22222:21;;;22279:2;22259:18;;;22252:30;22318:34;22313:2;22298:18;;22291:62;-1:-1:-1;;;22384:2:81;22369:18;;22362:34;22428:3;22413:19;;22038:400::o;22443:380::-;22522:1;22518:12;;;;22565;;;22586:61;;22640:4;22632:6;22628:17;22618:27;;22586:61;22693:2;22685:6;22682:14;22662:18;22659:38;22656:161;;22739:10;22734:3;22730:20;22727:1;22720:31;22774:4;22771:1;22764:15;22802:4;22799:1;22792:15;23179:345;23381:2;23363:21;;;23420:2;23400:18;;;23393:30;-1:-1:-1;;;23454:2:81;23439:18;;23432:51;23515:2;23500:18;;23179:345::o;23529:410::-;23731:2;23713:21;;;23770:2;23750:18;;;23743:30;23809:34;23804:2;23789:18;;23782:62;-1:-1:-1;;;23875:2:81;23860:18;;23853:44;23929:3;23914:19;;23529:410::o;23944:127::-;24005:10;24000:3;23996:20;23993:1;23986:31;24036:4;24033:1;24026:15;24060:4;24057:1;24050:15;24076:127;24137:10;24132:3;24128:20;24125:1;24118:31;24168:4;24165:1;24158:15;24192:4;24189:1;24182:15;24208:135;24247:3;24268:17;;;24265:43;;24288:18;;:::i;:::-;-1:-1:-1;24335:1:81;24324:13;;24208:135::o;24708:337::-;24910:2;24892:21;;;24949:2;24929:18;;;24922:30;-1:-1:-1;;;24983:2:81;24968:18;;24961:43;25036:2;25021:18;;24708:337::o;25460:522::-;25538:4;25544:6;25604:11;25591:25;25698:2;25694:7;25683:8;25667:14;25663:29;25659:43;25639:18;25635:68;25625:96;;25717:1;25714;25707:12;25625:96;25744:33;;25796:20;;;-1:-1:-1;;;;;;25828:30:81;;25825:50;;;25871:1;25868;25861:12;25825:50;25904:4;25892:17;;-1:-1:-1;25935:14:81;25931:27;;;25921:38;;25918:58;;;25972:1;25969;25962:12;25987:337;26189:2;26171:21;;;26228:2;26208:18;;;26201:30;-1:-1:-1;;;26262:2:81;26247:18;;26240:43;26315:2;26300:18;;25987:337::o;27975:722::-;28025:3;28066:5;28060:12;28095:36;28121:9;28095:36;:::i;:::-;28150:1;28167:18;;;28194:133;;;;28341:1;28336:355;;;;28160:531;;28194:133;-1:-1:-1;;28227:24:81;;28215:37;;28300:14;;28293:22;28281:35;;28272:45;;;-1:-1:-1;28194:133:81;;28336:355;28367:5;28364:1;28357:16;28396:4;28441:2;28438:1;28428:16;28466:1;28480:165;28494:6;28491:1;28488:13;28480:165;;;28572:14;;28559:11;;;28552:35;28615:16;;;;28509:10;;28480:165;;;28484:3;;;28674:6;28669:3;28665:16;28658:23;;28160:531;;;;;27975:722;;;;:::o;28702:277::-;28875:3;28900:73;28934:38;28968:3;28960:6;28934:38;:::i;:::-;28926:6;28900:73;:::i;:::-;28893:80;28702:277;-1:-1:-1;;;;28702:277:81:o;28984:703::-;29064:6;29117:2;29105:9;29096:7;29092:23;29088:32;29085:52;;;29133:1;29130;29123:12;29085:52;29166:9;29160:16;-1:-1:-1;;;;;29191:6:81;29188:30;29185:50;;;29231:1;29228;29221:12;29185:50;29254:22;;29307:4;29299:13;;29295:27;-1:-1:-1;29285:55:81;;29336:1;29333;29326:12;29285:55;29365:2;29359:9;29387:31;29415:2;29387:31;:::i;:::-;29447:2;29441:9;29459:31;29487:2;29479:6;29459:31;:::i;:::-;29514:2;29506:6;29499:18;29554:7;29549:2;29544;29540;29536:11;29532:20;29529:33;29526:53;;;29575:1;29572;29565:12;29526:53;29588:68;29653:2;29648;29640:6;29636:15;29631:2;29627;29623:11;29588:68;:::i;29692:389::-;29868:3;29896:38;29930:3;29922:6;29896:38;:::i;:::-;29963:6;29957:13;29979:65;30037:6;30033:2;30026:4;30018:6;30014:17;29979:65;:::i;:::-;30060:15;;29692:389;-1:-1:-1;;;;29692:389:81:o;30086:545::-;30188:2;30183:3;30180:11;30177:448;;;30224:1;30249:5;30245:2;30238:17;30294:4;30290:2;30280:19;30364:2;30352:10;30348:19;30345:1;30341:27;30335:4;30331:38;30400:4;30388:10;30385:20;30382:47;;;-1:-1:-1;30423:4:81;30382:47;30478:2;30473:3;30469:12;30466:1;30462:20;30456:4;30452:31;30442:41;;30533:82;30551:2;30544:5;30541:13;30533:82;;;30596:17;;;30577:1;30566:13;30533:82;;30807:1206;-1:-1:-1;;;;;30926:3:81;30923:27;30920:53;;;30953:18;;:::i;:::-;30982:94;31072:3;31032:38;31064:4;31058:11;31032:38;:::i;:::-;31026:4;30982:94;:::i;:::-;31102:1;31127:2;31122:3;31119:11;31144:1;31139:616;;;;31799:1;31816:3;31813:93;;;-1:-1:-1;31872:19:81;;;31859:33;31813:93;-1:-1:-1;;30764:1:81;30760:11;;;30756:24;30752:29;30742:40;30788:1;30784:11;;;30739:57;31919:78;;31112:895;;31139:616;27922:1;27915:14;;;27959:4;27946:18;;-1:-1:-1;;31175:17:81;;;31276:9;31298:229;31312:7;31309:1;31306:14;31298:229;;;31401:19;;;31388:33;31373:49;;31508:4;31493:20;;;;31461:1;31449:14;;;;31328:12;31298:229;;;31302:3;31555;31546:7;31543:16;31540:159;;;31679:1;31675:6;31669:3;31663;31660:1;31656:11;31652:21;31648:34;31644:39;31631:9;31626:3;31622:19;31609:33;31605:79;31597:6;31590:95;31540:159;;;31742:1;31736:3;31733:1;31729:11;31725:19;31719:4;31712:33;31112:895;;30807:1206;;;:::o;32018:311::-;32106:19;;;32088:3;-1:-1:-1;;;;;32137:31:81;;32134:51;;;32181:1;32178;32171:12;32134:51;32217:6;32214:1;32210:14;32269:8;32262:5;32255:4;32250:3;32246:14;32233:45;32298:18;;;;32318:4;32294:29;;32018:311;-1:-1:-1;;;32018:311:81:o;32334:928::-;32638:2;32650:21;;;32623:18;;32706:22;;;32590:4;32785:6;32759:2;32744:18;;32590:4;32819:304;32833:6;32830:1;32827:13;32819:304;;;32908:6;32895:20;32928:31;32953:5;32928:31;:::i;:::-;-1:-1:-1;;;;;32984:31:81;32972:44;;33039:4;33098:15;;;;33063:12;;;;33012:1;32848:9;32819:304;;;32823:3;33170:9;33165:3;33161:19;33154:4;33143:9;33139:20;33132:49;33198:58;33252:3;33244:6;33236;33198:58;:::i;:::-;33190:66;32334:928;-1:-1:-1;;;;;;;;32334:928:81:o;33624:168::-;33697:9;;;33728;;33745:15;;;33739:22;;33725:37;33715:71;;33766:18;;:::i;33929:217::-;33969:1;33995;33985:132;;34039:10;34034:3;34030:20;34027:1;34020:31;34074:4;34071:1;34064:15;34102:4;34099:1;34092:15;33985:132;-1:-1:-1;34131:9:81;;33929:217::o;34512:404::-;34714:2;34696:21;;;34753:2;34733:18;;;34726:30;34792:34;34787:2;34772:18;;34765:62;-1:-1:-1;;;34858:2:81;34843:18;;34836:38;34906:3;34891:19;;34512:404::o;34921:401::-;35123:2;35105:21;;;35162:2;35142:18;;;35135:30;35201:34;35196:2;35181:18;;35174:62;-1:-1:-1;;;35267:2:81;35252:18;;35245:35;35312:3;35297:19;;34921:401::o;35327:406::-;35529:2;35511:21;;;35568:2;35548:18;;;35541:30;35607:34;35602:2;35587:18;;35580:62;-1:-1:-1;;;35673:2:81;35658:18;;35651:40;35723:3;35708:19;;35327:406::o;35738:125::-;35803:9;;;35824:10;;;35821:36;;;35837:18;;:::i;35868:465::-;36125:2;36114:9;36107:21;36088:4;36151:56;36203:2;36192:9;36188:18;36180:6;36151:56;:::i;37033:128::-;37100:9;;;37121:11;;;37118:37;;;37135:18;;:::i;37166:352::-;37368:2;37350:21;;;37407:2;37387:18;;;37380:30;-1:-1:-1;;;37441:2:81;37426:18;;37419:58;37509:2;37494:18;;37166:352::o;37523:616::-;-1:-1:-1;;;;;37828:32:81;;37810:51;;37897:2;37892;37877:18;;37870:30;;;-1:-1:-1;;37923:73:81;;37977:18;;37969:6;37961;37923:73;:::i;:::-;38044:9;38036:6;38032:22;38027:2;38016:9;38012:18;38005:50;38072:61;38126:6;38118;38110;38072:61;:::i;38911:721::-;38976:5;39029:3;39022:4;39014:6;39010:17;39006:27;38996:55;;39047:1;39044;39037:12;38996:55;39076:6;39070:13;39102:4;39125:43;39165:2;39125:43;:::i;:::-;39197:2;39191:9;39209:31;39237:2;39229:6;39209:31;:::i;:::-;39275:18;;;39367:1;39363:10;;;;39351:23;;39347:32;;;39309:15;;;;-1:-1:-1;39391:15:81;;;39388:35;;;39419:1;39416;39409:12;39388:35;39455:2;39447:6;39443:15;39467:135;39483:6;39478:3;39475:15;39467:135;;;39549:10;;39537:23;;39580:12;;;;39500;;39467:135;;39637:1279;39774:6;39782;39835:2;39823:9;39814:7;39810:23;39806:32;39803:52;;;39851:1;39848;39841:12;39803:52;39884:9;39878:16;-1:-1:-1;;;;;39954:2:81;39946:6;39943:14;39940:34;;;39970:1;39967;39960:12;39940:34;40008:6;39997:9;39993:22;39983:32;;40053:7;40046:4;40042:2;40038:13;40034:27;40024:55;;40075:1;40072;40065:12;40024:55;40104:2;40098:9;40126:4;40149:43;40189:2;40149:43;:::i;:::-;40221:2;40215:9;40233:31;40261:2;40253:6;40233:31;:::i;:::-;40299:18;;;40387:1;40383:10;;;;40375:19;;40371:28;;;40333:15;;;;-1:-1:-1;40411:19:81;;;40408:39;;;40443:1;40440;40433:12;40408:39;40467:11;;;;40487:210;40503:6;40498:3;40495:15;40487:210;;;40576:3;40570:10;40593:31;40618:5;40593:31;:::i;:::-;40637:18;;40520:12;;;;40675;;;;40487:210;;;40753:18;;;40747:25;40716:6;;-1:-1:-1;40747:25:81;;-1:-1:-1;;;40784:16:81;;;40781:36;;;40813:1;40810;40803:12;40781:36;;40836:74;40902:7;40891:8;40880:9;40876:24;40836:74;:::i;42476:127::-;42537:10;42532:3;42528:20;42525:1;42518:31;42568:4;42565:1;42558:15;42592:4;42589:1;42582:15;42608:827;-1:-1:-1;;;;;43005:15:81;;;42987:34;;43057:15;;43052:2;43037:18;;43030:43;42967:3;43104:2;43089:18;;43082:31;;;42930:4;;43136:57;;43173:19;;43165:6;43136:57;:::i;:::-;43241:9;43233:6;43229:22;43224:2;43213:9;43209:18;43202:50;43275:44;43312:6;43304;43275:44;:::i;:::-;43261:58;;43368:9;43360:6;43356:22;43350:3;43339:9;43335:19;43328:51;43396:33;43422:6;43414;43396:33;:::i;43440:249::-;43509:6;43562:2;43550:9;43541:7;43537:23;43533:32;43530:52;;;43578:1;43575;43568:12;43530:52;43610:9;43604:16;43629:30;43653:5;43629:30;:::i;43694:179::-;43729:3;43771:1;43753:16;43750:23;43747:120;;;43817:1;43814;43811;43796:23;-1:-1:-1;43854:1:81;43848:8;43843:3;43839:18;43747:120;43694:179;:::o;43878:671::-;43917:3;43959:4;43941:16;43938:26;43935:39;;;43878:671;:::o;43935:39::-;44001:2;43995:9;-1:-1:-1;;44066:16:81;44062:25;;44059:1;43995:9;44038:50;44117:4;44111:11;44141:16;-1:-1:-1;;;;;44247:2:81;44240:4;44232:6;44228:17;44225:25;44220:2;44212:6;44209:14;44206:45;44203:58;;;44254:5;;;;;43878:671;:::o;44203:58::-;44291:6;44285:4;44281:17;44270:28;;44327:3;44321:10;44354:2;44346:6;44343:14;44340:27;;;44360:5;;;;;;43878:671;:::o;44340:27::-;44444:2;44425:16;44419:4;44415:27;44411:36;44404:4;44395:6;44390:3;44386:16;44382:27;44379:69;44376:82;;;44451:5;;;;;;43878:671;:::o;44376:82::-;44467:57;44518:4;44509:6;44501;44497:19;44493:30;44487:4;44467:57;:::i;:::-;-1:-1:-1;44540:3:81;;43878:671;-1:-1:-1;;;;;43878:671:81:o;44975:404::-;45177:2;45159:21;;;45216:2;45196:18;;;45189:30;45255:34;45250:2;45235:18;;45228:62;-1:-1:-1;;;45321:2:81;45306:18;;45299:38;45369:3;45354:19;;44975:404::o;45384:399::-;45586:2;45568:21;;;45625:2;45605:18;;;45598:30;45664:34;45659:2;45644:18;;45637:62;-1:-1:-1;;;45730:2:81;45715:18;;45708:33;45773:3;45758:19;;45384:399::o;45788:400::-;45990:2;45972:21;;;46029:2;46009:18;;;46002:30;46068:34;46063:2;46048:18;;46041:62;-1:-1:-1;;;46134:2:81;46119:18;;46112:34;46178:3;46163:19;;45788:400::o;46193:768::-;-1:-1:-1;;;;;46556:32:81;;46538:51;;46625:3;46620:2;46605:18;;46598:31;;;-1:-1:-1;;46652:57:81;;46689:19;;46681:6;46652:57;:::i;:::-;46757:9;46749:6;46745:22;46740:2;46729:9;46725:18;46718:50;46791:44;46828:6;46820;46791:44;:::i;:::-;46777:58;;46883:9;46875:6;46871:22;46866:2;46855:9;46851:18;46844:50;46911:44;46948:6;46940;46911:44;:::i;46966:561::-;-1:-1:-1;;;;;47263:15:81;;;47245:34;;47315:15;;47310:2;47295:18;;47288:43;47362:2;47347:18;;47340:34;;;47405:2;47390:18;;47383:34;;;47225:3;47448;47433:19;;47426:32;;;47188:4;;47475:46;;47501:19;;47493:6;47475:46;:::i;47739:746::-;-1:-1:-1;;;;;48118:15:81;;;48100:34;;48170:15;;;48165:2;48150:18;;48143:43;48222:15;;48217:2;48202:18;;48195:43;48080:3;48269:2;48254:18;;48247:31;;;48043:4;;48301:57;;48338:19;;48330:6;48301:57;:::i;:::-;48407:9;48399:6;48395:22;48389:3;48378:9;48374:19;48367:51;48435:44;48472:6;48464;48435:44;:::i;48490:245::-;48557:6;48610:2;48598:9;48589:7;48585:23;48581:32;48578:52;;;48626:1;48623;48616:12;48578:52;48658:9;48652:16;48677:28;48699:5;48677:28;:::i;48740:350::-;48942:2;48924:21;;;48981:2;48961:18;;;48954:30;-1:-1:-1;;;49015:2:81;49000:18;;48993:56;49081:2;49066:18;;48740:350::o;49095:397::-;49297:2;49279:21;;;49336:2;49316:18;;;49309:30;49375:34;49370:2;49355:18;;49348:62;-1:-1:-1;;;49441:2:81;49426:18;;49419:31;49482:3;49467:19;;49095:397::o",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\n/// @author: manifold.xyz\n\nimport \"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\";\n\nimport \"./core/ERC1155CreatorCore.sol\";\nimport \"./token/ERC1155/ERC1155Base.sol\";\n\n/**\n * @dev ERC1155Creator implementation\n */\ncontract ERC1155Creator is AdminControl, ERC1155Base, ERC1155CreatorCore {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    mapping(uint256 => uint256) private _totalSupply;\n\n    constructor (string memory _name, string memory _symbol) ERC1155Base(_name, _symbol) {}\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1155Core, ERC1155CreatorCore, AdminControl) returns (bool) {\n        return ERC1155CreatorCore.supportsInterface(interfaceId) || ERC1155Core.supportsInterface(interfaceId) || AdminControl.supportsInterface(interfaceId);\n    }\n\n    function _beforeTokenTransfer(address, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory) internal virtual override {\n        _approveTransfer(from, to, ids, amounts);\n    }\n\n    /**\n     * @dev See {ICreatorCore-registerExtension}.\n     */\n    function registerExtension(address extension, string calldata baseURI) external override adminRequired {\n        requireNonBlacklist(extension);\n        _registerExtension(extension, baseURI, false);\n    }\n\n    /**\n     * @dev See {ICreatorCore-registerExtension}.\n     */\n    function registerExtension(address extension, string calldata baseURI, bool baseURIIdentical) external override adminRequired {\n        requireNonBlacklist(extension);\n        _registerExtension(extension, baseURI, baseURIIdentical);\n    }\n\n\n    /**\n     * @dev See {ICreatorCore-unregisterExtension}.\n     */\n    function unregisterExtension(address extension) external override adminRequired {\n        _unregisterExtension(extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-blacklistExtension}.\n     */\n    function blacklistExtension(address extension) external override adminRequired {\n        _blacklistExtension(extension);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURIExtension}.\n     */\n    function setBaseTokenURIExtension(string calldata uri_) external override {\n        requireExtension();\n        _setBaseTokenURIExtension(uri_, false);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURIExtension}.\n     */\n    function setBaseTokenURIExtension(string calldata uri_, bool identical) external override {\n        requireExtension();\n        _setBaseTokenURIExtension(uri_, identical);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIPrefixExtension}.\n     */\n    function setTokenURIPrefixExtension(string calldata prefix) external override {\n        requireExtension();\n        _setTokenURIPrefixExtension(prefix);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIExtension}.\n     */\n    function setTokenURIExtension(uint256 tokenId, string calldata uri_) external override {\n        requireExtension();\n        _setTokenURIExtension(tokenId, uri_);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIExtension}.\n     */\n    function setTokenURIExtension(uint256[] calldata tokenIds, string[] calldata uris) external override {\n        requireExtension();\n        require(tokenIds.length == uris.length, \"Invalid input\");\n        for (uint i; i < tokenIds.length;) {\n            _setTokenURIExtension(tokenIds[i], uris[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setBaseTokenURI}.\n     */\n    function setBaseTokenURI(string calldata uri_) external override adminRequired {\n        _setBaseTokenURI(uri_);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURIPrefix}.\n     */\n    function setTokenURIPrefix(string calldata prefix) external override adminRequired {\n        _setTokenURIPrefix(prefix);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURI}.\n     */\n    function setTokenURI(uint256 tokenId, string calldata uri_) external override adminRequired {\n        _setTokenURI(tokenId, uri_);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setTokenURI}.\n     */\n    function setTokenURI(uint256[] calldata tokenIds, string[] calldata uris) external override adminRequired {\n        require(tokenIds.length == uris.length, \"Invalid input\");\n        for (uint i; i < tokenIds.length;) {\n            _setTokenURI(tokenIds[i], uris[i]);\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setMintPermissions}.\n     */\n    function setMintPermissions(address extension, address permissions) external override adminRequired {\n        _setMintPermissions(extension, permissions);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintBaseNew}.\n     */\n    function mintBaseNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) public virtual override nonReentrant adminRequired returns(uint256[] memory) {\n        return _mintNew(address(0), to, amounts, uris);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintBaseExisting}.\n     */\n    function mintBaseExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant adminRequired {\n        for (uint i; i < tokenIds.length;) {\n            uint256 tokenId = tokenIds[i];\n            require(tokenId > 0 && tokenId <= _tokenCount, \"Invalid token\");\n            require(_tokenExtension(tokenId) == address(0), \"Token created by extension\");\n            unchecked { ++i; }\n        }\n        _mintExisting(address(0), to, tokenIds, amounts);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintExtensionNew}.\n     */\n    function mintExtensionNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        return _mintNew(msg.sender, to, amounts, uris);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintExtensionExisting}.\n     */\n    function mintExtensionExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant {\n        requireExtension();\n        for (uint i; i < tokenIds.length;) {\n            require(_tokenExtension(tokenIds[i]) == address(msg.sender), \"Token not created by this extension\");\n            unchecked { ++i; }\n        }\n        _mintExisting(msg.sender, to, tokenIds, amounts);\n    }\n\n    /**\n     * @dev Mint new tokens\n     */\n    function _mintNew(address extension, address[] calldata to, uint256[] calldata amounts, string[] calldata uris) internal returns(uint256[] memory tokenIds) {\n        if (to.length > 1) {\n            // Multiple receiver.  Give every receiver the same new token\n            tokenIds = new uint256[](1);\n            require(uris.length <= 1 && (amounts.length == 1 || to.length == amounts.length), \"Invalid input\");\n        } else {\n            // Single receiver.  Generating multiple tokens\n            tokenIds = new uint256[](amounts.length);\n            require(uris.length == 0 || amounts.length == uris.length, \"Invalid input\");\n        }\n\n        // Assign tokenIds\n        for (uint i; i < tokenIds.length;) {\n            ++_tokenCount;\n            tokenIds[i] = _tokenCount;\n            // Track the extension that minted the token\n            _tokensExtension[_tokenCount] = extension;\n            unchecked { ++i; }\n        }\n\n        if (extension != address(0)) {\n            _checkMintPermissions(to, tokenIds, amounts);\n        }\n\n        if (to.length == 1 && tokenIds.length == 1) {\n           // Single mint\n           _mint(to[0], tokenIds[0], amounts[0], new bytes(0));\n        } else if (to.length > 1) {\n            // Multiple receivers.  Receiving the same token\n            if (amounts.length == 1) {\n                // Everyone receiving the same amount\n                for (uint i; i < to.length;) {\n                    _mint(to[i], tokenIds[0], amounts[0], new bytes(0));\n                    unchecked { ++i; }\n                }\n            } else {\n                // Everyone receiving different amounts\n                for (uint i; i < to.length;) {\n                    _mint(to[i], tokenIds[0], amounts[i], new bytes(0));\n                    unchecked { ++i; }\n                }\n            }\n        } else {\n            _mintBatch(to[0], tokenIds, amounts, new bytes(0));\n        }\n\n        for (uint i; i < tokenIds.length;) {\n            if (i < uris.length && bytes(uris[i]).length > 0) {\n                _tokenURIs[tokenIds[i]] = uris[i];\n            }\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev Mint existing tokens\n     */\n    function _mintExisting(address extension, address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) internal {\n        if (extension != address(0)) {\n            _checkMintPermissions(to, tokenIds, amounts);\n        }\n\n        if (to.length == 1 && tokenIds.length == 1 && amounts.length == 1) {\n             // Single mint\n            _mint(to[0], tokenIds[0], amounts[0], new bytes(0));            \n        } else if (to.length == 1 && tokenIds.length == amounts.length) {\n            // Batch mint to same receiver\n            _mintBatch(to[0], tokenIds, amounts, new bytes(0));\n        } else if (tokenIds.length == 1 && amounts.length == 1) {\n            // Mint of the same token/token amounts to various receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[0], amounts[0], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else if (tokenIds.length == 1 && to.length == amounts.length) {\n            // Mint of the same token with different amounts to different receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[0], amounts[i], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else if (to.length == tokenIds.length && to.length == amounts.length) {\n            // Mint of different tokens and different amounts to different receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[i], amounts[i], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else {\n            revert(\"Invalid input\");\n        }\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-tokenExtension}.\n     */\n    function tokenExtension(uint256 tokenId) public view virtual override returns (address extension) {\n        extension = _tokenExtension(tokenId);\n        require(extension != address(0), \"No extension for token\");\n        require(!_blacklistedExtensions.contains(extension), \"Extension blacklisted\");\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-burn}.\n     */\n    function burn(address account, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant {\n        require(account == msg.sender || isApprovedForAll(account, msg.sender), \"Caller is not owner or approved\");\n        require(tokenIds.length == amounts.length, \"Invalid input\");\n        if (tokenIds.length == 1) {\n            _burn(account, tokenIds[0], amounts[0]);\n        } else {\n            _burnBatch(account, tokenIds, amounts);\n        }\n        _postBurn(account, tokenIds, amounts);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyalties}.\n     */\n    function setRoyalties(address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyaltiesExtension(address(0), receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyalties}.\n     */\n    function setRoyalties(uint256 tokenId, address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyalties(tokenId, receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-setRoyaltiesExtension}.\n     */\n    function setRoyaltiesExtension(address extension, address payable[] calldata receivers, uint256[] calldata basisPoints) external override adminRequired {\n        _setRoyaltiesExtension(extension, receivers, basisPoints);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getRoyalties}.\n     */\n    function getRoyalties(uint256 tokenId) external view virtual override returns (address payable[] memory, uint256[] memory) {\n        return _getRoyalties(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFees}.\n     */\n    function getFees(uint256 tokenId) external view virtual override returns (address payable[] memory, uint256[] memory) {\n        return _getRoyalties(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFeeRecipients}.\n     */\n    function getFeeRecipients(uint256 tokenId) external view virtual override returns (address payable[] memory) {\n        return _getRoyaltyReceivers(tokenId);\n    }\n\n    /**\n     * @dev See {ICreatorCore-getFeeBps}.\n     */\n    function getFeeBps(uint256 tokenId) external view virtual override returns (uint[] memory) {\n        return _getRoyaltyBPS(tokenId);\n    }\n    \n    /**\n     * @dev See {ICreatorCore-royaltyInfo}.\n     */\n    function royaltyInfo(uint256 tokenId, uint256 value) external view virtual override returns (address, uint256) {\n        return _getRoyaltyInfo(tokenId, value);\n    } \n\n    /**\n     * @dev See {IERC1155MetadataURI-uri}.\n     */\n    function uri(uint256 tokenId) public view virtual override returns (string memory) {\n        return _tokenURI(tokenId);\n    }\n    \n    /**\n     * @dev Total amount of tokens in with a given id.\n     */\n    function totalSupply(uint256 tokenId) external view virtual override returns (uint256) {\n        return _totalSupply[tokenId];\n    }\n\n    /**\n     * @dev See {ERC1155-_mint}.\n     */\n    function _mint(address account, uint256 id, uint256 amount, bytes memory data) internal virtual override {\n        super._mint(account, id, amount, data);\n        _totalSupply[id] += amount;\n    }\n\n    /**\n     * @dev See {ERC1155-_mintBatch}.\n     */\n    function _mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual override {\n        super._mintBatch(to, ids, amounts, data);\n        for (uint i; i < ids.length;) {\n            _totalSupply[ids[i]] += amounts[i];\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ERC1155-_burn}.\n     */\n    function _burn(address account, uint256 id, uint256 amount) internal virtual override {\n        super._burn(account, id, amount);\n        _totalSupply[id] -= amount;\n    }\n\n    /**\n     * @dev See {ERC1155-_burnBatch}.\n     */\n    function _burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) internal virtual override {\n        super._burnBatch(account, ids, amounts);\n        for (uint i; i < ids.length;) {\n            _totalSupply[ids[i]] -= amounts[i];\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setApproveTransfer}.\n     */\n    function setApproveTransfer(address extension) external override adminRequired {\n        _setApproveTransferBase(extension);\n    }\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/ERC1155Creator.sol",
  "ast": {
    "absolutePath": "project:/contracts/ERC1155Creator.sol",
    "exportedSymbols": {
      "Address": [
        1911
      ],
      "AddressUpgradeable": [
        1002
      ],
      "AdminControl": [
        185
      ],
      "Context": [
        1933
      ],
      "CreatorCore": [
        13473
      ],
      "ERC1155Base": [
        18521
      ],
      "ERC1155Core": [
        19726
      ],
      "ERC1155Creator": [
        5315
      ],
      "ERC1155CreatorCore": [
        13854
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155": [
        1333
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC1155CreatorExtensionApproveTransfer": [
        16055
      ],
      "IERC1155CreatorExtensionBurnable": [
        16074
      ],
      "IERC1155CreatorMintPermissions": [
        18396
      ],
      "IERC1155MetadataURI": [
        1389
      ],
      "IERC1155Receiver": [
        1374
      ],
      "IERC165": [
        2338
      ],
      "Math": [
        3203
      ],
      "Ownable": [
        1157
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 5316,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3818,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:24"
      },
      {
        "absolutePath": "@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol",
        "file": "@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol",
        "id": 3819,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5316,
        "sourceUnit": 186,
        "src": "85:75:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/ERC1155CreatorCore.sol",
        "file": "./core/ERC1155CreatorCore.sol",
        "id": 3820,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5316,
        "sourceUnit": 13855,
        "src": "162:39:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/ERC1155/ERC1155Base.sol",
        "file": "./token/ERC1155/ERC1155Base.sol",
        "id": 3821,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5316,
        "sourceUnit": 18522,
        "src": "202:41:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 3823,
              "name": "AdminControl",
              "nameLocations": [
                "318:12:24"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 185,
              "src": "318:12:24"
            },
            "id": 3824,
            "nodeType": "InheritanceSpecifier",
            "src": "318:12:24"
          },
          {
            "baseName": {
              "id": 3825,
              "name": "ERC1155Base",
              "nameLocations": [
                "332:11:24"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 18521,
              "src": "332:11:24"
            },
            "id": 3826,
            "nodeType": "InheritanceSpecifier",
            "src": "332:11:24"
          },
          {
            "baseName": {
              "id": 3827,
              "name": "ERC1155CreatorCore",
              "nameLocations": [
                "345:18:24"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 13854,
              "src": "345:18:24"
            },
            "id": 3828,
            "nodeType": "InheritanceSpecifier",
            "src": "345:18:24"
          }
        ],
        "canonicalName": "ERC1155Creator",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 3822,
          "nodeType": "StructuredDocumentation",
          "src": "245:45:24",
          "text": " @dev ERC1155Creator implementation"
        },
        "fullyImplemented": true,
        "id": 5315,
        "linearizedBaseContracts": [
          5315,
          13854,
          15282,
          13473,
          18521,
          19726,
          1389,
          1333,
          185,
          2132,
          15197,
          417,
          2338,
          1211,
          1157,
          1933
        ],
        "name": "ERC1155Creator",
        "nameLocation": "300:14:24",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 3832,
            "libraryName": {
              "id": 3829,
              "name": "EnumerableSet",
              "nameLocations": [
                "376:13:24"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3816,
              "src": "376:13:24"
            },
            "nodeType": "UsingForDirective",
            "src": "370:49:24",
            "typeName": {
              "id": 3831,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 3830,
                "name": "EnumerableSet.AddressSet",
                "nameLocations": [
                  "394:13:24",
                  "408:10:24"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 3529,
                "src": "394:24:24"
              },
              "referencedDeclaration": 3529,
              "src": "394:24:24",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AddressSet_$3529_storage_ptr",
                "typeString": "struct EnumerableSet.AddressSet"
              }
            }
          },
          {
            "constant": false,
            "id": 3836,
            "mutability": "mutable",
            "name": "_totalSupply",
            "nameLocation": "461:12:24",
            "nodeType": "VariableDeclaration",
            "scope": 5315,
            "src": "425:48:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 3835,
              "keyName": "",
              "keyNameLocation": "-1:-1:-1",
              "keyType": {
                "id": 3833,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "433:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "425:27:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 3834,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "444:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 3847,
              "nodeType": "Block",
              "src": "565:2:24",
              "statements": []
            },
            "id": 3848,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 3843,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3838,
                    "src": "549:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "id": 3844,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3840,
                    "src": "556:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 3845,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 3842,
                  "name": "ERC1155Base",
                  "nameLocations": [
                    "537:11:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 18521,
                  "src": "537:11:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "537:27:24"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3841,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3838,
                  "mutability": "mutable",
                  "name": "_name",
                  "nameLocation": "507:5:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3848,
                  "src": "493:19:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3837,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "493:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3840,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "528:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3848,
                  "src": "514:21:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3839,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "514:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "492:44:24"
            },
            "returnParameters": {
              "id": 3846,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "565:0:24"
            },
            "scope": 5315,
            "src": "480:87:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              42,
              13529,
              18586
            ],
            "body": {
              "id": 3875,
              "nodeType": "Block",
              "src": "772:166:24",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 3868,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 3862,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3851,
                            "src": "826:11:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 3860,
                            "name": "ERC1155CreatorCore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13854,
                            "src": "789:18:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC1155CreatorCore_$13854_$",
                              "typeString": "type(contract ERC1155CreatorCore)"
                            }
                          },
                          "id": 3861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "808:17:24",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13529,
                          "src": "789:36:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 3863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "789:49:24",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 3866,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3851,
                            "src": "872:11:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 3864,
                            "name": "ERC1155Core",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19726,
                            "src": "842:11:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC1155Core_$19726_$",
                              "typeString": "type(contract ERC1155Core)"
                            }
                          },
                          "id": 3865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "854:17:24",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18586,
                          "src": "842:29:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 3867,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "842:42:24",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "789:95:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 3871,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3851,
                          "src": "919:11:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 3869,
                          "name": "AdminControl",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 185,
                          "src": "888:12:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_AdminControl_$185_$",
                            "typeString": "type(contract AdminControl)"
                          }
                        },
                        "id": 3870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "901:17:24",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 42,
                        "src": "888:30:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 3872,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "888:43:24",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "789:142:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3859,
                  "id": 3874,
                  "nodeType": "Return",
                  "src": "782:149:24"
                }
              ]
            },
            "documentation": {
              "id": 3849,
              "nodeType": "StructuredDocumentation",
              "src": "573:56:24",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 3876,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "643:17:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3856,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 3853,
                  "name": "ERC1155Core",
                  "nameLocations": [
                    "710:11:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19726,
                  "src": "710:11:24"
                },
                {
                  "id": 3854,
                  "name": "ERC1155CreatorCore",
                  "nameLocations": [
                    "723:18:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13854,
                  "src": "723:18:24"
                },
                {
                  "id": 3855,
                  "name": "AdminControl",
                  "nameLocations": [
                    "743:12:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 185,
                  "src": "743:12:24"
                }
              ],
              "src": "701:55:24"
            },
            "parameters": {
              "id": 3852,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3851,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "668:11:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3876,
                  "src": "661:18:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 3850,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "661:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "660:20:24"
            },
            "returnParameters": {
              "id": 3859,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3858,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3876,
                  "src": "766:4:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3857,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "766:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "765:6:24"
            },
            "scope": 5315,
            "src": "634:304:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              19550
            ],
            "body": {
              "id": 3901,
              "nodeType": "Block",
              "src": "1097:57:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3895,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3880,
                        "src": "1124:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 3896,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3882,
                        "src": "1130:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 3897,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3885,
                        "src": "1134:3:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 3898,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3888,
                        "src": "1139:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      ],
                      "id": 3894,
                      "name": "_approveTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13840,
                      "src": "1107:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory)"
                      }
                    },
                    "id": 3899,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1107:40:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3900,
                  "nodeType": "ExpressionStatement",
                  "src": "1107:40:24"
                }
              ]
            },
            "id": 3902,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "953:20:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3892,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1088:8:24"
            },
            "parameters": {
              "id": 3891,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3878,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3902,
                  "src": "974:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3877,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "974:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3880,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "991:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3902,
                  "src": "983:12:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3879,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3882,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1005:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3902,
                  "src": "997:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3881,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "997:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3885,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "1026:3:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3902,
                  "src": "1009:20:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3883,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1009:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3884,
                    "nodeType": "ArrayTypeName",
                    "src": "1009:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3888,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1048:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3902,
                  "src": "1031:24:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3886,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1031:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3887,
                    "nodeType": "ArrayTypeName",
                    "src": "1031:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3890,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3902,
                  "src": "1057:12:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3889,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "973:97:24"
            },
            "returnParameters": {
              "id": 3893,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1097:0:24"
            },
            "scope": 5315,
            "src": "944:210:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              14988
            ],
            "body": {
              "id": 3923,
              "nodeType": "Block",
              "src": "1329:102:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3914,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3905,
                        "src": "1359:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3913,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1339:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 3915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1339:30:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3916,
                  "nodeType": "ExpressionStatement",
                  "src": "1339:30:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3918,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3905,
                        "src": "1398:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 3919,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3907,
                        "src": "1409:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 3920,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1418:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3917,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12664,
                      "src": "1379:18:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 3921,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1379:45:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3922,
                  "nodeType": "ExpressionStatement",
                  "src": "1379:45:24"
                }
              ]
            },
            "documentation": {
              "id": 3903,
              "nodeType": "StructuredDocumentation",
              "src": "1160:61:24",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3071a0f9",
            "id": 3924,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 3911,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 3910,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1315:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "1315:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "1315:13:24"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1235:17:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3909,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1306:8:24"
            },
            "parameters": {
              "id": 3908,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3905,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1261:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3924,
                  "src": "1253:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3904,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1253:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3907,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1288:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3924,
                  "src": "1272:23:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3906,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1272:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1252:44:24"
            },
            "returnParameters": {
              "id": 3912,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1329:0:24"
            },
            "scope": 5315,
            "src": "1226:205:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              14998
            ],
            "body": {
              "id": 3947,
              "nodeType": "Block",
              "src": "1629:113:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3938,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3927,
                        "src": "1659:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3937,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1639:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 3939,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1639:30:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3940,
                  "nodeType": "ExpressionStatement",
                  "src": "1639:30:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3942,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3927,
                        "src": "1698:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 3943,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3929,
                        "src": "1709:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 3944,
                        "name": "baseURIIdentical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3931,
                        "src": "1718:16:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3941,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12664,
                      "src": "1679:18:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 3945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1679:56:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3946,
                  "nodeType": "ExpressionStatement",
                  "src": "1679:56:24"
                }
              ]
            },
            "documentation": {
              "id": 3925,
              "nodeType": "StructuredDocumentation",
              "src": "1437:61:24",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3f0f37f6",
            "id": 3948,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 3935,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 3934,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1615:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "1615:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "1615:13:24"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1512:17:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3933,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1606:8:24"
            },
            "parameters": {
              "id": 3932,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3927,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1538:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3948,
                  "src": "1530:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3926,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1530:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3929,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1565:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3948,
                  "src": "1549:23:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3928,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1549:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3931,
                  "mutability": "mutable",
                  "name": "baseURIIdentical",
                  "nameLocation": "1579:16:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3948,
                  "src": "1574:21:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3930,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1574:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1529:67:24"
            },
            "returnParameters": {
              "id": 3936,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1629:0:24"
            },
            "scope": 5315,
            "src": "1503:239:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15004
            ],
            "body": {
              "id": 3961,
              "nodeType": "Block",
              "src": "1897:48:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3958,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3951,
                        "src": "1928:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3957,
                      "name": "_unregisterExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12708,
                      "src": "1907:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 3959,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1907:31:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3960,
                  "nodeType": "ExpressionStatement",
                  "src": "1907:31:24"
                }
              ]
            },
            "documentation": {
              "id": 3949,
              "nodeType": "StructuredDocumentation",
              "src": "1749:63:24",
              "text": " @dev See {ICreatorCore-unregisterExtension}."
            },
            "functionSelector": "ce8aee9d",
            "id": 3962,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 3955,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 3954,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1883:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "1883:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "1883:13:24"
              }
            ],
            "name": "unregisterExtension",
            "nameLocation": "1826:19:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3953,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1874:8:24"
            },
            "parameters": {
              "id": 3952,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3951,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1854:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3962,
                  "src": "1846:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3950,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1846:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1845:19:24"
            },
            "returnParameters": {
              "id": 3956,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1897:0:24"
            },
            "scope": 5315,
            "src": "1817:128:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15010
            ],
            "body": {
              "id": 3975,
              "nodeType": "Block",
              "src": "2097:47:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3972,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3965,
                        "src": "2127:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 3971,
                      "name": "_blacklistExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12769,
                      "src": "2107:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 3973,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2107:30:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3974,
                  "nodeType": "ExpressionStatement",
                  "src": "2107:30:24"
                }
              ]
            },
            "documentation": {
              "id": 3963,
              "nodeType": "StructuredDocumentation",
              "src": "1951:62:24",
              "text": " @dev See {ICreatorCore-blacklistExtension}."
            },
            "functionSelector": "02e7afb7",
            "id": 3976,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 3969,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 3968,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2083:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "2083:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "2083:13:24"
              }
            ],
            "name": "blacklistExtension",
            "nameLocation": "2027:18:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3967,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2074:8:24"
            },
            "parameters": {
              "id": 3966,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3965,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2054:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3976,
                  "src": "2046:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3964,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2046:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2045:19:24"
            },
            "returnParameters": {
              "id": 3970,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2097:0:24"
            },
            "scope": 5315,
            "src": "2018:126:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15016
            ],
            "body": {
              "id": 3991,
              "nodeType": "Block",
              "src": "2297:83:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 3983,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2307:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 3984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2307:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3985,
                  "nodeType": "ExpressionStatement",
                  "src": "2307:18:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 3987,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3979,
                        "src": "2361:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 3988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2367:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3986,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2335:25:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 3989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2335:38:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3990,
                  "nodeType": "ExpressionStatement",
                  "src": "2335:38:24"
                }
              ]
            },
            "documentation": {
              "id": 3977,
              "nodeType": "StructuredDocumentation",
              "src": "2150:68:24",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "3e6134b8",
            "id": 3992,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2232:24:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3981,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2288:8:24"
            },
            "parameters": {
              "id": 3980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3979,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "2273:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 3992,
                  "src": "2257:20:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3978,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2257:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2256:22:24"
            },
            "returnParameters": {
              "id": 3982,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2297:0:24"
            },
            "scope": 5315,
            "src": "2223:157:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15024
            ],
            "body": {
              "id": 4009,
              "nodeType": "Block",
              "src": "2549:87:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4001,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2559:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 4002,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2559:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4003,
                  "nodeType": "ExpressionStatement",
                  "src": "2559:18:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4005,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3995,
                        "src": "2613:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 4006,
                        "name": "identical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3997,
                        "src": "2619:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4004,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2587:25:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 4007,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2587:42:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4008,
                  "nodeType": "ExpressionStatement",
                  "src": "2587:42:24"
                }
              ]
            },
            "documentation": {
              "id": 3993,
              "nodeType": "StructuredDocumentation",
              "src": "2386:68:24",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "82dcc0c8",
            "id": 4010,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2468:24:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3999,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2540:8:24"
            },
            "parameters": {
              "id": 3998,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3995,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "2509:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4010,
                  "src": "2493:20:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3994,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2493:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3997,
                  "mutability": "mutable",
                  "name": "identical",
                  "nameLocation": "2520:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4010,
                  "src": "2515:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3996,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2515:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2492:38:24"
            },
            "returnParameters": {
              "id": 4000,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2549:0:24"
            },
            "scope": 5315,
            "src": "2459:177:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15030
            ],
            "body": {
              "id": 4024,
              "nodeType": "Block",
              "src": "2795:80:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4017,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2805:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 4018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2805:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4019,
                  "nodeType": "ExpressionStatement",
                  "src": "2805:18:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4021,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4013,
                        "src": "2861:6:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 4020,
                      "name": "_setTokenURIPrefixExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12806,
                      "src": "2833:27:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 4022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2833:35:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4023,
                  "nodeType": "ExpressionStatement",
                  "src": "2833:35:24"
                }
              ]
            },
            "documentation": {
              "id": 4011,
              "nodeType": "StructuredDocumentation",
              "src": "2642:70:24",
              "text": " @dev See {ICreatorCore-setTokenURIPrefixExtension}."
            },
            "functionSelector": "66d1e9d0",
            "id": 4025,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIPrefixExtension",
            "nameLocation": "2726:26:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4015,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2786:8:24"
            },
            "parameters": {
              "id": 4014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4013,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "2769:6:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4025,
                  "src": "2753:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4012,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2753:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2752:24:24"
            },
            "returnParameters": {
              "id": 4016,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2795:0:24"
            },
            "scope": 5315,
            "src": "2717:158:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15038
            ],
            "body": {
              "id": 4042,
              "nodeType": "Block",
              "src": "3037:81:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4034,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3047:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 4035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3047:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4036,
                  "nodeType": "ExpressionStatement",
                  "src": "3047:18:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4038,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4028,
                        "src": "3097:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 4039,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4030,
                        "src": "3106:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 4037,
                      "name": "_setTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12831,
                      "src": "3075:21:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 4040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3075:36:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4041,
                  "nodeType": "ExpressionStatement",
                  "src": "3075:36:24"
                }
              ]
            },
            "documentation": {
              "id": 4026,
              "nodeType": "StructuredDocumentation",
              "src": "2881:64:24",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "e92a89f6",
            "id": 4043,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "2959:20:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4032,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3028:8:24"
            },
            "parameters": {
              "id": 4031,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4028,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "2988:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4043,
                  "src": "2980:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4027,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4030,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "3013:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4043,
                  "src": "2997:20:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4029,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2997:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2979:39:24"
            },
            "returnParameters": {
              "id": 4033,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3037:0:24"
            },
            "scope": 5315,
            "src": "2950:168:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15048
            ],
            "body": {
              "id": 4088,
              "nodeType": "Block",
              "src": "3294:244:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4054,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3304:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 4055,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3304:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4056,
                  "nodeType": "ExpressionStatement",
                  "src": "3304:18:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4058,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4047,
                            "src": "3340:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4059,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3349:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3340:15:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 4060,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4050,
                            "src": "3359:4:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 4061,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3364:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3359:11:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3340:30:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 4063,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3372:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 4057,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3332:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3332:56:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4065,
                  "nodeType": "ExpressionStatement",
                  "src": "3332:56:24"
                },
                {
                  "body": {
                    "id": 4086,
                    "nodeType": "Block",
                    "src": "3433:99:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 4074,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4047,
                                "src": "3469:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4076,
                              "indexExpression": {
                                "id": 4075,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4067,
                                "src": "3478:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3469:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4077,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4050,
                                "src": "3482:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 4079,
                              "indexExpression": {
                                "id": 4078,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4067,
                                "src": "3487:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3482:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 4073,
                            "name": "_setTokenURIExtension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12831,
                            "src": "3447:21:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 4080,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3447:43:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4081,
                        "nodeType": "ExpressionStatement",
                        "src": "3447:43:24"
                      },
                      {
                        "id": 4085,
                        "nodeType": "UncheckedBlock",
                        "src": "3504:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 4083,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "3516:3:24",
                              "subExpression": {
                                "id": 4082,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4067,
                                "src": "3518:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4084,
                            "nodeType": "ExpressionStatement",
                            "src": "3516:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4072,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4069,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4067,
                      "src": "3411:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4070,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4047,
                        "src": "3415:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 4071,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3424:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3415:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3411:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4087,
                  "initializationExpression": {
                    "assignments": [
                      4067
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4067,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3408:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 4087,
                        "src": "3403:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4066,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3403:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4068,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3403:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "3398:134:24"
                }
              ]
            },
            "documentation": {
              "id": 4044,
              "nodeType": "StructuredDocumentation",
              "src": "3124:64:24",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "61e5bc6b",
            "id": 4089,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3202:20:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4052,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3285:8:24"
            },
            "parameters": {
              "id": 4051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4047,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "3242:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4089,
                  "src": "3223:27:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4045,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3223:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4046,
                    "nodeType": "ArrayTypeName",
                    "src": "3223:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4050,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "3270:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4089,
                  "src": "3252:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4048,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "3252:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 4049,
                    "nodeType": "ArrayTypeName",
                    "src": "3252:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3222:53:24"
            },
            "returnParameters": {
              "id": 4053,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3294:0:24"
            },
            "scope": 5315,
            "src": "3193:345:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15054
            ],
            "body": {
              "id": 4102,
              "nodeType": "Block",
              "src": "3687:39:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4099,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4092,
                        "src": "3714:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 4098,
                      "name": "_setBaseTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12847,
                      "src": "3697:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 4100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3697:22:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4101,
                  "nodeType": "ExpressionStatement",
                  "src": "3697:22:24"
                }
              ]
            },
            "documentation": {
              "id": 4090,
              "nodeType": "StructuredDocumentation",
              "src": "3544:59:24",
              "text": " @dev See {ICreatorCore-setBaseTokenURI}."
            },
            "functionSelector": "30176e13",
            "id": 4103,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4096,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4095,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3673:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "3673:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "3673:13:24"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "3617:15:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4094,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3664:8:24"
            },
            "parameters": {
              "id": 4093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4092,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "3649:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4103,
                  "src": "3633:20:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4091,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3633:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3632:22:24"
            },
            "returnParameters": {
              "id": 4097,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3687:0:24"
            },
            "scope": 5315,
            "src": "3608:118:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15060
            ],
            "body": {
              "id": 4116,
              "nodeType": "Block",
              "src": "3881:43:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4113,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4106,
                        "src": "3910:6:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 4112,
                      "name": "_setTokenURIPrefix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12863,
                      "src": "3891:18:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 4114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3891:26:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4115,
                  "nodeType": "ExpressionStatement",
                  "src": "3891:26:24"
                }
              ]
            },
            "documentation": {
              "id": 4104,
              "nodeType": "StructuredDocumentation",
              "src": "3732:61:24",
              "text": " @dev See {ICreatorCore-setTokenURIPrefix}."
            },
            "functionSelector": "99e0dd7c",
            "id": 4117,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4110,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4109,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3867:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "3867:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "3867:13:24"
              }
            ],
            "name": "setTokenURIPrefix",
            "nameLocation": "3807:17:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4108,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3858:8:24"
            },
            "parameters": {
              "id": 4107,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4106,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "3841:6:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4117,
                  "src": "3825:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4105,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3825:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3824:24:24"
            },
            "returnParameters": {
              "id": 4111,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3881:0:24"
            },
            "scope": 5315,
            "src": "3798:126:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15068
            ],
            "body": {
              "id": 4133,
              "nodeType": "Block",
              "src": "4082:44:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4129,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4120,
                        "src": "4105:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 4130,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4122,
                        "src": "4114:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 4128,
                      "name": "_setTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12898,
                      "src": "4092:12:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 4131,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4092:27:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4132,
                  "nodeType": "ExpressionStatement",
                  "src": "4092:27:24"
                }
              ]
            },
            "documentation": {
              "id": 4118,
              "nodeType": "StructuredDocumentation",
              "src": "3930:55:24",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "162094c4",
            "id": 4134,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4126,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4125,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4068:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "4068:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "4068:13:24"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "3999:11:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4124,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4059:8:24"
            },
            "parameters": {
              "id": 4123,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4120,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4019:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4134,
                  "src": "4011:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4119,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4011:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4122,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "4044:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4134,
                  "src": "4028:20:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4121,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4028:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4010:39:24"
            },
            "returnParameters": {
              "id": 4127,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4082:0:24"
            },
            "scope": 5315,
            "src": "3990:136:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15078
            ],
            "body": {
              "id": 4178,
              "nodeType": "Block",
              "src": "4298:207:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4152,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4148,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4138,
                            "src": "4316:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4149,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4325:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4316:15:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 4150,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4141,
                            "src": "4335:4:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 4151,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4340:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4335:11:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4316:30:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 4153,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4348:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 4147,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4308:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4154,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4308:56:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4155,
                  "nodeType": "ExpressionStatement",
                  "src": "4308:56:24"
                },
                {
                  "body": {
                    "id": 4176,
                    "nodeType": "Block",
                    "src": "4409:90:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 4164,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4138,
                                "src": "4436:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4166,
                              "indexExpression": {
                                "id": 4165,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4157,
                                "src": "4445:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4436:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4167,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4141,
                                "src": "4449:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 4169,
                              "indexExpression": {
                                "id": 4168,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4157,
                                "src": "4454:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4449:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 4163,
                            "name": "_setTokenURI",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12898,
                            "src": "4423:12:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 4170,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4423:34:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4171,
                        "nodeType": "ExpressionStatement",
                        "src": "4423:34:24"
                      },
                      {
                        "id": 4175,
                        "nodeType": "UncheckedBlock",
                        "src": "4471:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 4173,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "4483:3:24",
                              "subExpression": {
                                "id": 4172,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4157,
                                "src": "4485:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4174,
                            "nodeType": "ExpressionStatement",
                            "src": "4483:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4159,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4157,
                      "src": "4387:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4160,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4138,
                        "src": "4391:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 4161,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4400:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4391:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4387:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4177,
                  "initializationExpression": {
                    "assignments": [
                      4157
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4157,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4384:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 4177,
                        "src": "4379:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4156,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4379:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4158,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4379:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "4374:125:24"
                }
              ]
            },
            "documentation": {
              "id": 4135,
              "nodeType": "StructuredDocumentation",
              "src": "4132:55:24",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "aafb2d44",
            "id": 4179,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4145,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4144,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4284:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "4284:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "4284:13:24"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4201:11:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4143,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4275:8:24"
            },
            "parameters": {
              "id": 4142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4138,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "4232:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4179,
                  "src": "4213:27:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4136,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4213:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4137,
                    "nodeType": "ArrayTypeName",
                    "src": "4213:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4141,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4260:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4179,
                  "src": "4242:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4139,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4242:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 4140,
                    "nodeType": "ArrayTypeName",
                    "src": "4242:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4212:53:24"
            },
            "returnParameters": {
              "id": 4146,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4298:0:24"
            },
            "scope": 5315,
            "src": "4192:313:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15086
            ],
            "body": {
              "id": 4195,
              "nodeType": "Block",
              "src": "4678:60:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4191,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4182,
                        "src": "4708:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4192,
                        "name": "permissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4184,
                        "src": "4719:11:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 4190,
                      "name": "_setMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13616,
                      "src": "4688:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 4193,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4688:43:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4194,
                  "nodeType": "ExpressionStatement",
                  "src": "4688:43:24"
                }
              ]
            },
            "documentation": {
              "id": 4180,
              "nodeType": "StructuredDocumentation",
              "src": "4511:62:24",
              "text": " @dev See {ICreatorCore-setMintPermissions}."
            },
            "functionSelector": "f0cdc499",
            "id": 4196,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4188,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4187,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4664:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "4664:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "4664:13:24"
              }
            ],
            "name": "setMintPermissions",
            "nameLocation": "4587:18:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4186,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4655:8:24"
            },
            "parameters": {
              "id": 4185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4182,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "4614:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4196,
                  "src": "4606:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4181,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4606:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4184,
                  "mutability": "mutable",
                  "name": "permissions",
                  "nameLocation": "4633:11:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4196,
                  "src": "4625:19:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4625:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4605:40:24"
            },
            "returnParameters": {
              "id": 4189,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4678:0:24"
            },
            "scope": 5315,
            "src": "4578:160:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15219
            ],
            "body": {
              "id": 4227,
              "nodeType": "Block",
              "src": "4984:63:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 4220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5018:1:24",
                            "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": 4219,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5010:7:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 4218,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5010:7:24",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4221,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5010:10:24",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4222,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4200,
                        "src": "5022:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 4223,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4203,
                        "src": "5026:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 4224,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4206,
                        "src": "5035:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "id": 4217,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4655,
                      "src": "5001:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 4225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5001:39:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 4216,
                  "id": 4226,
                  "nodeType": "Return",
                  "src": "4994:46:24"
                }
              ]
            },
            "documentation": {
              "id": 4197,
              "nodeType": "StructuredDocumentation",
              "src": "4744:62:24",
              "text": " @dev See {IERC1155CreatorCore-mintBaseNew}."
            },
            "functionSelector": "feeb5a9a",
            "id": 4228,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4210,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4209,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "4931:12:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "4931:12:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "4931:12:24"
              },
              {
                "id": 4212,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4211,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4944:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "4944:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "4944:13:24"
              }
            ],
            "name": "mintBaseNew",
            "nameLocation": "4820:11:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4208,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4922:8:24"
            },
            "parameters": {
              "id": 4207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4200,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "4851:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4228,
                  "src": "4832:21:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4198,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4832:7:24",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4199,
                    "nodeType": "ArrayTypeName",
                    "src": "4832:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4203,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "4874:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4228,
                  "src": "4855:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4201,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4855:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4202,
                    "nodeType": "ArrayTypeName",
                    "src": "4855:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4206,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4901:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4228,
                  "src": "4883:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4204,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4883:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 4205,
                    "nodeType": "ArrayTypeName",
                    "src": "4883:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4831:75:24"
            },
            "returnParameters": {
              "id": 4216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4215,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4228,
                  "src": "4966:16:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4213,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4966:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4214,
                    "nodeType": "ArrayTypeName",
                    "src": "4966:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4965:18:24"
            },
            "scope": 5315,
            "src": "4811:236:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15232
            ],
            "body": {
              "id": 4298,
              "nodeType": "Block",
              "src": "5282:362:24",
              "statements": [
                {
                  "body": {
                    "id": 4286,
                    "nodeType": "Block",
                    "src": "5327:253:24",
                    "statements": [
                      {
                        "assignments": [
                          4254
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4254,
                            "mutability": "mutable",
                            "name": "tokenId",
                            "nameLocation": "5349:7:24",
                            "nodeType": "VariableDeclaration",
                            "scope": 4286,
                            "src": "5341:15:24",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4253,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5341:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 4258,
                        "initialValue": {
                          "baseExpression": {
                            "id": 4255,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4235,
                            "src": "5359:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4257,
                          "indexExpression": {
                            "id": 4256,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4247,
                            "src": "5368:1:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5359:11:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5341:29:24"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 4266,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4262,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 4260,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4254,
                                  "src": "5392:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 4261,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5402:1:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "5392:11:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4265,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 4263,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4254,
                                  "src": "5407:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "id": 4264,
                                  "name": "_tokenCount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12432,
                                  "src": "5418:11:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5407:22:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "5392:37:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420746f6b656e",
                              "id": 4267,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5431:15:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6",
                                "typeString": "literal_string \"Invalid token\""
                              },
                              "value": "Invalid token"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6",
                                "typeString": "literal_string \"Invalid token\""
                              }
                            ],
                            "id": 4259,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "5384:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4268,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5384:63:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4269,
                        "nodeType": "ExpressionStatement",
                        "src": "5384:63:24"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 4278,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 4272,
                                    "name": "tokenId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4254,
                                    "src": "5485:7:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 4271,
                                  "name": "_tokenExtension",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    13853
                                  ],
                                  "referencedDeclaration": 13853,
                                  "src": "5469:15:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                    "typeString": "function (uint256) view returns (address)"
                                  }
                                },
                                "id": 4273,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5469:24:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 4276,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5505:1:24",
                                    "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": 4275,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5497:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 4274,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5497:7:24",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 4277,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5497:10:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "5469:38:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "546f6b656e206372656174656420627920657874656e73696f6e",
                              "id": 4279,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5509:28:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb",
                                "typeString": "literal_string \"Token created by extension\""
                              },
                              "value": "Token created by extension"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb",
                                "typeString": "literal_string \"Token created by extension\""
                              }
                            ],
                            "id": 4270,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "5461:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5461:77:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4281,
                        "nodeType": "ExpressionStatement",
                        "src": "5461:77:24"
                      },
                      {
                        "id": 4285,
                        "nodeType": "UncheckedBlock",
                        "src": "5552:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 4283,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "5564:3:24",
                              "subExpression": {
                                "id": 4282,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4247,
                                "src": "5566:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4284,
                            "nodeType": "ExpressionStatement",
                            "src": "5564:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4249,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4247,
                      "src": "5305:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4250,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4235,
                        "src": "5309:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 4251,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5318:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5309:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5305:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4287,
                  "initializationExpression": {
                    "assignments": [
                      4247
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4247,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5302:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 4287,
                        "src": "5297:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4246,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5297:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4248,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5297:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "5292:288:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 4291,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5611:1:24",
                            "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": 4290,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5603:7:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 4289,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5603:7:24",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4292,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5603:10:24",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4293,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4232,
                        "src": "5615:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 4294,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4235,
                        "src": "5619:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 4295,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4238,
                        "src": "5629:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 4288,
                      "name": "_mintExisting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4869,
                      "src": "5589:13:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 4296,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5589:48:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4297,
                  "nodeType": "ExpressionStatement",
                  "src": "5589:48:24"
                }
              ]
            },
            "documentation": {
              "id": 4229,
              "nodeType": "StructuredDocumentation",
              "src": "5053:67:24",
              "text": " @dev See {IERC1155CreatorCore-mintBaseExisting}."
            },
            "functionSelector": "695c96e6",
            "id": 4299,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4242,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4241,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5255:12:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5255:12:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "5255:12:24"
              },
              {
                "id": 4244,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4243,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5268:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "5268:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "5268:13:24"
              }
            ],
            "name": "mintBaseExisting",
            "nameLocation": "5134:16:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4240,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5246:8:24"
            },
            "parameters": {
              "id": 4239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4232,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5170:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4299,
                  "src": "5151:21:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4230,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5151:7:24",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4231,
                    "nodeType": "ArrayTypeName",
                    "src": "5151:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4235,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5193:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4299,
                  "src": "5174:27:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4233,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5174:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4234,
                    "nodeType": "ArrayTypeName",
                    "src": "5174:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4238,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5222:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4299,
                  "src": "5203:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4236,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5203:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4237,
                    "nodeType": "ArrayTypeName",
                    "src": "5203:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5150:80:24"
            },
            "returnParameters": {
              "id": 4245,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5282:0:24"
            },
            "scope": 5315,
            "src": "5125:519:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15248
            ],
            "body": {
              "id": 4329,
              "nodeType": "Block",
              "src": "5895:91:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4318,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "5905:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 4319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5905:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4320,
                  "nodeType": "ExpressionStatement",
                  "src": "5905:18:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 4322,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "5949:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 4323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5953:6:24",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "5949:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4324,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4303,
                        "src": "5961:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 4325,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4306,
                        "src": "5965:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 4326,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4309,
                        "src": "5974:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "id": 4321,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4655,
                      "src": "5940:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 4327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5940:39:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 4317,
                  "id": 4328,
                  "nodeType": "Return",
                  "src": "5933:46:24"
                }
              ]
            },
            "documentation": {
              "id": 4300,
              "nodeType": "StructuredDocumentation",
              "src": "5650:67:24",
              "text": " @dev See {IERC1155CreatorCore-mintExtensionNew}."
            },
            "functionSelector": "8c6e8472",
            "id": 4330,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4313,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4312,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5847:12:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5847:12:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "5847:12:24"
              }
            ],
            "name": "mintExtensionNew",
            "nameLocation": "5731:16:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4311,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5838:8:24"
            },
            "parameters": {
              "id": 4310,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4303,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5767:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4330,
                  "src": "5748:21:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4301,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5748:7:24",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4302,
                    "nodeType": "ArrayTypeName",
                    "src": "5748:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4306,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5790:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4330,
                  "src": "5771:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4304,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5771:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4305,
                    "nodeType": "ArrayTypeName",
                    "src": "5771:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4309,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "5817:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4330,
                  "src": "5799:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4307,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "5799:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 4308,
                    "nodeType": "ArrayTypeName",
                    "src": "5799:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5747:75:24"
            },
            "returnParameters": {
              "id": 4317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4316,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5885:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4330,
                  "src": "5868:25:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4314,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5868:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4315,
                    "nodeType": "ArrayTypeName",
                    "src": "5868:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5867:27:24"
            },
            "scope": 5315,
            "src": "5722:264:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15261
            ],
            "body": {
              "id": 4385,
              "nodeType": "Block",
              "src": "6217:292:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 4346,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6227:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 4347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6227:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4348,
                  "nodeType": "ExpressionStatement",
                  "src": "6227:18:24"
                },
                {
                  "body": {
                    "id": 4375,
                    "nodeType": "Block",
                    "src": "6290:155:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 4367,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 4358,
                                      "name": "tokenIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4337,
                                      "src": "6328:8:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 4360,
                                    "indexExpression": {
                                      "id": 4359,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4350,
                                      "src": "6337:1:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6328:11:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 4357,
                                  "name": "_tokenExtension",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    13853
                                  ],
                                  "referencedDeclaration": 13853,
                                  "src": "6312:15:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                    "typeString": "function (uint256) view returns (address)"
                                  }
                                },
                                "id": 4361,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6312:28:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 4364,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967281,
                                      "src": "6352:3:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 4365,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6356:6:24",
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "src": "6352:10:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 4363,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6344:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 4362,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6344:7:24",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 4366,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6344:19:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "6312:51:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "546f6b656e206e6f742063726561746564206279207468697320657874656e73696f6e",
                              "id": 4368,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6365:37:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2",
                                "typeString": "literal_string \"Token not created by this extension\""
                              },
                              "value": "Token not created by this extension"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2",
                                "typeString": "literal_string \"Token not created by this extension\""
                              }
                            ],
                            "id": 4356,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "6304:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4369,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6304:99:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4370,
                        "nodeType": "ExpressionStatement",
                        "src": "6304:99:24"
                      },
                      {
                        "id": 4374,
                        "nodeType": "UncheckedBlock",
                        "src": "6417:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 4372,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "6429:3:24",
                              "subExpression": {
                                "id": 4371,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4350,
                                "src": "6431:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4373,
                            "nodeType": "ExpressionStatement",
                            "src": "6429:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4352,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4350,
                      "src": "6268:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4353,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4337,
                        "src": "6272:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 4354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6281:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6272:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6268:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4376,
                  "initializationExpression": {
                    "assignments": [
                      4350
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4350,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6265:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 4376,
                        "src": "6260:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4349,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6260:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4351,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6260:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "6255:190:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 4378,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "6468:3:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 4379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6472:6:24",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6468:10:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4380,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4334,
                        "src": "6480:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 4381,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4337,
                        "src": "6484:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 4382,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4340,
                        "src": "6494:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 4377,
                      "name": "_mintExisting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4869,
                      "src": "6454:13:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 4383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6454:48:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4384,
                  "nodeType": "ExpressionStatement",
                  "src": "6454:48:24"
                }
              ]
            },
            "documentation": {
              "id": 4331,
              "nodeType": "StructuredDocumentation",
              "src": "5992:72:24",
              "text": " @dev See {IERC1155CreatorCore-mintExtensionExisting}."
            },
            "functionSelector": "e6c884dc",
            "id": 4386,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4344,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4343,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6204:12:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6204:12:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "6204:12:24"
              }
            ],
            "name": "mintExtensionExisting",
            "nameLocation": "6078:21:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4342,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6195:8:24"
            },
            "parameters": {
              "id": 4341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4334,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6119:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4386,
                  "src": "6100:21:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4332,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6100:7:24",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4333,
                    "nodeType": "ArrayTypeName",
                    "src": "6100:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4337,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6142:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4386,
                  "src": "6123:27:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4335,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6123:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4336,
                    "nodeType": "ArrayTypeName",
                    "src": "6123:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4340,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6171:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4386,
                  "src": "6152:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4338,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6152:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4339,
                    "nodeType": "ArrayTypeName",
                    "src": "6152:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6099:80:24"
            },
            "returnParameters": {
              "id": 4345,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6217:0:24"
            },
            "scope": 5315,
            "src": "6069:440:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4654,
              "nodeType": "Block",
              "src": "6715:1980:24",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 4404,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4392,
                        "src": "6729:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 4405,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6732:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6729:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 4406,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6741:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "6729:13:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 4460,
                    "nodeType": "Block",
                    "src": "6988:214:24",
                    "statements": [
                      {
                        "expression": {
                          "id": 4444,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 4437,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4402,
                            "src": "7062:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 4441,
                                  "name": "amounts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4395,
                                  "src": "7087:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 4442,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7095:6:24",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "7087:14:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4440,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "7073:13:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (uint256[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 4438,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7077:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 4439,
                                "nodeType": "ArrayTypeName",
                                "src": "7077:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 4443,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7073:29:24",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "7062:40:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 4445,
                        "nodeType": "ExpressionStatement",
                        "src": "7062:40:24"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 4456,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4450,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 4447,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4398,
                                    "src": "7124:4:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 4448,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7129:6:24",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7124:11:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 4449,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7139:1:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "7124:16:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4455,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 4451,
                                    "name": "amounts",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4395,
                                    "src": "7144:7:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 4452,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7152:6:24",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7144:14:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "expression": {
                                    "id": 4453,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4398,
                                    "src": "7162:4:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 4454,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7167:6:24",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7162:11:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7144:29:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "7124:49:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420696e707574",
                              "id": 4457,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7175:15:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              },
                              "value": "Invalid input"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              }
                            ],
                            "id": 4446,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7116:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7116:75:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4459,
                        "nodeType": "ExpressionStatement",
                        "src": "7116:75:24"
                      }
                    ]
                  },
                  "id": 4461,
                  "nodeType": "IfStatement",
                  "src": "6725:477:24",
                  "trueBody": {
                    "id": 4436,
                    "nodeType": "Block",
                    "src": "6744:238:24",
                    "statements": [
                      {
                        "expression": {
                          "id": 4414,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 4408,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4402,
                            "src": "6832:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "hexValue": "31",
                                "id": 4412,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6857:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "id": 4411,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "6843:13:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                                "typeString": "function (uint256) pure returns (uint256[] memory)"
                              },
                              "typeName": {
                                "baseType": {
                                  "id": 4409,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "6847:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 4410,
                                "nodeType": "ArrayTypeName",
                                "src": "6847:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 4413,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6843:16:24",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "6832:27:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 4415,
                        "nodeType": "ExpressionStatement",
                        "src": "6832:27:24"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 4432,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4420,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 4417,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4398,
                                    "src": "6881:4:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 4418,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "6886:6:24",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "6881:11:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 4419,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6896:1:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "6881:16:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "id": 4430,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 4424,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 4421,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4395,
                                          "src": "6902:7:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 4422,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6910:6:24",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "6902:14:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 4423,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "6920:1:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "6902:19:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "||",
                                    "rightExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 4429,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 4425,
                                          "name": "to",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4392,
                                          "src": "6925:2:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 4426,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6928:6:24",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "6925:9:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "expression": {
                                          "id": 4427,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4395,
                                          "src": "6938:7:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 4428,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6946:6:24",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "6938:14:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "6925:27:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "src": "6902:50:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 4431,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "6901:52:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "6881:72:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420696e707574",
                              "id": 4433,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6955:15:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              },
                              "value": "Invalid input"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                "typeString": "literal_string \"Invalid input\""
                              }
                            ],
                            "id": 4416,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "6873:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6873:98:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4435,
                        "nodeType": "ExpressionStatement",
                        "src": "6873:98:24"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 4488,
                    "nodeType": "Block",
                    "src": "7274:220:24",
                    "statements": [
                      {
                        "expression": {
                          "id": 4470,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "7288:13:24",
                          "subExpression": {
                            "id": 4469,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "7290:11:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4471,
                        "nodeType": "ExpressionStatement",
                        "src": "7288:13:24"
                      },
                      {
                        "expression": {
                          "id": 4476,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 4472,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4402,
                              "src": "7315:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 4474,
                            "indexExpression": {
                              "id": 4473,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4463,
                              "src": "7324:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7315:11:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 4475,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "7329:11:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7315:25:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4477,
                        "nodeType": "ExpressionStatement",
                        "src": "7315:25:24"
                      },
                      {
                        "expression": {
                          "id": 4482,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 4478,
                              "name": "_tokensExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13505,
                              "src": "7411:16:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 4480,
                            "indexExpression": {
                              "id": 4479,
                              "name": "_tokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12432,
                              "src": "7428:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7411:29:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 4481,
                            "name": "extension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4389,
                            "src": "7443:9:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "7411:41:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 4483,
                        "nodeType": "ExpressionStatement",
                        "src": "7411:41:24"
                      },
                      {
                        "id": 4487,
                        "nodeType": "UncheckedBlock",
                        "src": "7466:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 4485,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "7478:3:24",
                              "subExpression": {
                                "id": 4484,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4463,
                                "src": "7480:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4486,
                            "nodeType": "ExpressionStatement",
                            "src": "7478:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4468,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4465,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4463,
                      "src": "7252:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4466,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4402,
                        "src": "7256:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 4467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7265:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "7256:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7252:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4489,
                  "initializationExpression": {
                    "assignments": [
                      4463
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4463,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7249:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 4489,
                        "src": "7244:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4462,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7244:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4464,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7244:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "7239:255:24"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 4495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4490,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4389,
                      "src": "7508:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 4493,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7529:1:24",
                          "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": 4492,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7521:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 4491,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7521:7:24",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 4494,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7521:10:24",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7508:23:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4503,
                  "nodeType": "IfStatement",
                  "src": "7504:98:24",
                  "trueBody": {
                    "id": 4502,
                    "nodeType": "Block",
                    "src": "7533:69:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 4497,
                              "name": "to",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4392,
                              "src": "7569:2:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            {
                              "id": 4498,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4402,
                              "src": "7573:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "id": 4499,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4395,
                              "src": "7583:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 4496,
                            "name": "_checkMintPermissions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13655,
                            "src": "7547:21:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address[] memory,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 4500,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7547:44:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4501,
                        "nodeType": "ExpressionStatement",
                        "src": "7547:44:24"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4512,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 4504,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4392,
                          "src": "7616:2:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                            "typeString": "address[] calldata"
                          }
                        },
                        "id": 4505,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7619:6:24",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7616:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 4506,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7629:1:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7616:14:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4511,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 4508,
                          "name": "tokenIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4402,
                          "src": "7634:8:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 4509,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7643:6:24",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7634:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 4510,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7653:1:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7634:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7616:38:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 4530,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4392,
                          "src": "7767:2:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                            "typeString": "address[] calldata"
                          }
                        },
                        "id": 4531,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7770:6:24",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7767:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 4532,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7779:1:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7767:13:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 4612,
                      "nodeType": "Block",
                      "src": "8398:75:24",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 4601,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4392,
                                  "src": "8423:2:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 4603,
                                "indexExpression": {
                                  "hexValue": "30",
                                  "id": 4602,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8426:1:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8423:5:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 4604,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4402,
                                "src": "8430:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              {
                                "id": 4605,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4395,
                                "src": "8440:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 4608,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8459:1:24",
                                    "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": 4607,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "NewExpression",
                                  "src": "8449:9:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function (uint256) pure returns (bytes memory)"
                                  },
                                  "typeName": {
                                    "id": 4606,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8453:5:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  }
                                },
                                "id": 4609,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8449:12:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 4600,
                              "name": "_mintBatch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                5229
                              ],
                              "referencedDeclaration": 5229,
                              "src": "8412:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                              }
                            },
                            "id": 4610,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8412:50:24",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 4611,
                          "nodeType": "ExpressionStatement",
                          "src": "8412:50:24"
                        }
                      ]
                    },
                    "id": 4613,
                    "nodeType": "IfStatement",
                    "src": "7763:710:24",
                    "trueBody": {
                      "id": 4599,
                      "nodeType": "Block",
                      "src": "7782:610:24",
                      "statements": [
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4537,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 4534,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4395,
                                "src": "7861:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4535,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7869:6:24",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "7861:14:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 4536,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7879:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "7861:19:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 4597,
                            "nodeType": "Block",
                            "src": "8134:248:24",
                            "statements": [
                              {
                                "body": {
                                  "id": 4595,
                                  "nodeType": "Block",
                                  "src": "8237:131:24",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 4576,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4392,
                                              "src": "8265:2:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 4578,
                                            "indexExpression": {
                                              "id": 4577,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4569,
                                              "src": "8268:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8265:5:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 4579,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4402,
                                              "src": "8272:8:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[] memory"
                                              }
                                            },
                                            "id": 4581,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 4580,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8281:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8272:11:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 4582,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4395,
                                              "src": "8285:7:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 4584,
                                            "indexExpression": {
                                              "id": 4583,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4569,
                                              "src": "8293:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8285:10:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 4587,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8307:1:24",
                                                "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": 4586,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "8297:9:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 4585,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8301:5:24",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 4588,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8297:12:24",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 4575,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            5181
                                          ],
                                          "referencedDeclaration": 5181,
                                          "src": "8259:5:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 4589,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8259:51:24",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 4590,
                                      "nodeType": "ExpressionStatement",
                                      "src": "8259:51:24"
                                    },
                                    {
                                      "id": 4594,
                                      "nodeType": "UncheckedBlock",
                                      "src": "8332:18:24",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 4592,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "8344:3:24",
                                            "subExpression": {
                                              "id": 4591,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4569,
                                              "src": "8346:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 4593,
                                          "nodeType": "ExpressionStatement",
                                          "src": "8344:3:24"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4574,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 4571,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4569,
                                    "src": "8221:1:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 4572,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4392,
                                      "src": "8225:2:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 4573,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8228:6:24",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "8225:9:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "8221:13:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 4596,
                                "initializationExpression": {
                                  "assignments": [
                                    4569
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 4569,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "8218:1:24",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 4596,
                                      "src": "8213:6:24",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 4568,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8213:4:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 4570,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "8213:6:24"
                                },
                                "nodeType": "ForStatement",
                                "src": "8208:160:24"
                              }
                            ]
                          },
                          "id": 4598,
                          "nodeType": "IfStatement",
                          "src": "7857:525:24",
                          "trueBody": {
                            "id": 4567,
                            "nodeType": "Block",
                            "src": "7882:246:24",
                            "statements": [
                              {
                                "body": {
                                  "id": 4565,
                                  "nodeType": "Block",
                                  "src": "7983:131:24",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 4546,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4392,
                                              "src": "8011:2:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 4548,
                                            "indexExpression": {
                                              "id": 4547,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4539,
                                              "src": "8014:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8011:5:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 4549,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4402,
                                              "src": "8018:8:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[] memory"
                                              }
                                            },
                                            "id": 4551,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 4550,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8027:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8018:11:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 4552,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4395,
                                              "src": "8031:7:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 4554,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 4553,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8039:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8031:10:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 4557,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8053:1:24",
                                                "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": 4556,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "8043:9:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 4555,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8047:5:24",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 4558,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8043:12:24",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 4545,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            5181
                                          ],
                                          "referencedDeclaration": 5181,
                                          "src": "8005:5:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 4559,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8005:51:24",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 4560,
                                      "nodeType": "ExpressionStatement",
                                      "src": "8005:51:24"
                                    },
                                    {
                                      "id": 4564,
                                      "nodeType": "UncheckedBlock",
                                      "src": "8078:18:24",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 4562,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "8090:3:24",
                                            "subExpression": {
                                              "id": 4561,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4539,
                                              "src": "8092:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 4563,
                                          "nodeType": "ExpressionStatement",
                                          "src": "8090:3:24"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4544,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 4541,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4539,
                                    "src": "7967:1:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 4542,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4392,
                                      "src": "7971:2:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 4543,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7974:6:24",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "7971:9:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "7967:13:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 4566,
                                "initializationExpression": {
                                  "assignments": [
                                    4539
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 4539,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "7964:1:24",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 4566,
                                      "src": "7959:6:24",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 4538,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7959:4:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 4540,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "7959:6:24"
                                },
                                "nodeType": "ForStatement",
                                "src": "7954:160:24"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 4614,
                  "nodeType": "IfStatement",
                  "src": "7612:861:24",
                  "trueBody": {
                    "id": 4529,
                    "nodeType": "Block",
                    "src": "7656:101:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 4514,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4392,
                                "src": "7701:2:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 4516,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4515,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7704:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7701:5:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4517,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4402,
                                "src": "7708:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 4519,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4518,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7717:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7708:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4520,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4395,
                                "src": "7721:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4522,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4521,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7729:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7721:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 4525,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7743:1:24",
                                  "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": 4524,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "7733:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (bytes memory)"
                                },
                                "typeName": {
                                  "id": 4523,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7737:5:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage_ptr",
                                    "typeString": "bytes"
                                  }
                                }
                              },
                              "id": 4526,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7733:12:24",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 4513,
                            "name": "_mint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5181
                            ],
                            "referencedDeclaration": 5181,
                            "src": "7695:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256,uint256,bytes memory)"
                            }
                          },
                          "id": 4527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7695:51:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4528,
                        "nodeType": "ExpressionStatement",
                        "src": "7695:51:24"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 4652,
                    "nodeType": "Block",
                    "src": "8518:171:24",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 4635,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4625,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 4622,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4616,
                              "src": "8536:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "expression": {
                                "id": 4623,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4398,
                                "src": "8540:4:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 4624,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8545:6:24",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8540:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8536:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4634,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 4628,
                                      "name": "uris",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4398,
                                      "src": "8561:4:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "string calldata[] calldata"
                                      }
                                    },
                                    "id": 4630,
                                    "indexExpression": {
                                      "id": 4629,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4616,
                                      "src": "8566:1:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8561:7:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_calldata_ptr",
                                      "typeString": "string calldata"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_calldata_ptr",
                                      "typeString": "string calldata"
                                    }
                                  ],
                                  "id": 4627,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8555:5:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": {
                                    "id": 4626,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8555:5:24",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 4631,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8555:14:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              },
                              "id": 4632,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8570:6:24",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8555:21:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 4633,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8579:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "8555:25:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "8536:44:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4647,
                        "nodeType": "IfStatement",
                        "src": "8532:116:24",
                        "trueBody": {
                          "id": 4646,
                          "nodeType": "Block",
                          "src": "8582:66:24",
                          "statements": [
                            {
                              "expression": {
                                "id": 4644,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 4636,
                                    "name": "_tokenURIs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12456,
                                    "src": "8600:10:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                      "typeString": "mapping(uint256 => string storage ref)"
                                    }
                                  },
                                  "id": 4640,
                                  "indexExpression": {
                                    "baseExpression": {
                                      "id": 4637,
                                      "name": "tokenIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4402,
                                      "src": "8611:8:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                        "typeString": "uint256[] memory"
                                      }
                                    },
                                    "id": 4639,
                                    "indexExpression": {
                                      "id": 4638,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4616,
                                      "src": "8620:1:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8611:11:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "8600:23:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 4641,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4398,
                                    "src": "8626:4:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 4643,
                                  "indexExpression": {
                                    "id": 4642,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4616,
                                    "src": "8631:1:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8626:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  }
                                },
                                "src": "8600:33:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              "id": 4645,
                              "nodeType": "ExpressionStatement",
                              "src": "8600:33:24"
                            }
                          ]
                        }
                      },
                      {
                        "id": 4651,
                        "nodeType": "UncheckedBlock",
                        "src": "8661:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 4649,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "8673:3:24",
                              "subExpression": {
                                "id": 4648,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4616,
                                "src": "8675:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4650,
                            "nodeType": "ExpressionStatement",
                            "src": "8673:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4618,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4616,
                      "src": "8496:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4619,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4402,
                        "src": "8500:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 4620,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8509:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8500:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8496:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4653,
                  "initializationExpression": {
                    "assignments": [
                      4616
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4616,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8493:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 4653,
                        "src": "8488:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4615,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8488:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4617,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8488:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "8483:206:24"
                }
              ]
            },
            "documentation": {
              "id": 4387,
              "nodeType": "StructuredDocumentation",
              "src": "6515:39:24",
              "text": " @dev Mint new tokens"
            },
            "id": 4655,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintNew",
            "nameLocation": "6568:8:24",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4389,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "6585:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4655,
                  "src": "6577:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4388,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6577:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4392,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6615:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4655,
                  "src": "6596:21:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4390,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6596:7:24",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4391,
                    "nodeType": "ArrayTypeName",
                    "src": "6596:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4395,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6638:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4655,
                  "src": "6619:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4393,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6619:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4394,
                    "nodeType": "ArrayTypeName",
                    "src": "6619:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4398,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "6665:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4655,
                  "src": "6647:22:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4396,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "6647:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 4397,
                    "nodeType": "ArrayTypeName",
                    "src": "6647:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6576:94:24"
            },
            "returnParameters": {
              "id": 4403,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4402,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6705:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4655,
                  "src": "6688:25:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4400,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6688:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4401,
                    "nodeType": "ArrayTypeName",
                    "src": "6688:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6687:27:24"
            },
            "scope": 5315,
            "src": "6559:2136:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4868,
              "nodeType": "Block",
              "src": "8881:1489:24",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 4675,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4670,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4658,
                      "src": "8895:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 4673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8916:1:24",
                          "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": 4672,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8908:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 4671,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "8908:7:24",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 4674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8908:10:24",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "8895:23:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4683,
                  "nodeType": "IfStatement",
                  "src": "8891:98:24",
                  "trueBody": {
                    "id": 4682,
                    "nodeType": "Block",
                    "src": "8920:69:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 4677,
                              "name": "to",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4661,
                              "src": "8956:2:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            {
                              "id": 4678,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4664,
                              "src": "8960:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            {
                              "id": 4679,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4667,
                              "src": "8970:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 4676,
                            "name": "_checkMintPermissions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13655,
                            "src": "8934:21:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address[] memory,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 4680,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8934:44:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4681,
                        "nodeType": "ExpressionStatement",
                        "src": "8934:44:24"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 4692,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4684,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4661,
                            "src": "9003:2:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 4685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9006:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9003:9:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 4686,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9016:1:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9003:14:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4691,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4688,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4664,
                            "src": "9021:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9030:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9021:15:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 4690,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9040:1:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9021:20:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "9003:38:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 4693,
                          "name": "amounts",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4667,
                          "src": "9045:7:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                            "typeString": "uint256[] calldata"
                          }
                        },
                        "id": 4694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9053:6:24",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "9045:14:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 4695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9063:1:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "9045:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "9003:61:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 4724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4715,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4661,
                            "src": "9192:2:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 4716,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9195:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9192:9:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 4717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9205:1:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9192:14:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4719,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4664,
                            "src": "9210:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9219:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9210:15:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 4721,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4667,
                            "src": "9229:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4722,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9237:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9229:14:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9210:33:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "9192:51:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4741,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 4738,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4664,
                              "src": "9373:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 4739,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9382:6:24",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "9373:15:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 4740,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9392:1:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "9373:20:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 4742,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4667,
                              "src": "9397:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 4743,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9405:6:24",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "9397:14:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 4744,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9415:1:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "9397:19:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9373:43:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 4786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4780,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 4777,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4664,
                                "src": "9673:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4778,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9682:6:24",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9673:15:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 4779,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9692:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "9673:20:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 4781,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4661,
                                "src": "9697:2:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 4782,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9700:6:24",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9697:9:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 4783,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4667,
                                "src": "9710:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4784,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9718:6:24",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9710:14:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "9697:27:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "9673:51:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 4827,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 4821,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 4817,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4661,
                                  "src": "9992:2:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 4818,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "9995:6:24",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "9992:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 4819,
                                  "name": "tokenIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4664,
                                  "src": "10005:8:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 4820,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10014:6:24",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10005:15:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9992:28:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 4826,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 4822,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4661,
                                  "src": "10024:2:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 4823,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10027:6:24",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10024:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 4824,
                                  "name": "amounts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4667,
                                  "src": "10037:7:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 4825,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10045:6:24",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10037:14:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10024:27:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "9992:59:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 4862,
                            "nodeType": "Block",
                            "src": "10316:48:24",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "hexValue": "496e76616c696420696e707574",
                                      "id": 4859,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "10337:15:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                        "typeString": "literal_string \"Invalid input\""
                                      },
                                      "value": "Invalid input"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                        "typeString": "literal_string \"Invalid input\""
                                      }
                                    ],
                                    "id": 4858,
                                    "name": "revert",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [
                                      4294967277,
                                      4294967277
                                    ],
                                    "referencedDeclaration": 4294967277,
                                    "src": "10330:6:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                      "typeString": "function (string memory) pure"
                                    }
                                  },
                                  "id": 4860,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10330:23:24",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 4861,
                                "nodeType": "ExpressionStatement",
                                "src": "10330:23:24"
                              }
                            ]
                          },
                          "id": 4863,
                          "nodeType": "IfStatement",
                          "src": "9988:376:24",
                          "trueBody": {
                            "id": 4857,
                            "nodeType": "Block",
                            "src": "10053:257:24",
                            "statements": [
                              {
                                "body": {
                                  "id": 4855,
                                  "nodeType": "Block",
                                  "src": "10181:119:24",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 4836,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4661,
                                              "src": "10205:2:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 4838,
                                            "indexExpression": {
                                              "id": 4837,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4829,
                                              "src": "10208:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10205:5:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 4839,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4664,
                                              "src": "10212:8:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 4841,
                                            "indexExpression": {
                                              "id": 4840,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4829,
                                              "src": "10221:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10212:11:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 4842,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4667,
                                              "src": "10225:7:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 4844,
                                            "indexExpression": {
                                              "id": 4843,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4829,
                                              "src": "10233:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10225:10:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 4847,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10247:1:24",
                                                "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": 4846,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "10237:9:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 4845,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10241:5:24",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 4848,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "10237:12:24",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 4835,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            5181
                                          ],
                                          "referencedDeclaration": 5181,
                                          "src": "10199:5:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 4849,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10199:51:24",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 4850,
                                      "nodeType": "ExpressionStatement",
                                      "src": "10199:51:24"
                                    },
                                    {
                                      "id": 4854,
                                      "nodeType": "UncheckedBlock",
                                      "src": "10268:18:24",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 4852,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "10280:3:24",
                                            "subExpression": {
                                              "id": 4851,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4829,
                                              "src": "10282:1:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 4853,
                                          "nodeType": "ExpressionStatement",
                                          "src": "10280:3:24"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4834,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 4831,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4829,
                                    "src": "10165:1:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 4832,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4661,
                                      "src": "10169:2:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 4833,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "10172:6:24",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "10169:9:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "10165:13:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 4856,
                                "initializationExpression": {
                                  "assignments": [
                                    4829
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 4829,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "10162:1:24",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 4856,
                                      "src": "10157:6:24",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 4828,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10157:4:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 4830,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "10157:6:24"
                                },
                                "nodeType": "ForStatement",
                                "src": "10152:148:24"
                              }
                            ]
                          }
                        },
                        "id": 4864,
                        "nodeType": "IfStatement",
                        "src": "9669:695:24",
                        "trueBody": {
                          "id": 4816,
                          "nodeType": "Block",
                          "src": "9726:256:24",
                          "statements": [
                            {
                              "body": {
                                "id": 4814,
                                "nodeType": "Block",
                                "src": "9853:119:24",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "baseExpression": {
                                            "id": 4795,
                                            "name": "to",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4661,
                                            "src": "9877:2:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                              "typeString": "address[] calldata"
                                            }
                                          },
                                          "id": 4797,
                                          "indexExpression": {
                                            "id": 4796,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4788,
                                            "src": "9880:1:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9877:5:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "baseExpression": {
                                            "id": 4798,
                                            "name": "tokenIds",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4664,
                                            "src": "9884:8:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                              "typeString": "uint256[] calldata"
                                            }
                                          },
                                          "id": 4800,
                                          "indexExpression": {
                                            "hexValue": "30",
                                            "id": 4799,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9893:1:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9884:11:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "baseExpression": {
                                            "id": 4801,
                                            "name": "amounts",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4667,
                                            "src": "9897:7:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                              "typeString": "uint256[] calldata"
                                            }
                                          },
                                          "id": 4803,
                                          "indexExpression": {
                                            "id": 4802,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4788,
                                            "src": "9905:1:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "9897:10:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "hexValue": "30",
                                              "id": 4806,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "9919:1:24",
                                              "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": 4805,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "9909:9:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                              "typeString": "function (uint256) pure returns (bytes memory)"
                                            },
                                            "typeName": {
                                              "id": 4804,
                                              "name": "bytes",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "9913:5:24",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                              }
                                            }
                                          },
                                          "id": 4807,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "9909:12:24",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        ],
                                        "id": 4794,
                                        "name": "_mint",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [
                                          5181
                                        ],
                                        "referencedDeclaration": 5181,
                                        "src": "9871:5:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                          "typeString": "function (address,uint256,uint256,bytes memory)"
                                        }
                                      },
                                      "id": 4808,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "9871:51:24",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 4809,
                                    "nodeType": "ExpressionStatement",
                                    "src": "9871:51:24"
                                  },
                                  {
                                    "id": 4813,
                                    "nodeType": "UncheckedBlock",
                                    "src": "9940:18:24",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 4811,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "++",
                                          "prefix": true,
                                          "src": "9952:3:24",
                                          "subExpression": {
                                            "id": 4810,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4788,
                                            "src": "9954:1:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 4812,
                                        "nodeType": "ExpressionStatement",
                                        "src": "9952:3:24"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4793,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 4790,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4788,
                                  "src": "9837:1:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "expression": {
                                    "id": 4791,
                                    "name": "to",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4661,
                                    "src": "9841:2:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                      "typeString": "address[] calldata"
                                    }
                                  },
                                  "id": 4792,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "9844:6:24",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "9841:9:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "9837:13:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 4815,
                              "initializationExpression": {
                                "assignments": [
                                  4788
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 4788,
                                    "mutability": "mutable",
                                    "name": "i",
                                    "nameLocation": "9834:1:24",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 4815,
                                    "src": "9829:6:24",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 4787,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "9829:4:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 4789,
                                "nodeType": "VariableDeclarationStatement",
                                "src": "9829:6:24"
                              },
                              "nodeType": "ForStatement",
                              "src": "9824:148:24"
                            }
                          ]
                        }
                      },
                      "id": 4865,
                      "nodeType": "IfStatement",
                      "src": "9369:995:24",
                      "trueBody": {
                        "id": 4776,
                        "nodeType": "Block",
                        "src": "9418:245:24",
                        "statements": [
                          {
                            "body": {
                              "id": 4774,
                              "nodeType": "Block",
                              "src": "9534:119:24",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 4755,
                                          "name": "to",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4661,
                                          "src": "9558:2:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 4757,
                                        "indexExpression": {
                                          "id": 4756,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4748,
                                          "src": "9561:1:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9558:5:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "baseExpression": {
                                          "id": 4758,
                                          "name": "tokenIds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4664,
                                          "src": "9565:8:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 4760,
                                        "indexExpression": {
                                          "hexValue": "30",
                                          "id": 4759,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9574:1:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9565:11:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "baseExpression": {
                                          "id": 4761,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4667,
                                          "src": "9578:7:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 4763,
                                        "indexExpression": {
                                          "hexValue": "30",
                                          "id": 4762,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9586:1:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9578:10:24",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30",
                                            "id": 4766,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9600:1:24",
                                            "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": 4765,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "NewExpression",
                                          "src": "9590:9:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function (uint256) pure returns (bytes memory)"
                                          },
                                          "typeName": {
                                            "id": 4764,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9594:5:24",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_storage_ptr",
                                              "typeString": "bytes"
                                            }
                                          }
                                        },
                                        "id": 4767,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9590:12:24",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 4754,
                                      "name": "_mint",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        5181
                                      ],
                                      "referencedDeclaration": 5181,
                                      "src": "9552:5:24",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                        "typeString": "function (address,uint256,uint256,bytes memory)"
                                      }
                                    },
                                    "id": 4768,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9552:51:24",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 4769,
                                  "nodeType": "ExpressionStatement",
                                  "src": "9552:51:24"
                                },
                                {
                                  "id": 4773,
                                  "nodeType": "UncheckedBlock",
                                  "src": "9621:18:24",
                                  "statements": [
                                    {
                                      "expression": {
                                        "id": 4771,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "++",
                                        "prefix": true,
                                        "src": "9633:3:24",
                                        "subExpression": {
                                          "id": 4770,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4748,
                                          "src": "9635:1:24",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 4772,
                                      "nodeType": "ExpressionStatement",
                                      "src": "9633:3:24"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 4753,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 4750,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4748,
                                "src": "9518:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "expression": {
                                  "id": 4751,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4661,
                                  "src": "9522:2:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 4752,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "9525:6:24",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "9522:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9518:13:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 4775,
                            "initializationExpression": {
                              "assignments": [
                                4748
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 4748,
                                  "mutability": "mutable",
                                  "name": "i",
                                  "nameLocation": "9515:1:24",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 4775,
                                  "src": "9510:6:24",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 4747,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9510:4:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 4749,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "9510:6:24"
                            },
                            "nodeType": "ForStatement",
                            "src": "9505:148:24"
                          }
                        ]
                      }
                    },
                    "id": 4866,
                    "nodeType": "IfStatement",
                    "src": "9188:1176:24",
                    "trueBody": {
                      "id": 4737,
                      "nodeType": "Block",
                      "src": "9245:118:24",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 4726,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4661,
                                  "src": "9313:2:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 4728,
                                "indexExpression": {
                                  "hexValue": "30",
                                  "id": 4727,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9316:1:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9313:5:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 4729,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4664,
                                "src": "9320:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "id": 4730,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4667,
                                "src": "9330:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 4733,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9349:1:24",
                                    "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": 4732,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "NewExpression",
                                  "src": "9339:9:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function (uint256) pure returns (bytes memory)"
                                  },
                                  "typeName": {
                                    "id": 4731,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9343:5:24",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  }
                                },
                                "id": 4734,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9339:12:24",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 4725,
                              "name": "_mintBatch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                5229
                              ],
                              "referencedDeclaration": 5229,
                              "src": "9302:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                              }
                            },
                            "id": 4735,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9302:50:24",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 4736,
                          "nodeType": "ExpressionStatement",
                          "src": "9302:50:24"
                        }
                      ]
                    }
                  },
                  "id": 4867,
                  "nodeType": "IfStatement",
                  "src": "8999:1365:24",
                  "trueBody": {
                    "id": 4714,
                    "nodeType": "Block",
                    "src": "9066:116:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 4699,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4661,
                                "src": "9114:2:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 4701,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4700,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9117:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9114:5:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4702,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4664,
                                "src": "9121:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4704,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4703,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9130:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9121:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4705,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4667,
                                "src": "9134:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4707,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4706,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9142:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9134:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 4710,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9156:1:24",
                                  "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": 4709,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "9146:9:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (bytes memory)"
                                },
                                "typeName": {
                                  "id": 4708,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "9150:5:24",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage_ptr",
                                    "typeString": "bytes"
                                  }
                                }
                              },
                              "id": 4711,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9146:12:24",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 4698,
                            "name": "_mint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5181
                            ],
                            "referencedDeclaration": 5181,
                            "src": "9108:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256,uint256,bytes memory)"
                            }
                          },
                          "id": 4712,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9108:51:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4713,
                        "nodeType": "ExpressionStatement",
                        "src": "9108:51:24"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 4656,
              "nodeType": "StructuredDocumentation",
              "src": "8701:44:24",
              "text": " @dev Mint existing tokens"
            },
            "id": 4869,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintExisting",
            "nameLocation": "8759:13:24",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4658,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "8781:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4869,
                  "src": "8773:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4657,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8773:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4661,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8811:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4869,
                  "src": "8792:21:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4659,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "8792:7:24",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 4660,
                    "nodeType": "ArrayTypeName",
                    "src": "8792:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4664,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "8834:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4869,
                  "src": "8815:27:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4662,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8815:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4663,
                    "nodeType": "ArrayTypeName",
                    "src": "8815:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4667,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "8863:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4869,
                  "src": "8844:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4665,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8844:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4666,
                    "nodeType": "ArrayTypeName",
                    "src": "8844:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8772:99:24"
            },
            "returnParameters": {
              "id": 4669,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8881:0:24"
            },
            "scope": 5315,
            "src": "8750:1620:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15100
            ],
            "body": {
              "id": 4903,
              "nodeType": "Block",
              "src": "10544:208:24",
              "statements": [
                {
                  "expression": {
                    "id": 4882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4878,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4876,
                      "src": "10554:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 4880,
                          "name": "tokenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4872,
                          "src": "10582:7:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4879,
                        "name": "_tokenExtension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          13853
                        ],
                        "referencedDeclaration": 13853,
                        "src": "10566:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                          "typeString": "function (uint256) view returns (address)"
                        }
                      },
                      "id": 4881,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10566:24:24",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10554:36:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4883,
                  "nodeType": "ExpressionStatement",
                  "src": "10554:36:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 4890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 4885,
                          "name": "extension",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4876,
                          "src": "10608:9:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 4888,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10629:1:24",
                              "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": 4887,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10621:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 4886,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10621:7:24",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 4889,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10621:10:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "10608:23:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "id": 4891,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10633:24:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd",
                          "typeString": "literal_string \"No extension for token\""
                        },
                        "value": "No extension for token"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd",
                          "typeString": "literal_string \"No extension for token\""
                        }
                      ],
                      "id": 4884,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10600:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4892,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10600:58:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4893,
                  "nodeType": "ExpressionStatement",
                  "src": "10600:58:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "10676:43:24",
                        "subExpression": {
                          "arguments": [
                            {
                              "id": 4897,
                              "name": "extension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4876,
                              "src": "10709:9:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 4895,
                              "name": "_blacklistedExtensions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12440,
                              "src": "10677:22:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$3529_storage",
                                "typeString": "struct EnumerableSet.AddressSet storage ref"
                              }
                            },
                            "id": 4896,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10700:8:24",
                            "memberName": "contains",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3610,
                            "src": "10677:31:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$3529_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3529_storage_ptr_$",
                              "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 4898,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10677:42:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "id": 4900,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10721:23:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621",
                          "typeString": "literal_string \"Extension blacklisted\""
                        },
                        "value": "Extension blacklisted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621",
                          "typeString": "literal_string \"Extension blacklisted\""
                        }
                      ],
                      "id": 4894,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10668:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4901,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10668:77:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4902,
                  "nodeType": "ExpressionStatement",
                  "src": "10668:77:24"
                }
              ]
            },
            "documentation": {
              "id": 4870,
              "nodeType": "StructuredDocumentation",
              "src": "10376:65:24",
              "text": " @dev See {IERC1155CreatorCore-tokenExtension}."
            },
            "functionSelector": "239be317",
            "id": 4904,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenExtension",
            "nameLocation": "10455:14:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4874,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10507:8:24"
            },
            "parameters": {
              "id": 4873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4872,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10478:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4904,
                  "src": "10470:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4871,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10470:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10469:17:24"
            },
            "returnParameters": {
              "id": 4877,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4876,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "10533:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4904,
                  "src": "10525:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4875,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10525:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10524:19:24"
            },
            "scope": 5315,
            "src": "10446:306:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15273
            ],
            "body": {
              "id": 4971,
              "nodeType": "Block",
              "src": "10943:407:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 4920,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4907,
                            "src": "10961:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 4921,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "10972:3:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 4922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10976:6:24",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "10972:10:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "10961:21:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 4925,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4907,
                              "src": "11003:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 4926,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967281,
                                "src": "11012:3:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 4927,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11016:6:24",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "11012:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4924,
                            "name": "isApprovedForAll",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18729,
                            "src": "10986:16:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address,address) view returns (bool)"
                            }
                          },
                          "id": 4928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10986:37:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "10961:62:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "id": 4930,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11025:33:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e",
                          "typeString": "literal_string \"Caller is not owner or approved\""
                        },
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e",
                          "typeString": "literal_string \"Caller is not owner or approved\""
                        }
                      ],
                      "id": 4919,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10953:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4931,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10953:106:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4932,
                  "nodeType": "ExpressionStatement",
                  "src": "10953:106:24"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4938,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 4934,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4910,
                            "src": "11077:8:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11086:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "11077:15:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 4936,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4913,
                            "src": "11096:7:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 4937,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11104:6:24",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "11096:14:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11077:33:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 4939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11112:15:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        },
                        "value": "Invalid input"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                          "typeString": "literal_string \"Invalid input\""
                        }
                      ],
                      "id": 4933,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11069:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4940,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11069:59:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4941,
                  "nodeType": "ExpressionStatement",
                  "src": "11069:59:24"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 4942,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4910,
                        "src": "11142:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 4943,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11151:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "11142:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 4944,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11161:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "11142:20:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 4963,
                    "nodeType": "Block",
                    "src": "11234:63:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 4958,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4907,
                              "src": "11259:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 4959,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4910,
                              "src": "11268:8:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            {
                              "id": 4960,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4913,
                              "src": "11278:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 4957,
                            "name": "_burnBatch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5300
                            ],
                            "referencedDeclaration": 5300,
                            "src": "11248:10:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 4961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11248:38:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4962,
                        "nodeType": "ExpressionStatement",
                        "src": "11248:38:24"
                      }
                    ]
                  },
                  "id": 4964,
                  "nodeType": "IfStatement",
                  "src": "11138:159:24",
                  "trueBody": {
                    "id": 4956,
                    "nodeType": "Block",
                    "src": "11164:64:24",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 4947,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4907,
                              "src": "11184:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4948,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4910,
                                "src": "11193:8:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4950,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4949,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11202:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11193:11:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 4951,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4913,
                                "src": "11206:7:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 4953,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 4952,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11214:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11206:10:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 4946,
                            "name": "_burn",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              5255
                            ],
                            "referencedDeclaration": 5255,
                            "src": "11178:5:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256,uint256)"
                            }
                          },
                          "id": 4954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11178:39:24",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4955,
                        "nodeType": "ExpressionStatement",
                        "src": "11178:39:24"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 4966,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4907,
                        "src": "11316:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4967,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4910,
                        "src": "11325:8:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 4968,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4913,
                        "src": "11335:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 4965,
                      "name": "_postBurn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13735,
                      "src": "11306:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 4969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11306:37:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4970,
                  "nodeType": "ExpressionStatement",
                  "src": "11306:37:24"
                }
              ]
            },
            "documentation": {
              "id": 4905,
              "nodeType": "StructuredDocumentation",
              "src": "10758:55:24",
              "text": " @dev See {IERC1155CreatorCore-burn}."
            },
            "functionSelector": "3db0f8ab",
            "id": 4972,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4917,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4916,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "10930:12:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "10930:12:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "10930:12:24"
              }
            ],
            "name": "burn",
            "nameLocation": "10827:4:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4915,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10921:8:24"
            },
            "parameters": {
              "id": 4914,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4907,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "10840:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "10832:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4906,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10832:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4910,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "10868:8:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "10849:27:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4908,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10849:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4909,
                    "nodeType": "ArrayTypeName",
                    "src": "10849:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4913,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "10897:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4972,
                  "src": "10878:26:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4911,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10878:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4912,
                    "nodeType": "ArrayTypeName",
                    "src": "10878:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10831:74:24"
            },
            "returnParameters": {
              "id": 4918,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10943:0:24"
            },
            "scope": 5315,
            "src": "10818:532:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15110
            ],
            "body": {
              "id": 4994,
              "nodeType": "Block",
              "src": "11541:75:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 4988,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11582:1:24",
                            "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": 4987,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "11574:7:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 4986,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "11574:7:24",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 4989,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11574:10:24",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 4990,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4976,
                        "src": "11586:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 4991,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4979,
                        "src": "11597:11:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 4985,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "11551:22:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 4992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11551:58:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4993,
                  "nodeType": "ExpressionStatement",
                  "src": "11551:58:24"
                }
              ]
            },
            "documentation": {
              "id": 4973,
              "nodeType": "StructuredDocumentation",
              "src": "11356:56:24",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "332dd1ae",
            "id": 4995,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 4983,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 4982,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11527:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "11527:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "11527:13:24"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "11426:12:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4981,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11518:8:24"
            },
            "parameters": {
              "id": 4980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4976,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11466:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4995,
                  "src": "11439:36:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4974,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11439:15:24",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 4975,
                    "nodeType": "ArrayTypeName",
                    "src": "11439:17:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4979,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11496:11:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 4995,
                  "src": "11477:30:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4977,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11477:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4978,
                    "nodeType": "ArrayTypeName",
                    "src": "11477:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11438:70:24"
            },
            "returnParameters": {
              "id": 4984,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11541:0:24"
            },
            "scope": 5315,
            "src": "11417:199:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15122
            ],
            "body": {
              "id": 5016,
              "nodeType": "Block",
              "src": "11824:63:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5011,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4998,
                        "src": "11848:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5012,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5001,
                        "src": "11857:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 5013,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5004,
                        "src": "11868:11:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 5010,
                      "name": "_setRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13295,
                      "src": "11834:13:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 5014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11834:46:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5015,
                  "nodeType": "ExpressionStatement",
                  "src": "11834:46:24"
                }
              ]
            },
            "documentation": {
              "id": 4996,
              "nodeType": "StructuredDocumentation",
              "src": "11622:56:24",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "20e4afe2",
            "id": 5017,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5008,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5007,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11810:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "11810:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "11810:13:24"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "11692:12:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5006,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11801:8:24"
            },
            "parameters": {
              "id": 5005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4998,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11713:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5017,
                  "src": "11705:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4997,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11705:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5001,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11749:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5017,
                  "src": "11722:36:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4999,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11722:15:24",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 5000,
                    "nodeType": "ArrayTypeName",
                    "src": "11722:17:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5004,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11779:11:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5017,
                  "src": "11760:30:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5002,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11760:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5003,
                    "nodeType": "ArrayTypeName",
                    "src": "11760:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11704:87:24"
            },
            "returnParameters": {
              "id": 5009,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11824:0:24"
            },
            "scope": 5315,
            "src": "11683:204:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15134
            ],
            "body": {
              "id": 5038,
              "nodeType": "Block",
              "src": "12115:74:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5033,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5020,
                        "src": "12148:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5034,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5023,
                        "src": "12159:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 5035,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5026,
                        "src": "12170:11:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 5032,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "12125:22:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_payable_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address payable[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 5036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12125:57:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5037,
                  "nodeType": "ExpressionStatement",
                  "src": "12125:57:24"
                }
              ]
            },
            "documentation": {
              "id": 5018,
              "nodeType": "StructuredDocumentation",
              "src": "11893:65:24",
              "text": " @dev See {ICreatorCore-setRoyaltiesExtension}."
            },
            "functionSelector": "b0fe87c9",
            "id": 5039,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5030,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5029,
                  "name": "adminRequired",
                  "nameLocations": [
                    "12101:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "12101:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "12101:13:24"
              }
            ],
            "name": "setRoyaltiesExtension",
            "nameLocation": "11972:21:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5028,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12092:8:24"
            },
            "parameters": {
              "id": 5027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5020,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "12002:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5039,
                  "src": "11994:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5019,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11994:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5023,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "12040:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5039,
                  "src": "12013:36:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5021,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12013:15:24",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 5022,
                    "nodeType": "ArrayTypeName",
                    "src": "12013:17:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5026,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "12070:11:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5039,
                  "src": "12051:30:24",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5024,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12051:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5025,
                    "nodeType": "ArrayTypeName",
                    "src": "12051:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11993:89:24"
            },
            "returnParameters": {
              "id": 5031,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12115:0:24"
            },
            "scope": 5315,
            "src": "11963:226:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15146
            ],
            "body": {
              "id": 5056,
              "nodeType": "Block",
              "src": "12379:46:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5053,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5042,
                        "src": "12410:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5052,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "12396:13:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory,uint256[] memory)"
                      }
                    },
                    "id": 5054,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12396:22:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                      "typeString": "tuple(address payable[] memory,uint256[] memory)"
                    }
                  },
                  "functionReturnParameters": 5051,
                  "id": 5055,
                  "nodeType": "Return",
                  "src": "12389:29:24"
                }
              ]
            },
            "documentation": {
              "id": 5040,
              "nodeType": "StructuredDocumentation",
              "src": "12195:56:24",
              "text": " @dev See {ICreatorCore-getRoyalties}."
            },
            "functionSelector": "bb3bafd6",
            "id": 5057,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "12265:12:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5044,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12317:8:24"
            },
            "parameters": {
              "id": 5043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5042,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12286:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5057,
                  "src": "12278:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12278:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12277:17:24"
            },
            "returnParameters": {
              "id": 5051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5047,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5057,
                  "src": "12335:24:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5045,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12335:15:24",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 5046,
                    "nodeType": "ArrayTypeName",
                    "src": "12335:17:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5050,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5057,
                  "src": "12361:16:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5048,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12361:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5049,
                    "nodeType": "ArrayTypeName",
                    "src": "12361:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12334:44:24"
            },
            "scope": 5315,
            "src": "12256:169:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15173
            ],
            "body": {
              "id": 5074,
              "nodeType": "Block",
              "src": "12605:46:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5071,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5060,
                        "src": "12636:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5070,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "12622:13:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory,uint256[] memory)"
                      }
                    },
                    "id": 5072,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12622:22:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$",
                      "typeString": "tuple(address payable[] memory,uint256[] memory)"
                    }
                  },
                  "functionReturnParameters": 5069,
                  "id": 5073,
                  "nodeType": "Return",
                  "src": "12615:29:24"
                }
              ]
            },
            "documentation": {
              "id": 5058,
              "nodeType": "StructuredDocumentation",
              "src": "12431:51:24",
              "text": " @dev See {ICreatorCore-getFees}."
            },
            "functionSelector": "d5a06d4c",
            "id": 5075,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFees",
            "nameLocation": "12496:7:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5062,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12543:8:24"
            },
            "parameters": {
              "id": 5061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5060,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12512:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5075,
                  "src": "12504:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5059,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12504:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12503:17:24"
            },
            "returnParameters": {
              "id": 5069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5065,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5075,
                  "src": "12561:24:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5063,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12561:15:24",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 5064,
                    "nodeType": "ArrayTypeName",
                    "src": "12561:17:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5068,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5075,
                  "src": "12587:16:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5066,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12587:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5067,
                    "nodeType": "ArrayTypeName",
                    "src": "12587:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12560:44:24"
            },
            "scope": 5315,
            "src": "12487:164:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15154
            ],
            "body": {
              "id": 5089,
              "nodeType": "Block",
              "src": "12831:53:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5086,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5078,
                        "src": "12869:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5085,
                      "name": "_getRoyaltyReceivers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13186,
                      "src": "12848:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (address payable[] memory)"
                      }
                    },
                    "id": 5087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12848:29:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                      "typeString": "address payable[] memory"
                    }
                  },
                  "functionReturnParameters": 5084,
                  "id": 5088,
                  "nodeType": "Return",
                  "src": "12841:36:24"
                }
              ]
            },
            "documentation": {
              "id": 5076,
              "nodeType": "StructuredDocumentation",
              "src": "12657:60:24",
              "text": " @dev See {ICreatorCore-getFeeRecipients}."
            },
            "functionSelector": "b9c4d9fb",
            "id": 5090,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeRecipients",
            "nameLocation": "12731:16:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5080,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12787:8:24"
            },
            "parameters": {
              "id": 5079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5078,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12756:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5090,
                  "src": "12748:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5077,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12748:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12747:17:24"
            },
            "returnParameters": {
              "id": 5084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5083,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5090,
                  "src": "12805:24:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5081,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12805:15:24",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 5082,
                    "nodeType": "ArrayTypeName",
                    "src": "12805:17:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12804:26:24"
            },
            "scope": 5315,
            "src": "12722:162:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15162
            ],
            "body": {
              "id": 5104,
              "nodeType": "Block",
              "src": "13039:47:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5101,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5093,
                        "src": "13071:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5100,
                      "name": "_getRoyaltyBPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13203,
                      "src": "13056:14:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (uint256[] memory)"
                      }
                    },
                    "id": 5102,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13056:23:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 5099,
                  "id": 5103,
                  "nodeType": "Return",
                  "src": "13049:30:24"
                }
              ]
            },
            "documentation": {
              "id": 5091,
              "nodeType": "StructuredDocumentation",
              "src": "12890:53:24",
              "text": " @dev See {ICreatorCore-getFeeBps}."
            },
            "functionSelector": "0ebd4c7f",
            "id": 5105,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeBps",
            "nameLocation": "12957:9:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5095,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13006:8:24"
            },
            "parameters": {
              "id": 5094,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5093,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12975:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5105,
                  "src": "12967:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5092,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12967:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12966:17:24"
            },
            "returnParameters": {
              "id": 5099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5098,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5105,
                  "src": "13024:13:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5096,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "13024:4:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5097,
                    "nodeType": "ArrayTypeName",
                    "src": "13024:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13023:15:24"
            },
            "scope": 5315,
            "src": "12948:138:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15184
            ],
            "body": {
              "id": 5123,
              "nodeType": "Block",
              "src": "13267:55:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5119,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5108,
                        "src": "13300:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5120,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5110,
                        "src": "13309:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5118,
                      "name": "_getRoyaltyInfo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13258,
                      "src": "13284:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (address,uint256)"
                      }
                    },
                    "id": 5121,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13284:31:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
                      "typeString": "tuple(address,uint256)"
                    }
                  },
                  "functionReturnParameters": 5117,
                  "id": 5122,
                  "nodeType": "Return",
                  "src": "13277:38:24"
                }
              ]
            },
            "documentation": {
              "id": 5106,
              "nodeType": "StructuredDocumentation",
              "src": "13096:55:24",
              "text": " @dev See {ICreatorCore-royaltyInfo}."
            },
            "functionSelector": "2a55205a",
            "id": 5124,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "royaltyInfo",
            "nameLocation": "13165:11:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5112,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13231:8:24"
            },
            "parameters": {
              "id": 5111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5108,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13185:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5124,
                  "src": "13177:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5107,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13177:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5110,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "13202:5:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5124,
                  "src": "13194:13:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13194:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13176:32:24"
            },
            "returnParameters": {
              "id": 5117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5114,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5124,
                  "src": "13249:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5113,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13249:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5116,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5124,
                  "src": "13258:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5115,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13258:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13248:18:24"
            },
            "scope": 5315,
            "src": "13156:166:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1388
            ],
            "body": {
              "id": 5137,
              "nodeType": "Block",
              "src": "13471:42:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5134,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "13498:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5133,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13017,
                      "src": "13488:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (uint256) view returns (string memory)"
                      }
                    },
                    "id": 5135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13488:18:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 5132,
                  "id": 5136,
                  "nodeType": "Return",
                  "src": "13481:25:24"
                }
              ]
            },
            "documentation": {
              "id": 5125,
              "nodeType": "StructuredDocumentation",
              "src": "13329:54:24",
              "text": " @dev See {IERC1155MetadataURI-uri}."
            },
            "functionSelector": "0e89341c",
            "id": 5138,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "uri",
            "nameLocation": "13397:3:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5129,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13438:8:24"
            },
            "parameters": {
              "id": 5128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5127,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13409:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5138,
                  "src": "13401:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5126,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13401:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13400:17:24"
            },
            "returnParameters": {
              "id": 5132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5131,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5138,
                  "src": "13456:13:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5130,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "13456:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13455:15:24"
            },
            "scope": 5315,
            "src": "13388:125:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15281
            ],
            "body": {
              "id": 5151,
              "nodeType": "Block",
              "src": "13681:45:24",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 5147,
                      "name": "_totalSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3836,
                      "src": "13698:12:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 5149,
                    "indexExpression": {
                      "id": 5148,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5141,
                      "src": "13711:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13698:21:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5146,
                  "id": 5150,
                  "nodeType": "Return",
                  "src": "13691:28:24"
                }
              ]
            },
            "documentation": {
              "id": 5139,
              "nodeType": "StructuredDocumentation",
              "src": "13523:66:24",
              "text": " @dev Total amount of tokens in with a given id."
            },
            "functionSelector": "bd85b039",
            "id": 5152,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nameLocation": "13603:11:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5143,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13654:8:24"
            },
            "parameters": {
              "id": 5142,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5141,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13623:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5152,
                  "src": "13615:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5140,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13615:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13614:17:24"
            },
            "returnParameters": {
              "id": 5146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5145,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5152,
                  "src": "13672:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5144,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13672:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13671:9:24"
            },
            "scope": 5315,
            "src": "13594:132:24",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              19160
            ],
            "body": {
              "id": 5180,
              "nodeType": "Block",
              "src": "13886:91:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5168,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5155,
                        "src": "13908:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5169,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5157,
                        "src": "13917:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5170,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5159,
                        "src": "13921:6:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5171,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5161,
                        "src": "13929:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 5165,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "13896:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155Creator_$5315_$",
                          "typeString": "type(contract super ERC1155Creator)"
                        }
                      },
                      "id": 5167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13902:5:24",
                      "memberName": "_mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19160,
                      "src": "13896:11:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,bytes memory)"
                      }
                    },
                    "id": 5172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13896:38:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5173,
                  "nodeType": "ExpressionStatement",
                  "src": "13896:38:24"
                },
                {
                  "expression": {
                    "id": 5178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 5174,
                        "name": "_totalSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3836,
                        "src": "13944:12:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 5176,
                      "indexExpression": {
                        "id": 5175,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5157,
                        "src": "13957:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13944:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 5177,
                      "name": "amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5159,
                      "src": "13964:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13944:26:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5179,
                  "nodeType": "ExpressionStatement",
                  "src": "13944:26:24"
                }
              ]
            },
            "documentation": {
              "id": 5153,
              "nodeType": "StructuredDocumentation",
              "src": "13732:44:24",
              "text": " @dev See {ERC1155-_mint}."
            },
            "id": 5181,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mint",
            "nameLocation": "13790:5:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5163,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13877:8:24"
            },
            "parameters": {
              "id": 5162,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5155,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "13804:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5181,
                  "src": "13796:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5154,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13796:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5157,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "13821:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5181,
                  "src": "13813:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5156,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13813:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5159,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "13833:6:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5181,
                  "src": "13825:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5158,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13825:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5161,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "13854:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5181,
                  "src": "13841:17:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5160,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "13841:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13795:64:24"
            },
            "returnParameters": {
              "id": 5164,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13886:0:24"
            },
            "scope": 5315,
            "src": "13781:196:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19271
            ],
            "body": {
              "id": 5228,
              "nodeType": "Block",
              "src": "14162:186:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5199,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5184,
                        "src": "14189:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5200,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5187,
                        "src": "14193:3:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 5201,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5190,
                        "src": "14198:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 5202,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5192,
                        "src": "14207:4:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 5196,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14172:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155Creator_$5315_$",
                          "typeString": "type(contract super ERC1155Creator)"
                        }
                      },
                      "id": 5198,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14178:10:24",
                      "memberName": "_mintBatch",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19271,
                      "src": "14172:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 5203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14172:40:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5204,
                  "nodeType": "ExpressionStatement",
                  "src": "14172:40:24"
                },
                {
                  "body": {
                    "id": 5226,
                    "nodeType": "Block",
                    "src": "14252:90:24",
                    "statements": [
                      {
                        "expression": {
                          "id": 5220,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 5212,
                              "name": "_totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3836,
                              "src": "14266:12:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 5216,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 5213,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5187,
                                "src": "14279:3:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 5215,
                              "indexExpression": {
                                "id": 5214,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5206,
                                "src": "14283:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14279:6:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14266:20:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 5217,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5190,
                              "src": "14290:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 5219,
                            "indexExpression": {
                              "id": 5218,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5206,
                              "src": "14298:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14290:10:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14266:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5221,
                        "nodeType": "ExpressionStatement",
                        "src": "14266:34:24"
                      },
                      {
                        "id": 5225,
                        "nodeType": "UncheckedBlock",
                        "src": "14314:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 5223,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "14326:3:24",
                              "subExpression": {
                                "id": 5222,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5206,
                                "src": "14328:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5224,
                            "nodeType": "ExpressionStatement",
                            "src": "14326:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5211,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5208,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5206,
                      "src": "14235:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5209,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5187,
                        "src": "14239:3:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 5210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14243:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14239:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14235:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5227,
                  "initializationExpression": {
                    "assignments": [
                      5206
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5206,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14232:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 5227,
                        "src": "14227:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5205,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14227:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5207,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14227:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "14222:120:24"
                }
              ]
            },
            "documentation": {
              "id": 5182,
              "nodeType": "StructuredDocumentation",
              "src": "13983:49:24",
              "text": " @dev See {ERC1155-_mintBatch}."
            },
            "id": 5229,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintBatch",
            "nameLocation": "14046:10:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5194,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14153:8:24"
            },
            "parameters": {
              "id": 5193,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5184,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "14065:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5229,
                  "src": "14057:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14057:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5187,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "14086:3:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5229,
                  "src": "14069:20:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5185,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14069:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5186,
                    "nodeType": "ArrayTypeName",
                    "src": "14069:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5190,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "14108:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5229,
                  "src": "14091:24:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5188,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14091:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5189,
                    "nodeType": "ArrayTypeName",
                    "src": "14091:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5192,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "14130:4:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5229,
                  "src": "14117:17:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5191,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "14117:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14056:79:24"
            },
            "returnParameters": {
              "id": 5195,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14162:0:24"
            },
            "scope": 5315,
            "src": "14037:311:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19376
            ],
            "body": {
              "id": 5254,
              "nodeType": "Block",
              "src": "14489:85:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5243,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5232,
                        "src": "14511:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5244,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5234,
                        "src": "14520:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5245,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5236,
                        "src": "14524:6:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5240,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14499:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155Creator_$5315_$",
                          "typeString": "type(contract super ERC1155Creator)"
                        }
                      },
                      "id": 5242,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14505:5:24",
                      "memberName": "_burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19376,
                      "src": "14499:11:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,uint256)"
                      }
                    },
                    "id": 5246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14499:32:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5247,
                  "nodeType": "ExpressionStatement",
                  "src": "14499:32:24"
                },
                {
                  "expression": {
                    "id": 5252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 5248,
                        "name": "_totalSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3836,
                        "src": "14541:12:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 5250,
                      "indexExpression": {
                        "id": 5249,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5234,
                        "src": "14554:2:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14541:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "id": 5251,
                      "name": "amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5236,
                      "src": "14561:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14541:26:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5253,
                  "nodeType": "ExpressionStatement",
                  "src": "14541:26:24"
                }
              ]
            },
            "documentation": {
              "id": 5230,
              "nodeType": "StructuredDocumentation",
              "src": "14354:44:24",
              "text": " @dev See {ERC1155-_burn}."
            },
            "id": 5255,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burn",
            "nameLocation": "14412:5:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5238,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14480:8:24"
            },
            "parameters": {
              "id": 5237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5232,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14426:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5255,
                  "src": "14418:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5231,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14418:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5234,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "14443:2:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5255,
                  "src": "14435:10:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5233,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14435:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5236,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "14455:6:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5255,
                  "src": "14447:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14447:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14417:45:24"
            },
            "returnParameters": {
              "id": 5239,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14489:0:24"
            },
            "scope": 5315,
            "src": "14403:171:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19499
            ],
            "body": {
              "id": 5299,
              "nodeType": "Block",
              "src": "14745:185:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5271,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5258,
                        "src": "14772:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5272,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5261,
                        "src": "14781:3:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 5273,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5264,
                        "src": "14786:7:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      ],
                      "expression": {
                        "id": 5268,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14755:5:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155Creator_$5315_$",
                          "typeString": "type(contract super ERC1155Creator)"
                        }
                      },
                      "id": 5270,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14761:10:24",
                      "memberName": "_burnBatch",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19499,
                      "src": "14755:16:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory)"
                      }
                    },
                    "id": 5274,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14755:39:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5275,
                  "nodeType": "ExpressionStatement",
                  "src": "14755:39:24"
                },
                {
                  "body": {
                    "id": 5297,
                    "nodeType": "Block",
                    "src": "14834:90:24",
                    "statements": [
                      {
                        "expression": {
                          "id": 5291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 5283,
                              "name": "_totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3836,
                              "src": "14848:12:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 5287,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 5284,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5261,
                                "src": "14861:3:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 5286,
                              "indexExpression": {
                                "id": 5285,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5277,
                                "src": "14865:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14861:6:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14848:20:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 5288,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5264,
                              "src": "14872:7:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 5290,
                            "indexExpression": {
                              "id": 5289,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5277,
                              "src": "14880:1:24",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14872:10:24",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14848:34:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5292,
                        "nodeType": "ExpressionStatement",
                        "src": "14848:34:24"
                      },
                      {
                        "id": 5296,
                        "nodeType": "UncheckedBlock",
                        "src": "14896:18:24",
                        "statements": [
                          {
                            "expression": {
                              "id": 5294,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "14908:3:24",
                              "subExpression": {
                                "id": 5293,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5277,
                                "src": "14910:1:24",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5295,
                            "nodeType": "ExpressionStatement",
                            "src": "14908:3:24"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5282,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5279,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5277,
                      "src": "14817:1:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5280,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5261,
                        "src": "14821:3:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 5281,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14825:6:24",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14821:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14817:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5298,
                  "initializationExpression": {
                    "assignments": [
                      5277
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5277,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14814:1:24",
                        "nodeType": "VariableDeclaration",
                        "scope": 5298,
                        "src": "14809:6:24",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5276,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14809:4:24",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5278,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14809:6:24"
                  },
                  "nodeType": "ForStatement",
                  "src": "14804:120:24"
                }
              ]
            },
            "documentation": {
              "id": 5256,
              "nodeType": "StructuredDocumentation",
              "src": "14580:49:24",
              "text": " @dev See {ERC1155-_burnBatch}."
            },
            "id": 5300,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burnBatch",
            "nameLocation": "14643:10:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5266,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14736:8:24"
            },
            "parameters": {
              "id": 5265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5258,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14662:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5300,
                  "src": "14654:15:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5257,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14654:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5261,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "14688:3:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5300,
                  "src": "14671:20:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5259,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14671:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5260,
                    "nodeType": "ArrayTypeName",
                    "src": "14671:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5264,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "14710:7:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5300,
                  "src": "14693:24:24",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5262,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14693:7:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5263,
                    "nodeType": "ArrayTypeName",
                    "src": "14693:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14653:65:24"
            },
            "returnParameters": {
              "id": 5267,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14745:0:24"
            },
            "scope": 5315,
            "src": "14634:296:24",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15190
            ],
            "body": {
              "id": 5313,
              "nodeType": "Block",
              "src": "15082:51:24",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5310,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5303,
                        "src": "15116:9:24",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5309,
                      "name": "_setApproveTransferBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13454,
                      "src": "15092:23:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 5311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15092:34:24",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5312,
                  "nodeType": "ExpressionStatement",
                  "src": "15092:34:24"
                }
              ]
            },
            "documentation": {
              "id": 5301,
              "nodeType": "StructuredDocumentation",
              "src": "14936:62:24",
              "text": " @dev See {ICreatorCore-setApproveTransfer}."
            },
            "functionSelector": "596798ad",
            "id": 5314,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5307,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5306,
                  "name": "adminRequired",
                  "nameLocations": [
                    "15068:13:24"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 62,
                  "src": "15068:13:24"
                },
                "nodeType": "ModifierInvocation",
                "src": "15068:13:24"
              }
            ],
            "name": "setApproveTransfer",
            "nameLocation": "15012:18:24",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5305,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15059:8:24"
            },
            "parameters": {
              "id": 5304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5303,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "15039:9:24",
                  "nodeType": "VariableDeclaration",
                  "scope": 5314,
                  "src": "15031:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5302,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15031:7:24",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15030:19:24"
            },
            "returnParameters": {
              "id": 5308,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15082:0:24"
            },
            "scope": 5315,
            "src": "15003:130:24",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 5316,
        "src": "291:14844:24",
        "usedErrors": []
      }
    ],
    "src": "33:15102:24"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.608Z",
  "devdoc": {
    "details": "ERC1155Creator implementation",
    "events": {
      "ApprovalForAll(address,address,bool)": {
        "details": "Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`."
      },
      "TransferBatch(address,address,address,uint256[],uint256[])": {
        "details": "Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers."
      },
      "TransferSingle(address,address,address,uint256,uint256)": {
        "details": "Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`."
      },
      "URI(string,uint256)": {
        "details": "Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}."
      }
    },
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "balanceOf(address,uint256)": {
        "details": "See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address."
      },
      "balanceOfBatch(address[],uint256[])": {
        "details": "See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."
      },
      "blacklistExtension(address)": {
        "details": "See {ICreatorCore-blacklistExtension}."
      },
      "burn(address,uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-burn}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getApproveTransfer()": {
        "details": "See {ICreatorCore-getApproveTransfer}."
      },
      "getExtensions()": {
        "details": "See {ICreatorCore-getExtensions}."
      },
      "getFeeBps(uint256)": {
        "details": "See {ICreatorCore-getFeeBps}."
      },
      "getFeeRecipients(uint256)": {
        "details": "See {ICreatorCore-getFeeRecipients}."
      },
      "getFees(uint256)": {
        "details": "See {ICreatorCore-getFees}."
      },
      "getRoyalties(uint256)": {
        "details": "See {ICreatorCore-getRoyalties}."
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "isApprovedForAll(address,address)": {
        "details": "See {IERC1155-isApprovedForAll}."
      },
      "mintBaseExisting(address[],uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-mintBaseExisting}."
      },
      "mintBaseNew(address[],uint256[],string[])": {
        "details": "See {IERC1155CreatorCore-mintBaseNew}."
      },
      "mintExtensionExisting(address[],uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-mintExtensionExisting}."
      },
      "mintExtensionNew(address[],uint256[],string[])": {
        "details": "See {IERC1155CreatorCore-mintExtensionNew}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "registerExtension(address,string)": {
        "details": "See {ICreatorCore-registerExtension}."
      },
      "registerExtension(address,string,bool)": {
        "details": "See {ICreatorCore-registerExtension}."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "revokeAdmin(address)": {
        "details": "See {IAdminControl-revokeAdmin}."
      },
      "royaltyInfo(uint256,uint256)": {
        "details": "See {ICreatorCore-royaltyInfo}."
      },
      "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
        "details": "See {IERC1155-safeBatchTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,uint256,bytes)": {
        "details": "See {IERC1155-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC1155-setApprovalForAll}."
      },
      "setApproveTransfer(address)": {
        "details": "See {ICreatorCore-setApproveTransfer}."
      },
      "setApproveTransferExtension(bool)": {
        "details": "See {ICreatorCore-setApproveTransferExtension}."
      },
      "setBaseTokenURI(string)": {
        "details": "See {ICreatorCore-setBaseTokenURI}."
      },
      "setBaseTokenURIExtension(string)": {
        "details": "See {ICreatorCore-setBaseTokenURIExtension}."
      },
      "setBaseTokenURIExtension(string,bool)": {
        "details": "See {ICreatorCore-setBaseTokenURIExtension}."
      },
      "setMintPermissions(address,address)": {
        "details": "See {ICreatorCore-setMintPermissions}."
      },
      "setRoyalties(address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyalties}."
      },
      "setRoyalties(uint256,address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyalties}."
      },
      "setRoyaltiesExtension(address,address[],uint256[])": {
        "details": "See {ICreatorCore-setRoyaltiesExtension}."
      },
      "setTokenURI(uint256,string)": {
        "details": "See {ICreatorCore-setTokenURI}."
      },
      "setTokenURI(uint256[],string[])": {
        "details": "See {ICreatorCore-setTokenURI}."
      },
      "setTokenURIExtension(uint256,string)": {
        "details": "See {ICreatorCore-setTokenURIExtension}."
      },
      "setTokenURIExtension(uint256[],string[])": {
        "details": "See {ICreatorCore-setTokenURIExtension}."
      },
      "setTokenURIPrefix(string)": {
        "details": "See {ICreatorCore-setTokenURIPrefix}."
      },
      "setTokenURIPrefixExtension(string)": {
        "details": "See {ICreatorCore-setTokenURIPrefixExtension}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "tokenExtension(uint256)": {
        "details": "See {IERC1155CreatorCore-tokenExtension}."
      },
      "totalSupply(uint256)": {
        "details": "Total amount of tokens in with a given id."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      },
      "unregisterExtension(address)": {
        "details": "See {ICreatorCore-unregisterExtension}."
      },
      "uri(uint256)": {
        "details": "See {IERC1155MetadataURI-uri}."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}