{
  "contractName": "MockERC1155CreatorMintPermissions",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator_",
          "type": "address"
        }
      ],
      "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": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "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": [],
      "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": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveEnabled",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "approveMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator_\",\"type\":\"address\"}],\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"approveMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"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\":[],\"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\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveEnabled\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mocks/MockERC1155CreatorMintPermissions.sol\":\"MockERC1155CreatorMintPermissions\"},\"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/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/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"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/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/mocks/MockERC1155CreatorMintPermissions.sol\":{\"keccak256\":\"0xb6e03093a78f83cf7ea75b171c219fe25786cd48f29321aa9c555631c073d2e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5ffc652c73cbef56e6d4b9108afc7ac484e52ea9bedd2a76098b5c6fdfd9468\",\"dweb:/ipfs/QmeEBGfTZo7vkXgVKJQs7PYGm8q8pVr6ZMEuLzuNU7K8WM\"]},\"project:/contracts/permissions/ERC1155/ERC1155CreatorMintPermissions.sol\":{\"keccak256\":\"0x6362c117f39e45360c422f2275e78ce3ac8787cea04df44e561200f59254ebdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b13d92c736d3e83e580d62dbf74f621175c758024b239749bdc507ff9a880352\",\"dweb:/ipfs/QmdMM6vsJaYCeJMfJ8wXqRTUqkC9xzX82tpQ8prWoHb3VU\"]},\"project:/contracts/permissions/ERC1155/IERC1155CreatorMintPermissions.sol\":{\"keccak256\":\"0x0cf037e3da9a47dab1b0c287d128497f6e28bdbadb4b66f7949a63f8fa144de0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://627c99459b5e9bf311d7b463ffefc405ca7f257a518ad7b6ea3e14859998bb25\",\"dweb:/ipfs/QmaPeix3g2ZDAt662biM5pkAEJ54TNH4jCqeJd46KhEguP\"]}},\"version\":1}",
  "bytecode": "0x60a060405234801561001057600080fd5b50604051610c44380380610c4483398101604081905261002f916101f4565b80610039336100c4565b61004a816301f4921160e61b610114565b6100a55760405162461bcd60e51b815260206004820152602260248201527f4d75737420696d706c656d656e7420494552433131353543726561746f72436f604482015261726560f01b606482015260840160405180910390fd5b6001600160a01b0316608052506003805460ff1916600117905561021d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061011f83610137565b80156101305750610130838361016b565b9392505050565b600061014a826301ffc9a760e01b61016b565b80156101655750610163826001600160e01b031961016b565b155b92915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156101dd575060208210155b80156101e95750600081115b979650505050505050565b60006020828403121561020657600080fd5b81516001600160a01b038116811461013057600080fd5b608051610a0c61023860003960006105a80152610a0c6000f3fe608060405234801561001057600080fd5b506004361061008e5760003560e01c806301ffc9a71461009357806324d7806c146100bb5780632d345670146100ce57806331ae450b146100e35780636d73e669146100f8578063715018a61461010b5780638da5cb5b14610113578063d9accf9214610133578063f1d4552e14610154578063f2fde38b14610167575b600080fd5b6100a66100a136600461078d565b61017a565b60405190151581526020015b60405180910390f35b6100a66100c93660046107d3565b6101a5565b6100e16100dc3660046107d3565b6101d4565b005b6100eb610232565b6040516100b291906107ee565b6100e16101063660046107d3565b6102e0565b6100e1610338565b61011b61034c565b6040516001600160a01b0390911681526020016100b2565b6100e161014136600461083b565b6003805460ff1916911515919091179055565b6100e16101623660046108a8565b61035b565b6100e16101753660046107d3565b6103de565b60006001600160e01b031982166378ea2a9760e11b148061019f575061019f82610454565b92915050565b6000816001600160a01b03166101b961034c565b6001600160a01b0316148061019f575061019f600183610489565b6101dc6104ae565b6101e7600182610489565b1561022f5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361022d60018261050d565b505b50565b606061023e6001610522565b6001600160401b0381111561025557610255610952565b60405190808252806020026020018201604052801561027e578160200160208202803683370190505b50905060005b61028e6001610522565b8110156102dc576102a060018261052c565b8282815181106102b2576102b2610968565b6001600160a01b0390921660209283029190910190910152806102d481610994565b915050610284565b5090565b6102e86104ae565b6102f3600182610489565b61022f5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a361022d600182610538565b6103406104ae565b61034a600061054d565b565b6000546001600160a01b031690565b61036a8787878787878761059d565b60035460ff166103d55760405162461bcd60e51b815260206004820152602b60248201527f4d6f636b4552433131353543726561746f724d696e745065726d697373696f6e60448201526a1cce88111a5cd8589b195960aa1b60648201526084015b60405180910390fd5b50505050505050565b6103e66104ae565b6001600160a01b03811661044b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103cc565b61022f8161054d565b60006001600160e01b03198216632a9f3abf60e11b148061019f57506301ffc9a760e01b6001600160e01b031983161461019f565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b336104b761034c565b6001600160a01b03161461034a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cc565b60006104a7836001600160a01b038416610621565b600061019f825490565b60006104a78383610714565b60006104a7836001600160a01b03841661073e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103d55760405162461bcd60e51b815260206004820152602360248201527f43616e206f6e6c792062652063616c6c656420627920746f6b656e20637265616044820152623a37b960e91b60648201526084016103cc565b6000818152600183016020526040812054801561070a5760006106456001836109ad565b8554909150600090610659906001906109ad565b90508181146106be57600086600001828154811061067957610679610968565b906000526020600020015490508087600001848154811061069c5761069c610968565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806106cf576106cf6109c0565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061019f565b600091505061019f565b600082600001828154811061072b5761072b610968565b9060005260206000200154905092915050565b60008181526001830160205260408120546107855750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561019f565b50600061019f565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104a757600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104a7826107b7565b6020808252825182820181905260009190848201906040850190845b8181101561082f5783516001600160a01b03168352928401929184019160010161080a565b50909695505050505050565b60006020828403121561084d57600080fd5b813580151581146104a757600080fd5b60008083601f84011261086f57600080fd5b5081356001600160401b0381111561088657600080fd5b6020830191508360208260051b85010111156108a157600080fd5b9250929050565b60008060008060008060006080888a0312156108c357600080fd5b6108cc886107b7565b965060208801356001600160401b03808211156108e857600080fd5b6108f48b838c0161085d565b909850965060408a013591508082111561090d57600080fd5b6109198b838c0161085d565b909650945060608a013591508082111561093257600080fd5b5061093f8a828b0161085d565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016109a6576109a661097e565b5060010190565b8181038181111561019f5761019f61097e565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a472c1fa769f8275d086aa09ce15730ce1beb3528ac67ba339295dddb5b48ef764736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061008e5760003560e01c806301ffc9a71461009357806324d7806c146100bb5780632d345670146100ce57806331ae450b146100e35780636d73e669146100f8578063715018a61461010b5780638da5cb5b14610113578063d9accf9214610133578063f1d4552e14610154578063f2fde38b14610167575b600080fd5b6100a66100a136600461078d565b61017a565b60405190151581526020015b60405180910390f35b6100a66100c93660046107d3565b6101a5565b6100e16100dc3660046107d3565b6101d4565b005b6100eb610232565b6040516100b291906107ee565b6100e16101063660046107d3565b6102e0565b6100e1610338565b61011b61034c565b6040516001600160a01b0390911681526020016100b2565b6100e161014136600461083b565b6003805460ff1916911515919091179055565b6100e16101623660046108a8565b61035b565b6100e16101753660046107d3565b6103de565b60006001600160e01b031982166378ea2a9760e11b148061019f575061019f82610454565b92915050565b6000816001600160a01b03166101b961034c565b6001600160a01b0316148061019f575061019f600183610489565b6101dc6104ae565b6101e7600182610489565b1561022f5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361022d60018261050d565b505b50565b606061023e6001610522565b6001600160401b0381111561025557610255610952565b60405190808252806020026020018201604052801561027e578160200160208202803683370190505b50905060005b61028e6001610522565b8110156102dc576102a060018261052c565b8282815181106102b2576102b2610968565b6001600160a01b0390921660209283029190910190910152806102d481610994565b915050610284565b5090565b6102e86104ae565b6102f3600182610489565b61022f5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a361022d600182610538565b6103406104ae565b61034a600061054d565b565b6000546001600160a01b031690565b61036a8787878787878761059d565b60035460ff166103d55760405162461bcd60e51b815260206004820152602b60248201527f4d6f636b4552433131353543726561746f724d696e745065726d697373696f6e60448201526a1cce88111a5cd8589b195960aa1b60648201526084015b60405180910390fd5b50505050505050565b6103e66104ae565b6001600160a01b03811661044b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103cc565b61022f8161054d565b60006001600160e01b03198216632a9f3abf60e11b148061019f57506301ffc9a760e01b6001600160e01b031983161461019f565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b336104b761034c565b6001600160a01b03161461034a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cc565b60006104a7836001600160a01b038416610621565b600061019f825490565b60006104a78383610714565b60006104a7836001600160a01b03841661073e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103d55760405162461bcd60e51b815260206004820152602360248201527f43616e206f6e6c792062652063616c6c656420627920746f6b656e20637265616044820152623a37b960e91b60648201526084016103cc565b6000818152600183016020526040812054801561070a5760006106456001836109ad565b8554909150600090610659906001906109ad565b90508181146106be57600086600001828154811061067957610679610968565b906000526020600020015490508087600001848154811061069c5761069c610968565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806106cf576106cf6109c0565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061019f565b600091505061019f565b600082600001828154811061072b5761072b610968565b9060005260206000200154905092915050565b60008181526001830160205260408120546107855750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561019f565b50600061019f565b60006020828403121561079f57600080fd5b81356001600160e01b0319811681146104a757600080fd5b80356001600160a01b03811681146107ce57600080fd5b919050565b6000602082840312156107e557600080fd5b6104a7826107b7565b6020808252825182820181905260009190848201906040850190845b8181101561082f5783516001600160a01b03168352928401929184019160010161080a565b50909695505050505050565b60006020828403121561084d57600080fd5b813580151581146104a757600080fd5b60008083601f84011261086f57600080fd5b5081356001600160401b0381111561088657600080fd5b6020830191508360208260051b85010111156108a157600080fd5b9250929050565b60008060008060008060006080888a0312156108c357600080fd5b6108cc886107b7565b965060208801356001600160401b03808211156108e857600080fd5b6108f48b838c0161085d565b909850965060408a013591508082111561090d57600080fd5b6109198b838c0161085d565b909650945060608a013591508082111561093257600080fd5b5061093f8a828b0161085d565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016109a6576109a661097e565b5060010190565b8181038181111561019f5761019f61097e565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a472c1fa769f8275d086aa09ce15730ce1beb3528ac67ba339295dddb5b48ef764736f6c63430008130033",
  "immutableReferences": {
    "18301": [
      {
        "length": 32,
        "start": 1448
      }
    ]
  },
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:916:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "95:209:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "141:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "150:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "153:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "143:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "143:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "143:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "116:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "125:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "112:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "112:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "137:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "108:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "108:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "105:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "166:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "185:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "179:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "179:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "170:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "258:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "267:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "270:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "260:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "260:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "260:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "217:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "228:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "243:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "248:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "239:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "239:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "252:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "235:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "235:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "224:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "224:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "214:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "214:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "207:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "207:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "204:70:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "283:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "293:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "283:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "61:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "72:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "84:6:81",
                "type": ""
              }
            ],
            "src": "14:290:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "483:224:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "500:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "511:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "493:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "493:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "493:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "534:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "545:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "530:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "530:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "550:2:81",
                        "type": "",
                        "value": "34"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "523:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "523:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "523:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "573:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "584:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "569:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "569:18:81"
                      },
                      {
                        "hexValue": "4d75737420696d706c656d656e7420494552433131353543726561746f72436f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "589:34:81",
                        "type": "",
                        "value": "Must implement IERC1155CreatorCo"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "562:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "562:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "562:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "644:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "655:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "640:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "640:18:81"
                      },
                      {
                        "hexValue": "7265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "660:4:81",
                        "type": "",
                        "value": "re"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "633:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "633:32:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "633:32:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "674:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "686:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "697:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "682:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "682:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "674:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_69674bf5823907a4f4c974e5b0afc571b074e19ddecc2f7a65f8a100b98e8324__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "460:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "474:4:81",
                "type": ""
              }
            ],
            "src": "309:398:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "811:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "821:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "833:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "844:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "829:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "829:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "821:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "863:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "878:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "890:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "895:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "886:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "886:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "874:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "856:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "856:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "856:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "780:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "791:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "802:4:81",
                "type": ""
              }
            ],
            "src": "712:202:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_69674bf5823907a4f4c974e5b0afc571b074e19ddecc2f7a65f8a100b98e8324__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 34)\n        mstore(add(headStart, 64), \"Must implement IERC1155CreatorCo\")\n        mstore(add(headStart, 96), \"re\")\n        tail := add(headStart, 128)\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}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:5937:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "83:217:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "129:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "138:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "141:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "131:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "131:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "131:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "104:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "113:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "100:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "100:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "125:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "96:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "96:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "93:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "154:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "180:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "167:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "167:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "158:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "254:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "263:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "266:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "256:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "256:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "256:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "212:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "223:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "234:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "239:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "230:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "230:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "219:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "219:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "209:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "209:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "202:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "199:71:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "279:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "289:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "279:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "60:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "72:6:81",
                "type": ""
              }
            ],
            "src": "14:286:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "400:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "410:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "422:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "433:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "418:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "418:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "410:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "452:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "477:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "470:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "470:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "463:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "463:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "445:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "445:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "445:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "369:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "380:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "391:4:81",
                "type": ""
              }
            ],
            "src": "305:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "546:124:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "556:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "578:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "565:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "565:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "556:5:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "648:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "657:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "660:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "650:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "650:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "650:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "607:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "618:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "633:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "638:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "629:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "629:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "642:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "625:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "625:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "614:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "614:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "604:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "604:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "597:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "597:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "594:70:81"
                }
              ]
            },
            "name": "abi_decode_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "525:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "536:5:81",
                "type": ""
              }
            ],
            "src": "497:173:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "745:116:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "791:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "800:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "803:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "793:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "793:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "793:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "766:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "775:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "762:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "762:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "787:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "758:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "758:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "755:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "816:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "845:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "826:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "826:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "816:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "711:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "722:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "734:6:81",
                "type": ""
              }
            ],
            "src": "675:186:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1017:507:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1027:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1037:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "1031:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1048:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1066:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1077:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1062:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1062:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "1052:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1096:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1107:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1089:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1089:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1089:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1119:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "1130:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "1123:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1145:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1165:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1159:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1159:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1149:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "1188:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1196:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1181:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1181:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1181:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1212:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1223:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1234:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1219:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1219:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "1212:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1246:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1264:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1272:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1260:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1260:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "1250:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1284:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1293:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1288:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1352:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1373:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "1388:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "1382:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1382:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1405:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1410:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "1401:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1401:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "1414:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "1397:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1397:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "1378:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1378:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1366:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1366:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1366:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1431:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1442:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1447:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1438:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1438:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1431:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1463:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "1477:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1485:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1473:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1473:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1463:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1314:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1317:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1311:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1311:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1325:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1327:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1336:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1339:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1332:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1332:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1327:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1307:3:81",
                    "statements": []
                  },
                  "src": "1303:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1507:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "1515:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1507: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": "986:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "997:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1008:4:81",
                "type": ""
              }
            ],
            "src": "866:658:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1630:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1640:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1652:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1663:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1648:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1648:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1640:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1682:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "1697:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1713:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1718:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "1709:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1709:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1722:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "1705:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1705:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "1693:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1693:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1675:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1675:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1675:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1599:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1610:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1621:4:81",
                "type": ""
              }
            ],
            "src": "1529:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1804:206:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1850:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1859:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1862:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1852:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1852:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1852:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1825:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1834:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1821:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1821:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1846:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1817:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1817:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1814:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1875:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1901:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1888:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1888:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1879:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1964:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1973:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1976:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1966:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1966:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1966:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1933:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "1954:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "1947:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1947:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1940:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1940:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "1930:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1930:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "1923:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1923:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1920:60:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1989:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1999:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1989:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1770:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1781:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1793:6:81",
                "type": ""
              }
            ],
            "src": "1737:273:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2099:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2148:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2157:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2160:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2150:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2150:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2150:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2127:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2135:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2123:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2123:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "2142:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "2119:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2119:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "2112:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2112:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2109:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2173:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2196:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2183:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2183:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "2173:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2246:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2255:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2258:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2248:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2248:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2248:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2218:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2226:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2215:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2215:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2212:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2271:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2287:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2295:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2283:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2283:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "2271:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2360:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2369:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2372:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2362:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2362:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2362:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2323:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2335:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "2338:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2331:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2331:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2319:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2319:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2348:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2315:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2315:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "2355:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2312:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2312:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2309:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "2062:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2070:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "2078:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "2088:6:81",
                "type": ""
              }
            ],
            "src": "2015:367:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2613:937:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2660:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2669:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2672:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2662:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2662:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2662:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2634:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2643:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2630:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2630:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2655:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2626:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2626:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2623:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2685:39:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2714:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_address",
                      "nodeType": "YulIdentifier",
                      "src": "2695:18:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2695:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2685:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2733:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2764:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2775:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2760:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2760:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2747:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2747:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "2737:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2788:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2798:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2792:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2843:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2852:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2855:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2845:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2845:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2845:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "2831:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2839:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "2828:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2828:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2825:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2868:96:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2936:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "2947:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2932:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2932:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "2956:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "2894:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2894:70:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "2872:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "2882:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2973:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "2983:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "2973:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3000:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3010:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3000:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3027:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3060:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3071:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3056:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3056:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3043:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3043:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "3031:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3104:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3113:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3116:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3106:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3106:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3106:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "3090:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3100:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3087:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3087:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3084:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3129:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3197:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "3208:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3193:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3193:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3219:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3155:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3155:72:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "3133:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "3143:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3236:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "3246:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "3236:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3263:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "3273:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "3263:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3290:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3323:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3334:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3319:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3319:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3306:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3306:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "3294:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3367:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3376:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3379:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3369:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3369:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3369:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "3353:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3363:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3350:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3350:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3347:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3392:98:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3460:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "3471:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3456:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3456:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3482:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3418:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3418:72:81"
                  },
                  "variables": [
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "3396:8:81",
                      "type": ""
                    },
                    {
                      "name": "value6_1",
                      "nodeType": "YulTypedName",
                      "src": "3406:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3499:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "3509:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "3499:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3526:18:81",
                  "value": {
                    "name": "value6_1",
                    "nodeType": "YulIdentifier",
                    "src": "3536:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value6",
                      "nodeType": "YulIdentifier",
                      "src": "3526:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_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": "2531:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2542:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2554:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2562:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "2570:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "2578:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "2586:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "2594:6:81",
                "type": ""
              },
              {
                "name": "value6",
                "nodeType": "YulTypedName",
                "src": "2602:6:81",
                "type": ""
              }
            ],
            "src": "2387:1163:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3587:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3604:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3611:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3616:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "3607:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3607:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3597:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3597:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3597:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3644:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3647:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3637:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3637:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3637:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3668:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3671:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "3661:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3661:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3661:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "3555:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3719:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3736:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3743:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3748:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "3739:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3739:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3729:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3729:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3729:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3776:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3779:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3769:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3769:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3769:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3800:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3803:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "3793:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3793:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3793:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "3687:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3851:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3868:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3875:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3880:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "3871:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3871:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3861:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3861:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3861:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3908:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3911:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3901:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3901:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3901:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3932:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3935:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "3925:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3925:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3925:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "3819:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3998:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4029:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "4031:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4031:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4031:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "4014:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4025:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "4021:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4021:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "4011:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4011:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4008:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4060:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "4071:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4078:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4067:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4067:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "4060:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "3980:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "3990:3:81",
                "type": ""
              }
            ],
            "src": "3951:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4265:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4282:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4293:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4275:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4275:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4275:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4316:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4327:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4312:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4312:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4332:2:81",
                        "type": "",
                        "value": "43"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4305:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4305:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4305:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4355:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4366:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4351:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4351:18:81"
                      },
                      {
                        "hexValue": "4d6f636b4552433131353543726561746f724d696e745065726d697373696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4371:34:81",
                        "type": "",
                        "value": "MockERC1155CreatorMintPermission"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4344:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4344:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4344:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4426:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4437:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4422:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4422:18:81"
                      },
                      {
                        "hexValue": "733a2044697361626c6564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4442:13:81",
                        "type": "",
                        "value": "s: Disabled"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4415:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4415:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4415:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4465:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4477:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4488:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4473:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4473:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4465:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6649ce24c944adfc7053a1c022fa2f310a49161759c979fce4fc17be5d042160__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4242:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4256:4:81",
                "type": ""
              }
            ],
            "src": "4091:407:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4677:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4694:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4705:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4687:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4687:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4687:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4728:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4739:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4724:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4724:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4744:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4717:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4717:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4717:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4767:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4778:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4763:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4763:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4783:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4756:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4756:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4756:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4838:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4849:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4834:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4834:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4854:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4827:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4827:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4827:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4872:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4884:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4895:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4880:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4880:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4872:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4654:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4668:4:81",
                "type": ""
              }
            ],
            "src": "4503:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5084:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5101:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5112:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5094:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5094:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5094:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5135:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5146:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5131:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5131:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5151:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5124:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5124:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5124:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5174:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5185:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5170:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5170:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5190:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5163:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5163:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5163:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5234:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5246:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5257:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5242:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5242:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5234:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5061:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5075:4:81",
                "type": ""
              }
            ],
            "src": "4910:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5445:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5462:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5473:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5455:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5455:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5455:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5496:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5507:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5492:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5492:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5512:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5485:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5485:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5485:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5535:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5546:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5531:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5531:18:81"
                      },
                      {
                        "hexValue": "43616e206f6e6c792062652063616c6c656420627920746f6b656e2063726561",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5551:34:81",
                        "type": "",
                        "value": "Can only be called by token crea"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5524:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5524:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5524:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5606:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5617:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5602:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5602:18:81"
                      },
                      {
                        "hexValue": "746f72",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5622:5:81",
                        "type": "",
                        "value": "tor"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5595:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5595:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5595:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5637:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5649:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5660:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5645:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5645:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5637:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_a7799927f69afdc4e349874d858a998867065cdd7a64751c41248a3f2a0a2190__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5422:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5436:4:81",
                "type": ""
              }
            ],
            "src": "5271:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5724:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5734:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "5746:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "5749:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "5742:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5742:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "5734:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5775:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "5777:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5777:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5777:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "5766:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "5772:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5763:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5763:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5760:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "5706:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "5709:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "5715:4:81",
                "type": ""
              }
            ],
            "src": "5675:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5840:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5857:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5864:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5869:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "5860:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5860:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5850:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5850:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5850:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5897:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5900:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5890:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5890:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5890:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5921:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5924:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "5914:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5914:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5914:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "5808:127:81"
          }
        ]
      },
      "contents": "{\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        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\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_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\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        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _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        tail := pos\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_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_decode_array_address_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_addresst_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, value6\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(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_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_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n        let offset_2 := calldataload(add(headStart, 96))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value5_1, value6_1 := abi_decode_array_address_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value5 := value5_1\n        value6 := value6_1\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\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_6649ce24c944adfc7053a1c022fa2f310a49161759c979fce4fc17be5d042160__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 43)\n        mstore(add(headStart, 64), \"MockERC1155CreatorMintPermission\")\n        mstore(add(headStart, 96), \"s: Disabled\")\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_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_a7799927f69afdc4e349874d858a998867065cdd7a64751c41248a3f2a0a2190__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), \"Can only be called by token crea\")\n        mstore(add(headStart, 96), \"tor\")\n        tail := add(headStart, 128)\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 panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "126:634:61:-:0;;;235:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;296:8;936:32:7;719:10:17;936:18:7;:32::i;:::-;766:80:70;798:8;-1:-1:-1;;;766:31:70;:80::i;:::-;758:127;;;;-1:-1:-1;;;758:127:70;;511:2:81;758:127:70;;;493:21:81;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:81;;;633:32;682:19;;758:127:70;;;;;;;;-1:-1:-1;;;;;896:19:70;;;-1:-1:-1;316:15:61::1;:22:::0;;-1:-1:-1;;316:22:61::1;334:4;316:22;::::0;;126:634;;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;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;-1:-1:-1;1570:54:20;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:20:o;704:427::-;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;975:149;956:168;704:427;-1:-1:-1;;704:427:20:o;4262:647::-;4433:71;;;-1:-1:-1;;;;;;874:33:81;;4433:71:20;;;;856:52:81;;;;4433:71:20;;;;;;;;;;829: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;14:290:81:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:81;;214:42;;204:70;;270:1;267;260:12;712:202;126:634:61;;;;;;;;;;;;",
  "deployedSourceMap": "126:634:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;990:261:70;;;;;;:::i;:::-;;:::i;:::-;;;470:14:81;;463:22;445:41;;433:2;418:18;990:261:70;;;;;;;;1980:137:0;;;;;;:::i;:::-;;:::i;1712:205::-;;;;;;:::i;:::-;;:::i;:::-;;1111:261;;;:::i;:::-;;;;;;;:::i;1440:205::-;;;;;;:::i;:::-;;:::i;1831:101:7:-;;;:::i;1201:85::-;;;:::i;:::-;;;-1:-1:-1;;;;;1693:32:81;;;1675:51;;1663:2;1648:18;1201:85:7;1529:203:81;351:92:61;;;;;;:::i;:::-;411:15;:25;;-1:-1:-1;;411:25:61;;;;;;;;;;351:92;449:309;;;;;;:::i;:::-;;:::i;2081:198:7:-;;;;;;:::i;:::-;;:::i;990:261:70:-;1106:4;-1:-1:-1;;;;;;1129:63:70;;-1:-1:-1;;;1129:63:70;;:115;;;1208:36;1232:11;1208:23;:36::i;:::-;1122:122;990:261;-1:-1:-1;;990:261:70: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;1712:205::-;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;:::-;;1786:125;1712:205:::0;:::o;1111:261::-;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;1440:205::-;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;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:7;;1201:85::o;449:309:61:-;595:75;637:9;648:2;;652:8;;662:7;;595:41;:75::i;:::-;688:15;;;;680:71;;;;-1:-1:-1;;;680:71:61;;4293:2:81;680:71:61;;;4275:21:81;4332:2;4312:18;;;4305:30;4371:34;4351:18;;;4344:62;-1:-1:-1;;;4422:18:81;;;4415:41;4473:19;;680:71:61;;;;;;;;;449:309;;;;;;;:::o;2081:198:7:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:7;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:7;;4705:2:81;2161:73:7::1;::::0;::::1;4687:21:81::0;4744:2;4724:18;;;4717:30;4783:34;4763:18;;;4756:62;-1:-1:-1;;;4834:18:81;;;4827:36;4880:19;;2161:73:7::1;4503:402:81::0;2161:73:7::1;2244:28;2263:8;2244:18;:28::i;565:230:0:-: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;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;;5112:2:81;1414:68:7;;;5094:21:81;;;5131:18;;;5124:30;5190:34;5170:18;;;5163:62;5242:18;;1414:68:7;4910:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;9098:115::-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;8297:150::-;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;1335:202:70:-;1468:10;-1:-1:-1;;;;;1482:8:70;1468:22;;1460:70;;;;-1:-1:-1;;;1460:70:70;;5473:2:81;1460:70:70;;;5455:21:81;5512:2;5492:18;;;5485:30;5551:34;5531:18;;;5524:62;-1:-1:-1;;;5602:18:81;;;5595:33;5645:19;;1460:70:70;5271:399:81;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;;;;;4904:118;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;2206:404::-;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;;14:286:81;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:81;;209:43;;199:71;;266:1;263;256:12;497:173;565:20;;-1:-1:-1;;;;;614:31:81;;604:42;;594:70;;660:1;657;650:12;594:70;497:173;;;:::o;675:186::-;734:6;787:2;775:9;766:7;762:23;758:32;755:52;;;803:1;800;793:12;755:52;826:29;845:9;826:29;:::i;866:658::-;1037:2;1089:21;;;1159:13;;1062:18;;;1181:22;;;1008:4;;1037:2;1260:15;;;;1234:2;1219:18;;;1008:4;1303:195;1317:6;1314:1;1311:13;1303:195;;;1382:13;;-1:-1:-1;;;;;1378:39:81;1366:52;;1473:15;;;;1438:12;;;;1414:1;1332:9;1303:195;;;-1:-1:-1;1515:3:81;;866:658;-1:-1:-1;;;;;;866:658:81:o;1737:273::-;1793:6;1846:2;1834:9;1825:7;1821:23;1817:32;1814:52;;;1862:1;1859;1852:12;1814:52;1901:9;1888:23;1954:5;1947:13;1940:21;1933:5;1930:32;1920:60;;1976:1;1973;1966:12;2015:367;2078:8;2088:6;2142:3;2135:4;2127:6;2123:17;2119:27;2109:55;;2160:1;2157;2150:12;2109:55;-1:-1:-1;2183:20:81;;-1:-1:-1;;;;;2215:30:81;;2212:50;;;2258:1;2255;2248:12;2212:50;2295:4;2287:6;2283:17;2271:29;;2355:3;2348:4;2338:6;2335:1;2331:14;2323:6;2319:27;2315:38;2312:47;2309:67;;;2372:1;2369;2362:12;2309:67;2015:367;;;;;:::o;2387:1163::-;2554:6;2562;2570;2578;2586;2594;2602;2655:3;2643:9;2634:7;2630:23;2626:33;2623:53;;;2672:1;2669;2662:12;2623:53;2695:29;2714:9;2695:29;:::i;:::-;2685:39;;2775:2;2764:9;2760:18;2747:32;-1:-1:-1;;;;;2839:2:81;2831:6;2828:14;2825:34;;;2855:1;2852;2845:12;2825:34;2894:70;2956:7;2947:6;2936:9;2932:22;2894:70;:::i;:::-;2983:8;;-1:-1:-1;2868:96:81;-1:-1:-1;3071:2:81;3056:18;;3043:32;;-1:-1:-1;3087:16:81;;;3084:36;;;3116:1;3113;3106:12;3084:36;3155:72;3219:7;3208:8;3197:9;3193:24;3155:72;:::i;:::-;3246:8;;-1:-1:-1;3129:98:81;-1:-1:-1;3334:2:81;3319:18;;3306:32;;-1:-1:-1;3350:16:81;;;3347:36;;;3379:1;3376;3369:12;3347:36;;3418:72;3482:7;3471:8;3460:9;3456:24;3418:72;:::i;:::-;2387:1163;;;;-1:-1:-1;2387:1163:81;;-1:-1:-1;2387:1163:81;;;;3392:98;;-1:-1:-1;;;2387:1163:81:o;3555:127::-;3616:10;3611:3;3607:20;3604:1;3597:31;3647:4;3644:1;3637:15;3671:4;3668:1;3661:15;3687:127;3748:10;3743:3;3739:20;3736:1;3729:31;3779:4;3776:1;3769:15;3803:4;3800:1;3793:15;3819:127;3880:10;3875:3;3871:20;3868:1;3861:31;3911:4;3908:1;3901:15;3935:4;3932:1;3925:15;3951:135;3990:3;4011:17;;;4008:43;;4031:18;;:::i;:::-;-1:-1:-1;4078:1:81;4067:13;;3951:135::o;5675:128::-;5742:9;;;5763:11;;;5760:37;;;5777:18;;:::i;5808:127::-;5869:10;5864:3;5860:20;5857:1;5850:31;5900:4;5897:1;5890:15;5924:4;5921:1;5914:15",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../permissions/ERC1155/ERC1155CreatorMintPermissions.sol\";\n\ncontract MockERC1155CreatorMintPermissions is ERC1155CreatorMintPermissions {\n    bool _approveEnabled;\n\n    constructor(address creator_) ERC1155CreatorMintPermissions (creator_) {\n        _approveEnabled = true;\n    }\n\n    function setApproveEnabled(bool enabled) external {\n        _approveEnabled = enabled;\n    }\n\n    function approveMint(address extension, address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public override {\n        ERC1155CreatorMintPermissions.approveMint(extension, to, tokenIds, amounts);\n        require(_approveEnabled, \"MockERC1155CreatorMintPermissions: Disabled\");\n    }\n}\n",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/mocks/MockERC1155CreatorMintPermissions.sol",
  "ast": {
    "absolutePath": "project:/contracts/mocks/MockERC1155CreatorMintPermissions.sol",
    "exportedSymbols": {
      "AddressUpgradeable": [
        1002
      ],
      "AdminControl": [
        185
      ],
      "Context": [
        1933
      ],
      "CreatorCore": [
        13473
      ],
      "ERC1155CreatorMintPermissions": [
        18374
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC1155CreatorMintPermissions": [
        18396
      ],
      "IERC165": [
        2338
      ],
      "Math": [
        3203
      ],
      "MockERC1155CreatorMintPermissions": [
        17248
      ],
      "Ownable": [
        1157
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 17249,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 17189,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:61"
      },
      {
        "absolutePath": "project:/contracts/permissions/ERC1155/ERC1155CreatorMintPermissions.sol",
        "file": "../permissions/ERC1155/ERC1155CreatorMintPermissions.sol",
        "id": 17190,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17249,
        "sourceUnit": 18375,
        "src": "58:66:61",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 17191,
              "name": "ERC1155CreatorMintPermissions",
              "nameLocations": [
                "172:29:61"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 18374,
              "src": "172:29:61"
            },
            "id": 17192,
            "nodeType": "InheritanceSpecifier",
            "src": "172:29:61"
          }
        ],
        "canonicalName": "MockERC1155CreatorMintPermissions",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 17248,
        "linearizedBaseContracts": [
          17248,
          18374,
          18396,
          185,
          2132,
          417,
          2338,
          1157,
          1933
        ],
        "name": "MockERC1155CreatorMintPermissions",
        "nameLocation": "135:33:61",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 17194,
            "mutability": "mutable",
            "name": "_approveEnabled",
            "nameLocation": "213:15:61",
            "nodeType": "VariableDeclaration",
            "scope": 17248,
            "src": "208:20:61",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 17193,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "208:4:61",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17206,
              "nodeType": "Block",
              "src": "306:39:61",
              "statements": [
                {
                  "expression": {
                    "id": 17204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17202,
                      "name": "_approveEnabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17194,
                      "src": "316:15:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "74727565",
                      "id": 17203,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "334:4:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "316:22:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17205,
                  "nodeType": "ExpressionStatement",
                  "src": "316:22:61"
                }
              ]
            },
            "id": 17207,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 17199,
                    "name": "creator_",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17196,
                    "src": "296:8:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 17200,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 17198,
                  "name": "ERC1155CreatorMintPermissions",
                  "nameLocations": [
                    "265:29:61"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 18374,
                  "src": "265:29:61"
                },
                "nodeType": "ModifierInvocation",
                "src": "265:40:61"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17196,
                  "mutability": "mutable",
                  "name": "creator_",
                  "nameLocation": "255:8:61",
                  "nodeType": "VariableDeclaration",
                  "scope": 17207,
                  "src": "247:16:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17195,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:7:61",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "246:18:61"
            },
            "returnParameters": {
              "id": 17201,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "306:0:61"
            },
            "scope": 17248,
            "src": "235:110:61",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17216,
              "nodeType": "Block",
              "src": "401:42:61",
              "statements": [
                {
                  "expression": {
                    "id": 17214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17212,
                      "name": "_approveEnabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17194,
                      "src": "411:15:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 17213,
                      "name": "enabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17209,
                      "src": "429:7:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "411:25:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17215,
                  "nodeType": "ExpressionStatement",
                  "src": "411:25:61"
                }
              ]
            },
            "functionSelector": "d9accf92",
            "id": 17217,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setApproveEnabled",
            "nameLocation": "360:17:61",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17209,
                  "mutability": "mutable",
                  "name": "enabled",
                  "nameLocation": "383:7:61",
                  "nodeType": "VariableDeclaration",
                  "scope": 17217,
                  "src": "378:12:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17208,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "378:4:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "377:14:61"
            },
            "returnParameters": {
              "id": 17211,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "401:0:61"
            },
            "scope": 17248,
            "src": "351:92:61",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              18373
            ],
            "body": {
              "id": 17246,
              "nodeType": "Block",
              "src": "585:173:61",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17235,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17219,
                        "src": "637:9:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 17236,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17222,
                        "src": "648:2:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 17237,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17225,
                        "src": "652:8:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 17238,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17228,
                        "src": "662:7:61",
                        "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"
                        }
                      ],
                      "expression": {
                        "id": 17232,
                        "name": "ERC1155CreatorMintPermissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18374,
                        "src": "595:29:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC1155CreatorMintPermissions_$18374_$",
                          "typeString": "type(contract ERC1155CreatorMintPermissions)"
                        }
                      },
                      "id": 17234,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "625:11:61",
                      "memberName": "approveMint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18373,
                      "src": "595:41:61",
                      "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": 17239,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "595:75:61",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17240,
                  "nodeType": "ExpressionStatement",
                  "src": "595:75:61"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17242,
                        "name": "_approveEnabled",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17194,
                        "src": "688:15:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4d6f636b4552433131353543726561746f724d696e745065726d697373696f6e733a2044697361626c6564",
                        "id": 17243,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "705:45:61",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6649ce24c944adfc7053a1c022fa2f310a49161759c979fce4fc17be5d042160",
                          "typeString": "literal_string \"MockERC1155CreatorMintPermissions: Disabled\""
                        },
                        "value": "MockERC1155CreatorMintPermissions: Disabled"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6649ce24c944adfc7053a1c022fa2f310a49161759c979fce4fc17be5d042160",
                          "typeString": "literal_string \"MockERC1155CreatorMintPermissions: Disabled\""
                        }
                      ],
                      "id": 17241,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "680:7:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17244,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "680:71:61",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17245,
                  "nodeType": "ExpressionStatement",
                  "src": "680:71:61"
                }
              ]
            },
            "functionSelector": "f1d4552e",
            "id": 17247,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approveMint",
            "nameLocation": "458:11:61",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17230,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "576:8:61"
            },
            "parameters": {
              "id": 17229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17219,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "478:9:61",
                  "nodeType": "VariableDeclaration",
                  "scope": 17247,
                  "src": "470:17:61",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17218,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "470:7:61",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17222,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "508:2:61",
                  "nodeType": "VariableDeclaration",
                  "scope": 17247,
                  "src": "489:21:61",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17220,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "489:7:61",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 17221,
                    "nodeType": "ArrayTypeName",
                    "src": "489:9:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17225,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "531:8:61",
                  "nodeType": "VariableDeclaration",
                  "scope": 17247,
                  "src": "512:27:61",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17223,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "512:7:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17224,
                    "nodeType": "ArrayTypeName",
                    "src": "512:9:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17228,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "560:7:61",
                  "nodeType": "VariableDeclaration",
                  "scope": 17247,
                  "src": "541:26:61",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17226,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "541:7:61",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17227,
                    "nodeType": "ArrayTypeName",
                    "src": "541:9:61",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "469:99:61"
            },
            "returnParameters": {
              "id": 17231,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "585:0:61"
            },
            "scope": 17248,
            "src": "449:309:61",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 17249,
        "src": "126:634:61",
        "usedErrors": []
      }
    ],
    "src": "33:728:61"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.793Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions 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}."
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}