{
  "contractName": "DefaultCallbackHandler",
  "sourceName": "@gnosis.pm/safe-contracts/contracts/handler/DefaultCallbackHandler.sol",
  "abi": [
    {
      "inputs": [],
      "name": "NAME",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155BatchReceived",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC1155Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC721Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "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": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "tokensReceived",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061058e806100206000396000f3fe608060405234801561001057600080fd5b506004361061007c5760003560e01c8063a3f4df7e1161005b578063a3f4df7e146100fb578063bc197c8114610144578063f23a6e6114610166578063ffa1ad741461018657600080fd5b806223de291461008157806301ffc9a71461009b578063150b7a02146100c3575b600080fd5b61009961008f366004610261565b5050505050505050565b005b6100ae6100a936600461030c565b6101aa565b60405190151581526020015b60405180910390f35b6100e26100d136600461033d565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016100ba565b6101376040518060400160405280601881526020017f44656661756c742043616c6c6261636b2048616e646c6572000000000000000081525081565b6040516100ba91906103ac565b6100e2610152366004610446565b63bc197c8160e01b98975050505050505050565b6100e26101743660046104e0565b63f23a6e6160e01b9695505050505050565b610137604051806040016040528060058152602001640312e302e360dc1b81525081565b60006001600160e01b03198216630271189760e51b14806101db57506001600160e01b03198216630a85bd0160e11b145b806101f657506001600160e01b031982166301ffc9a760e01b145b92915050565b80356001600160a01b038116811461021357600080fd5b919050565b60008083601f84011261022a57600080fd5b50813567ffffffffffffffff81111561024257600080fd5b60208301915083602082850101111561025a57600080fd5b9250929050565b60008060008060008060008060c0898b03121561027d57600080fd5b610286896101fc565b975061029460208a016101fc565b96506102a260408a016101fc565b955060608901359450608089013567ffffffffffffffff808211156102c657600080fd5b6102d28c838d01610218565b909650945060a08b01359150808211156102eb57600080fd5b506102f88b828c01610218565b999c989b5096995094979396929594505050565b60006020828403121561031e57600080fd5b81356001600160e01b03198116811461033657600080fd5b9392505050565b60008060008060006080868803121561035557600080fd5b61035e866101fc565b945061036c602087016101fc565b935060408601359250606086013567ffffffffffffffff81111561038f57600080fd5b61039b88828901610218565b969995985093965092949392505050565b600060208083528351808285015260005b818110156103d9578581018301518582016040015282016103bd565b818111156103eb576000604083870101525b50601f01601f1916929092016040019392505050565b60008083601f84011261041357600080fd5b50813567ffffffffffffffff81111561042b57600080fd5b6020830191508360208260051b850101111561025a57600080fd5b60008060008060008060008060a0898b03121561046257600080fd5b61046b896101fc565b975061047960208a016101fc565b9650604089013567ffffffffffffffff8082111561049657600080fd5b6104a28c838d01610401565b909850965060608b01359150808211156104bb57600080fd5b6104c78c838d01610401565b909650945060808b01359150808211156102eb57600080fd5b60008060008060008060a087890312156104f957600080fd5b610502876101fc565b9550610510602088016101fc565b94506040870135935060608701359250608087013567ffffffffffffffff81111561053a57600080fd5b61054689828a01610218565b979a969950949750929593949250505056fea26469706673582212209a8fd4c7d0f1677ab3870eb3b7009644acb64a50d58a3616a82b91299bdd749a64736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007c5760003560e01c8063a3f4df7e1161005b578063a3f4df7e146100fb578063bc197c8114610144578063f23a6e6114610166578063ffa1ad741461018657600080fd5b806223de291461008157806301ffc9a71461009b578063150b7a02146100c3575b600080fd5b61009961008f366004610261565b5050505050505050565b005b6100ae6100a936600461030c565b6101aa565b60405190151581526020015b60405180910390f35b6100e26100d136600461033d565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016100ba565b6101376040518060400160405280601881526020017f44656661756c742043616c6c6261636b2048616e646c6572000000000000000081525081565b6040516100ba91906103ac565b6100e2610152366004610446565b63bc197c8160e01b98975050505050505050565b6100e26101743660046104e0565b63f23a6e6160e01b9695505050505050565b610137604051806040016040528060058152602001640312e302e360dc1b81525081565b60006001600160e01b03198216630271189760e51b14806101db57506001600160e01b03198216630a85bd0160e11b145b806101f657506001600160e01b031982166301ffc9a760e01b145b92915050565b80356001600160a01b038116811461021357600080fd5b919050565b60008083601f84011261022a57600080fd5b50813567ffffffffffffffff81111561024257600080fd5b60208301915083602082850101111561025a57600080fd5b9250929050565b60008060008060008060008060c0898b03121561027d57600080fd5b610286896101fc565b975061029460208a016101fc565b96506102a260408a016101fc565b955060608901359450608089013567ffffffffffffffff808211156102c657600080fd5b6102d28c838d01610218565b909650945060a08b01359150808211156102eb57600080fd5b506102f88b828c01610218565b999c989b5096995094979396929594505050565b60006020828403121561031e57600080fd5b81356001600160e01b03198116811461033657600080fd5b9392505050565b60008060008060006080868803121561035557600080fd5b61035e866101fc565b945061036c602087016101fc565b935060408601359250606086013567ffffffffffffffff81111561038f57600080fd5b61039b88828901610218565b969995985093965092949392505050565b600060208083528351808285015260005b818110156103d9578581018301518582016040015282016103bd565b818111156103eb576000604083870101525b50601f01601f1916929092016040019392505050565b60008083601f84011261041357600080fd5b50813567ffffffffffffffff81111561042b57600080fd5b6020830191508360208260051b850101111561025a57600080fd5b60008060008060008060008060a0898b03121561046257600080fd5b61046b896101fc565b975061047960208a016101fc565b9650604089013567ffffffffffffffff8082111561049657600080fd5b6104a28c838d01610401565b909850965060608b01359150808211156104bb57600080fd5b6104c78c838d01610401565b909650945060808b01359150808211156102eb57600080fd5b60008060008060008060a087890312156104f957600080fd5b610502876101fc565b9550610510602088016101fc565b94506040870135935060608701359250608087013567ffffffffffffffff81111561053a57600080fd5b61054689828a01610218565b979a969950949750929593949250505056fea26469706673582212209a8fd4c7d0f1677ab3870eb3b7009644acb64a50d58a3616a82b91299bdd749a64736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "devdoc": {
    "author": "Richard Meissner - <richard@gnosis.pm>",
    "kind": "dev",
    "methods": {
      "supportsInterface(bytes4)": {
        "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
      }
    },
    "title": "Default Callback Handler - returns true for known token callbacks",
    "version": 1
  },
  "evm": {
    "bytecode": {
      "functionDebugData": {},
      "generatedSources": [],
      "linkReferences": {},
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58E DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA3F4DF7E GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x23DE29 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x9B JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0xC3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x261 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAE PUSH2 0xA9 CALLDATASIZE PUSH1 0x4 PUSH2 0x30C JUMP JUMPDEST PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x33D JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0x137 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x44656661756C742043616C6C6261636B2048616E646C65720000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x446 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E0 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x137 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x1DB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ JUMPDEST DUP1 PUSH2 0x1F6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP10 PUSH2 0x1FC JUMP JUMPDEST SWAP8 POP PUSH2 0x294 PUSH1 0x20 DUP11 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP7 POP PUSH2 0x2A2 PUSH1 0x40 DUP11 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2 DUP13 DUP4 DUP14 ADD PUSH2 0x218 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 DUP12 DUP3 DUP13 ADD PUSH2 0x218 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x35E DUP7 PUSH2 0x1FC JUMP JUMPDEST SWAP5 POP PUSH2 0x36C PUSH1 0x20 DUP8 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39B DUP9 DUP3 DUP10 ADD PUSH2 0x218 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3D9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x3BD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x3EB JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x42B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46B DUP10 PUSH2 0x1FC JUMP JUMPDEST SWAP8 POP PUSH2 0x479 PUSH1 0x20 DUP11 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A2 DUP13 DUP4 DUP14 ADD PUSH2 0x401 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C7 DUP13 DUP4 DUP14 ADD PUSH2 0x401 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x502 DUP8 PUSH2 0x1FC JUMP JUMPDEST SWAP6 POP PUSH2 0x510 PUSH1 0x20 DUP9 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x546 DUP10 DUP3 DUP11 ADD PUSH2 0x218 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 DUP16 0xD4 0xC7 0xD0 CALL PUSH8 0x7AB3870EB3B70096 DIFFICULTY 0xAC 0xB6 0x4A POP 0xD5 DUP11 CALLDATASIZE AND 0xA8 0x2B SWAP2 0x29 SWAP12 0xDD PUSH21 0x9A64736F6C634300080A0033000000000000000000 ",
      "sourceMap": "387:1415:17:-:0;;;;;;;;;;;;;;;;;;;"
    },
    "deployedBytecode": {
      "functionDebugData": {
        "@NAME_2628": {
          "entryPoint": null,
          "id": 2628,
          "parameterSlots": 0,
          "returnSlots": 0
        },
        "@VERSION_2631": {
          "entryPoint": null,
          "id": 2631,
          "parameterSlots": 0,
          "returnSlots": 0
        },
        "@onERC1155BatchReceived_2671": {
          "entryPoint": null,
          "id": 2671,
          "parameterSlots": 8,
          "returnSlots": 1
        },
        "@onERC1155Received_2650": {
          "entryPoint": null,
          "id": 2650,
          "parameterSlots": 6,
          "returnSlots": 1
        },
        "@onERC721Received_2688": {
          "entryPoint": null,
          "id": 2688,
          "parameterSlots": 5,
          "returnSlots": 1
        },
        "@supportsInterface_2735": {
          "entryPoint": 426,
          "id": 2735,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "@tokensReceived_2705": {
          "entryPoint": null,
          "id": 2705,
          "parameterSlots": 8,
          "returnSlots": 0
        },
        "abi_decode_address": {
          "entryPoint": 508,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_decode_array_uint256_dyn_calldata": {
          "entryPoint": 1025,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 2
        },
        "abi_decode_bytes_calldata": {
          "entryPoint": 536,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 2
        },
        "abi_decode_tuple_t_addresst_addresst_addresst_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr": {
          "entryPoint": 609,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 8
        },
        "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr": {
          "entryPoint": 1094,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 8
        },
        "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr": {
          "entryPoint": 829,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 5
        },
        "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr": {
          "entryPoint": 1248,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 6
        },
        "abi_decode_tuple_t_bytes4": {
          "entryPoint": 780,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": 940,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        }
      },
      "generatedSources": [
        {
          "ast": {
            "nodeType": "YulBlock",
            "src": "0:5766:86",
            "statements": [
              {
                "nodeType": "YulBlock",
                "src": "6:3:86",
                "statements": []
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "63:124:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "73:29:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "95:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "82:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "82:20:86"
                      },
                      "variableNames": [
                        {
                          "name": "value",
                          "nodeType": "YulIdentifier",
                          "src": "73:5:86"
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "165:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "174:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "177:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "167:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "167:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "167:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "124:5:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "135:5:86"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "150:3:86",
                                            "type": "",
                                            "value": "160"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "155:1:86",
                                            "type": "",
                                            "value": "1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "shl",
                                          "nodeType": "YulIdentifier",
                                          "src": "146:3:86"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "146:11:86"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "159:1:86",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "142:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "142:19:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "131:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "131:31:86"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "121:2:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "121:42:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "114:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "114:50:86"
                      },
                      "nodeType": "YulIf",
                      "src": "111:70:86"
                    }
                  ]
                },
                "name": "abi_decode_address",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "offset",
                    "nodeType": "YulTypedName",
                    "src": "42:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value",
                    "nodeType": "YulTypedName",
                    "src": "53:5:86",
                    "type": ""
                  }
                ],
                "src": "14:173:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "264:275:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "313:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "322:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "325:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "315:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "315:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "315:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "292:6:86"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "300:4:86",
                                    "type": "",
                                    "value": "0x1f"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "288:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "288:17:86"
                              },
                              {
                                "name": "end",
                                "nodeType": "YulIdentifier",
                                "src": "307:3:86"
                              }
                            ],
                            "functionName": {
                              "name": "slt",
                              "nodeType": "YulIdentifier",
                              "src": "284:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "284:27:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "277:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "277:35:86"
                      },
                      "nodeType": "YulIf",
                      "src": "274:55:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "338:30:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "361:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "348:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "348:20:86"
                      },
                      "variableNames": [
                        {
                          "name": "length",
                          "nodeType": "YulIdentifier",
                          "src": "338:6:86"
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "411:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "420:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "423:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "413:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "413:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "413:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "383:6:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "391:18:86",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "380:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "380:30:86"
                      },
                      "nodeType": "YulIf",
                      "src": "377:50:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "436:29:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "452:6:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "460:4:86",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "448:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "448:17:86"
                      },
                      "variableNames": [
                        {
                          "name": "arrayPos",
                          "nodeType": "YulIdentifier",
                          "src": "436:8:86"
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "517:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "526:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "529:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "519:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "519:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "519:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "488:6:86"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "496:6:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "484:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "484:19:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "505:4:86",
                                "type": "",
                                "value": "0x20"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "480:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "480:30:86"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "512:3:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "477:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "477:39:86"
                      },
                      "nodeType": "YulIf",
                      "src": "474:59:86"
                    }
                  ]
                },
                "name": "abi_decode_bytes_calldata",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "offset",
                    "nodeType": "YulTypedName",
                    "src": "227:6:86",
                    "type": ""
                  },
                  {
                    "name": "end",
                    "nodeType": "YulTypedName",
                    "src": "235:3:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "arrayPos",
                    "nodeType": "YulTypedName",
                    "src": "243:8:86",
                    "type": ""
                  },
                  {
                    "name": "length",
                    "nodeType": "YulTypedName",
                    "src": "253:6:86",
                    "type": ""
                  }
                ],
                "src": "192:347:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "737:817:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "784:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "793:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "796:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "786:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "786:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "786:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "758:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "767:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "754:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "754:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "779:3:86",
                            "type": "",
                            "value": "192"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "750:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "750:33:86"
                      },
                      "nodeType": "YulIf",
                      "src": "747:53:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "809:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "838:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "819:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "819:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "809:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "857:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "890:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "901:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "886:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "886:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "867:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "867:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "857:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "914:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "947:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "958:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "943:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "943:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "924:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "924:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "914:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "971:42:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "998:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1009:2:86",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "994:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "994:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "981:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "981:32:86"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "971:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1022:47:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1053:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1064:3:86",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1049:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1049:19:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "1036:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1036:33:86"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "1026:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1078:28:86",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1088:18:86",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      },
                      "variables": [
                        {
                          "name": "_1",
                          "nodeType": "YulTypedName",
                          "src": "1082:2:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "1133:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1142:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1145:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "1135:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1135:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "1135:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "1121:6:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "1129:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "1118:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1118:14:86"
                      },
                      "nodeType": "YulIf",
                      "src": "1115:34:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1158:84:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1214:9:86"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "1225:6:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1210:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1210:22:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1234:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_bytes_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "1184:25:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1184:58:86"
                      },
                      "variables": [
                        {
                          "name": "value4_1",
                          "nodeType": "YulTypedName",
                          "src": "1162:8:86",
                          "type": ""
                        },
                        {
                          "name": "value5_1",
                          "nodeType": "YulTypedName",
                          "src": "1172:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1251:18:86",
                      "value": {
                        "name": "value4_1",
                        "nodeType": "YulIdentifier",
                        "src": "1261:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "1251:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1278:18:86",
                      "value": {
                        "name": "value5_1",
                        "nodeType": "YulIdentifier",
                        "src": "1288:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "1278:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1305:49:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1338:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1349:3:86",
                                "type": "",
                                "value": "160"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1334:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1334:19:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "1321:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1321:33:86"
                      },
                      "variables": [
                        {
                          "name": "offset_1",
                          "nodeType": "YulTypedName",
                          "src": "1309:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "1383:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1392:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1395:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "1385:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1385:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "1385:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "1369:8:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "1379:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "1366:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1366:16:86"
                      },
                      "nodeType": "YulIf",
                      "src": "1363:36:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1408:86:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1464:9:86"
                              },
                              {
                                "name": "offset_1",
                                "nodeType": "YulIdentifier",
                                "src": "1475:8:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1460:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1460:24:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1486:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_bytes_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "1434:25:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1434:60:86"
                      },
                      "variables": [
                        {
                          "name": "value6_1",
                          "nodeType": "YulTypedName",
                          "src": "1412:8:86",
                          "type": ""
                        },
                        {
                          "name": "value7_1",
                          "nodeType": "YulTypedName",
                          "src": "1422:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1503:18:86",
                      "value": {
                        "name": "value6_1",
                        "nodeType": "YulIdentifier",
                        "src": "1513:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value6",
                          "nodeType": "YulIdentifier",
                          "src": "1503:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1530:18:86",
                      "value": {
                        "name": "value7_1",
                        "nodeType": "YulIdentifier",
                        "src": "1540:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value7",
                          "nodeType": "YulIdentifier",
                          "src": "1530:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_addresst_addresst_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "647:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "658:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "670:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "678:6:86",
                    "type": ""
                  },
                  {
                    "name": "value2",
                    "nodeType": "YulTypedName",
                    "src": "686:6:86",
                    "type": ""
                  },
                  {
                    "name": "value3",
                    "nodeType": "YulTypedName",
                    "src": "694:6:86",
                    "type": ""
                  },
                  {
                    "name": "value4",
                    "nodeType": "YulTypedName",
                    "src": "702:6:86",
                    "type": ""
                  },
                  {
                    "name": "value5",
                    "nodeType": "YulTypedName",
                    "src": "710:6:86",
                    "type": ""
                  },
                  {
                    "name": "value6",
                    "nodeType": "YulTypedName",
                    "src": "718:6:86",
                    "type": ""
                  },
                  {
                    "name": "value7",
                    "nodeType": "YulTypedName",
                    "src": "726:6:86",
                    "type": ""
                  }
                ],
                "src": "544:1010:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "1628:217:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "1674:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1683:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1686:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "1676:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1676:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "1676:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "1649:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1658:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "1645:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1645:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1670:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "1641:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1641:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "1638:52:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1699:36:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1725:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "1712:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1712:23:86"
                      },
                      "variables": [
                        {
                          "name": "value",
                          "nodeType": "YulTypedName",
                          "src": "1703:5:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "1799:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1808:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1811:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "1801:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1801:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "1801:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "1757:5:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "1768:5:86"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1779:3:86",
                                        "type": "",
                                        "value": "224"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "1784:10:86",
                                        "type": "",
                                        "value": "0xffffffff"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "1775:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "1775:20:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "1764:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1764:32:86"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "1754:2:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1754:43:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1747:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1747:51:86"
                      },
                      "nodeType": "YulIf",
                      "src": "1744:71:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1824:15:86",
                      "value": {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1834:5:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "1824:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_bytes4",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "1594:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "1605:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "1617:6:86",
                    "type": ""
                  }
                ],
                "src": "1559:286:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "1945:92:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "1955:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1967:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1978:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1963:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1963:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "1955:4:86"
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1997:9:86"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nodeType": "YulIdentifier",
                                    "src": "2022:6:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "2015:6:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2015:14:86"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "2008:6:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2008:22:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "1990:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1990:41:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "1990:41:86"
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "1914:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "1925:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "1936:4:86",
                    "type": ""
                  }
                ],
                "src": "1850:187:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "2182:486:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "2229:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2238:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2241:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "2231:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2231:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "2231:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "2203:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2212:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "2199:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2199:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2224:3:86",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "2195:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2195:33:86"
                      },
                      "nodeType": "YulIf",
                      "src": "2192:53:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2254:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2283:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "2264:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2264:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "2254:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2302:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2335:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2346:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2331:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2331:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "2312:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2312:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "2302:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2359:42:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2386:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2397:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2382:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2382:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "2369:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2369:32:86"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "2359:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "2410:46:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2441:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2452:2:86",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2437:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2437:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "2424:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2424:32:86"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "2414:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "2499:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2508:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2511:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "2501:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2501:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "2501:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "2471:6:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2479:18:86",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "2468:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2468:30:86"
                      },
                      "nodeType": "YulIf",
                      "src": "2465:50:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "2524:84:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2580:9:86"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "2591:6:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2576:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2576:22:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2600:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_bytes_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "2550:25:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2550:58:86"
                      },
                      "variables": [
                        {
                          "name": "value3_1",
                          "nodeType": "YulTypedName",
                          "src": "2528:8:86",
                          "type": ""
                        },
                        {
                          "name": "value4_1",
                          "nodeType": "YulTypedName",
                          "src": "2538:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2617:18:86",
                      "value": {
                        "name": "value3_1",
                        "nodeType": "YulIdentifier",
                        "src": "2627:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "2617:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2644:18:86",
                      "value": {
                        "name": "value4_1",
                        "nodeType": "YulIdentifier",
                        "src": "2654:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "2644:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "2116:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "2127:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "2139:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "2147:6:86",
                    "type": ""
                  },
                  {
                    "name": "value2",
                    "nodeType": "YulTypedName",
                    "src": "2155:6:86",
                    "type": ""
                  },
                  {
                    "name": "value3",
                    "nodeType": "YulTypedName",
                    "src": "2163:6:86",
                    "type": ""
                  },
                  {
                    "name": "value4",
                    "nodeType": "YulTypedName",
                    "src": "2171:6:86",
                    "type": ""
                  }
                ],
                "src": "2042:626:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "2772:103:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "2782:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2794:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2805:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2790:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2790:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "2782:4:86"
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2824:9:86"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "2839:6:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2851:3:86",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2856:10:86",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2847:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2847:20:86"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "2835:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2835:33:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "2817:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2817:52:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "2817:52:86"
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "2741:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "2752:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "2763:4:86",
                    "type": ""
                  }
                ],
                "src": "2673:202:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3001:476:86",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3011:12:86",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3021:2:86",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "_1",
                          "nodeType": "YulTypedName",
                          "src": "3015:2:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3039:9:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "3050:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3032:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3032:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3032:21:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3062:27:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "3082:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nodeType": "YulIdentifier",
                          "src": "3076:5:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3076:13:86"
                      },
                      "variables": [
                        {
                          "name": "length",
                          "nodeType": "YulTypedName",
                          "src": "3066:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3109:9:86"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "3120:2:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3105:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3105:18:86"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "3125:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3098:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3098:34:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3098:34:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "3141:10:86",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3150:1:86",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "i",
                          "nodeType": "YulTypedName",
                          "src": "3145:1:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3210:90:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "headStart",
                                          "nodeType": "YulIdentifier",
                                          "src": "3239:9:86"
                                        },
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "3250:1:86"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "3235:3:86"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3235:17:86"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "3254:2:86",
                                      "type": "",
                                      "value": "64"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "3231:3:86"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3231:26:86"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "name": "value0",
                                              "nodeType": "YulIdentifier",
                                              "src": "3273:6:86"
                                            },
                                            {
                                              "name": "i",
                                              "nodeType": "YulIdentifier",
                                              "src": "3281:1:86"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "add",
                                            "nodeType": "YulIdentifier",
                                            "src": "3269:3:86"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "3269:14:86"
                                        },
                                        {
                                          "name": "_1",
                                          "nodeType": "YulIdentifier",
                                          "src": "3285:2:86"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "3265:3:86"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3265:23:86"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "3259:5:86"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3259:30:86"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "3224:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3224:66:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3224:66:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "3171:1:86"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "3174:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "3168:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3168:13:86"
                      },
                      "nodeType": "YulForLoop",
                      "post": {
                        "nodeType": "YulBlock",
                        "src": "3182:19:86",
                        "statements": [
                          {
                            "nodeType": "YulAssignment",
                            "src": "3184:15:86",
                            "value": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "3193:1:86"
                                },
                                {
                                  "name": "_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "3196:2:86"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "3189:3:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3189:10:86"
                            },
                            "variableNames": [
                              {
                                "name": "i",
                                "nodeType": "YulIdentifier",
                                "src": "3184:1:86"
                              }
                            ]
                          }
                        ]
                      },
                      "pre": {
                        "nodeType": "YulBlock",
                        "src": "3164:3:86",
                        "statements": []
                      },
                      "src": "3160:140:86"
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3334:66:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "headStart",
                                          "nodeType": "YulIdentifier",
                                          "src": "3363:9:86"
                                        },
                                        {
                                          "name": "length",
                                          "nodeType": "YulIdentifier",
                                          "src": "3374:6:86"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "3359:3:86"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3359:22:86"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "3383:2:86",
                                      "type": "",
                                      "value": "64"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "3355:3:86"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3355:31:86"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3388:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "3348:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3348:42:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3348:42:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "3315:1:86"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "3318:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "3312:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3312:13:86"
                      },
                      "nodeType": "YulIf",
                      "src": "3309:91:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3409:62:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3425:9:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "name": "length",
                                        "nodeType": "YulIdentifier",
                                        "src": "3444:6:86"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3452:2:86",
                                        "type": "",
                                        "value": "31"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "3440:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3440:15:86"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3461:2:86",
                                        "type": "",
                                        "value": "31"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "3457:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3457:7:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "3436:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3436:29:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3421:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3421:45:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3468:2:86",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3417:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3417:54:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "3409:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "2970:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "2981:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "2992:4:86",
                    "type": ""
                  }
                ],
                "src": "2880:597:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3566:283:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3615:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3624:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3627:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "3617:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3617:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3617:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "3594:6:86"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3602:4:86",
                                    "type": "",
                                    "value": "0x1f"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "3590:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3590:17:86"
                              },
                              {
                                "name": "end",
                                "nodeType": "YulIdentifier",
                                "src": "3609:3:86"
                              }
                            ],
                            "functionName": {
                              "name": "slt",
                              "nodeType": "YulIdentifier",
                              "src": "3586:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3586:27:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "3579:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3579:35:86"
                      },
                      "nodeType": "YulIf",
                      "src": "3576:55:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3640:30:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3663:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "3650:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3650:20:86"
                      },
                      "variableNames": [
                        {
                          "name": "length",
                          "nodeType": "YulIdentifier",
                          "src": "3640:6:86"
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3713:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3722:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3725:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "3715:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3715:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3715:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "3685:6:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3693:18:86",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "3682:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3682:30:86"
                      },
                      "nodeType": "YulIf",
                      "src": "3679:50:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3738:29:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3754:6:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3762:4:86",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3750:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3750:17:86"
                      },
                      "variableNames": [
                        {
                          "name": "arrayPos",
                          "nodeType": "YulIdentifier",
                          "src": "3738:8:86"
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3827:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3836:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "3839:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "3829:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3829:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3829:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "offset",
                                    "nodeType": "YulIdentifier",
                                    "src": "3790:6:86"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3802:1:86",
                                        "type": "",
                                        "value": "5"
                                      },
                                      {
                                        "name": "length",
                                        "nodeType": "YulIdentifier",
                                        "src": "3805:6:86"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "3798:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3798:14:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "3786:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3786:27:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3815:4:86",
                                "type": "",
                                "value": "0x20"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3782:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3782:38:86"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3822:3:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "3779:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3779:47:86"
                      },
                      "nodeType": "YulIf",
                      "src": "3776:67:86"
                    }
                  ]
                },
                "name": "abi_decode_array_uint256_dyn_calldata",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "offset",
                    "nodeType": "YulTypedName",
                    "src": "3529:6:86",
                    "type": ""
                  },
                  {
                    "name": "end",
                    "nodeType": "YulTypedName",
                    "src": "3537:3:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "arrayPos",
                    "nodeType": "YulTypedName",
                    "src": "3545:8:86",
                    "type": ""
                  },
                  {
                    "name": "length",
                    "nodeType": "YulTypedName",
                    "src": "3555:6:86",
                    "type": ""
                  }
                ],
                "src": "3482:367:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "4081:983:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "4128:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4137:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4140:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "4130:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4130:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "4130:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "4102:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4111:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "4098:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4098:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4123:3:86",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4094:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4094:33:86"
                      },
                      "nodeType": "YulIf",
                      "src": "4091:53:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4153:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4182:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "4163:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4163:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "4153:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4201:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4234:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4245:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4230:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4230:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "4211:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4211:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "4201:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4258:46:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4289:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4300:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4285:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4285:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "4272:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4272:32:86"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "4262:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4313:28:86",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4323:18:86",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      },
                      "variables": [
                        {
                          "name": "_1",
                          "nodeType": "YulTypedName",
                          "src": "4317:2:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "4368:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4377:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4380:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "4370:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4370:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "4370:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4356:6:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "4364:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "4353:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4353:14:86"
                      },
                      "nodeType": "YulIf",
                      "src": "4350:34:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4393:96:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4461:9:86"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4472:6:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4457:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4457:22:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4481:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_array_uint256_dyn_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "4419:37:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4419:70:86"
                      },
                      "variables": [
                        {
                          "name": "value2_1",
                          "nodeType": "YulTypedName",
                          "src": "4397:8:86",
                          "type": ""
                        },
                        {
                          "name": "value3_1",
                          "nodeType": "YulTypedName",
                          "src": "4407:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4498:18:86",
                      "value": {
                        "name": "value2_1",
                        "nodeType": "YulIdentifier",
                        "src": "4508:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "4498:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4525:18:86",
                      "value": {
                        "name": "value3_1",
                        "nodeType": "YulIdentifier",
                        "src": "4535:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "4525:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4552:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4585:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4596:2:86",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4581:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4581:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "4568:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4568:32:86"
                      },
                      "variables": [
                        {
                          "name": "offset_1",
                          "nodeType": "YulTypedName",
                          "src": "4556:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "4629:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4638:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4641:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "4631:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4631:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "4631:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "4615:8:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "4625:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "4612:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4612:16:86"
                      },
                      "nodeType": "YulIf",
                      "src": "4609:36:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4654:98:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4722:9:86"
                              },
                              {
                                "name": "offset_1",
                                "nodeType": "YulIdentifier",
                                "src": "4733:8:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4718:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4718:24:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4744:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_array_uint256_dyn_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "4680:37:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4680:72:86"
                      },
                      "variables": [
                        {
                          "name": "value4_1",
                          "nodeType": "YulTypedName",
                          "src": "4658:8:86",
                          "type": ""
                        },
                        {
                          "name": "value5_1",
                          "nodeType": "YulTypedName",
                          "src": "4668:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4761:18:86",
                      "value": {
                        "name": "value4_1",
                        "nodeType": "YulIdentifier",
                        "src": "4771:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "4761:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4788:18:86",
                      "value": {
                        "name": "value5_1",
                        "nodeType": "YulIdentifier",
                        "src": "4798:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "4788:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4815:49:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4848:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4859:3:86",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4844:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4844:19:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "4831:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4831:33:86"
                      },
                      "variables": [
                        {
                          "name": "offset_2",
                          "nodeType": "YulTypedName",
                          "src": "4819:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "4893:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4902:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4905:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "4895:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4895:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "4895:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "4879:8:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "4889:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "4876:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4876:16:86"
                      },
                      "nodeType": "YulIf",
                      "src": "4873:36:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "4918:86:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4974:9:86"
                              },
                              {
                                "name": "offset_2",
                                "nodeType": "YulIdentifier",
                                "src": "4985:8:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4970:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4970:24:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4996:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_bytes_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "4944:25:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4944:60:86"
                      },
                      "variables": [
                        {
                          "name": "value6_1",
                          "nodeType": "YulTypedName",
                          "src": "4922:8:86",
                          "type": ""
                        },
                        {
                          "name": "value7_1",
                          "nodeType": "YulTypedName",
                          "src": "4932:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5013:18:86",
                      "value": {
                        "name": "value6_1",
                        "nodeType": "YulIdentifier",
                        "src": "5023:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value6",
                          "nodeType": "YulIdentifier",
                          "src": "5013:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5040:18:86",
                      "value": {
                        "name": "value7_1",
                        "nodeType": "YulIdentifier",
                        "src": "5050:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value7",
                          "nodeType": "YulIdentifier",
                          "src": "5040:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "3991:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "4002:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "4014:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "4022:6:86",
                    "type": ""
                  },
                  {
                    "name": "value2",
                    "nodeType": "YulTypedName",
                    "src": "4030:6:86",
                    "type": ""
                  },
                  {
                    "name": "value3",
                    "nodeType": "YulTypedName",
                    "src": "4038:6:86",
                    "type": ""
                  },
                  {
                    "name": "value4",
                    "nodeType": "YulTypedName",
                    "src": "4046:6:86",
                    "type": ""
                  },
                  {
                    "name": "value5",
                    "nodeType": "YulTypedName",
                    "src": "4054:6:86",
                    "type": ""
                  },
                  {
                    "name": "value6",
                    "nodeType": "YulTypedName",
                    "src": "4062:6:86",
                    "type": ""
                  },
                  {
                    "name": "value7",
                    "nodeType": "YulTypedName",
                    "src": "4070:6:86",
                    "type": ""
                  }
                ],
                "src": "3854:1210:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "5226:538:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "5273:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5282:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5285:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "5275:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5275:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "5275:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "5247:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5256:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5243:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5243:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5268:3:86",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "5239:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5239:33:86"
                      },
                      "nodeType": "YulIf",
                      "src": "5236:53:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5298:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5327:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "5308:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5308:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "5298:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5346:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5379:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5390:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5375:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5375:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "5356:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5356:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "5346:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5403:42:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5430:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5441:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5426:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5426:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "5413:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5413:32:86"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "5403:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5454:42:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5481:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5492:2:86",
                                "type": "",
                                "value": "96"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5477:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5477:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "5464:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5464:32:86"
                      },
                      "variableNames": [
                        {
                          "name": "value3",
                          "nodeType": "YulIdentifier",
                          "src": "5454:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5505:47:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5536:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5547:3:86",
                                "type": "",
                                "value": "128"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5532:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5532:19:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "5519:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5519:33:86"
                      },
                      "variables": [
                        {
                          "name": "offset",
                          "nodeType": "YulTypedName",
                          "src": "5509:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "5595:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5604:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5607:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "5597:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5597:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "5597:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "5567:6:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5575:18:86",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "5564:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5564:30:86"
                      },
                      "nodeType": "YulIf",
                      "src": "5561:50:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "5620:84:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5676:9:86"
                              },
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5687:6:86"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5672:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5672:22:86"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5696:7:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_bytes_calldata",
                          "nodeType": "YulIdentifier",
                          "src": "5646:25:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5646:58:86"
                      },
                      "variables": [
                        {
                          "name": "value4_1",
                          "nodeType": "YulTypedName",
                          "src": "5624:8:86",
                          "type": ""
                        },
                        {
                          "name": "value5_1",
                          "nodeType": "YulTypedName",
                          "src": "5634:8:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5713:18:86",
                      "value": {
                        "name": "value4_1",
                        "nodeType": "YulIdentifier",
                        "src": "5723:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value4",
                          "nodeType": "YulIdentifier",
                          "src": "5713:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5740:18:86",
                      "value": {
                        "name": "value5_1",
                        "nodeType": "YulIdentifier",
                        "src": "5750:8:86"
                      },
                      "variableNames": [
                        {
                          "name": "value5",
                          "nodeType": "YulIdentifier",
                          "src": "5740:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "5152:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "5163:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "5175:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "5183:6:86",
                    "type": ""
                  },
                  {
                    "name": "value2",
                    "nodeType": "YulTypedName",
                    "src": "5191:6:86",
                    "type": ""
                  },
                  {
                    "name": "value3",
                    "nodeType": "YulTypedName",
                    "src": "5199:6:86",
                    "type": ""
                  },
                  {
                    "name": "value4",
                    "nodeType": "YulTypedName",
                    "src": "5207:6:86",
                    "type": ""
                  },
                  {
                    "name": "value5",
                    "nodeType": "YulTypedName",
                    "src": "5215:6:86",
                    "type": ""
                  }
                ],
                "src": "5069:695:86"
              }
            ]
          },
          "contents": "{\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_bytes_calldata(offset, end) -> arrayPos, length\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        arrayPos := add(offset, 0x20)\n        if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        let offset_1 := calldataload(add(headStart, 160))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n        value6 := value6_1\n        value7 := value7_1\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_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value3 := value3_1\n        value4 := value4_1\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, shl(224, 0xffffffff)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        if gt(i, length)\n        {\n            mstore(add(add(headStart, length), 64), 0)\n        }\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function abi_decode_array_uint256_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_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let value2_1, value3_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n        value2 := value2_1\n        value3 := value3_1\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n        value6 := value6_1\n        value7 := value7_1\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\n    }\n}",
          "id": 86,
          "language": "Yul",
          "name": "#utility.yul"
        }
      ],
      "immutableReferences": {},
      "linkReferences": {},
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA3F4DF7E GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0xFB JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x23DE29 EQ PUSH2 0x81 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x9B JUMPI DUP1 PUSH4 0x150B7A02 EQ PUSH2 0xC3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 PUSH2 0x8F CALLDATASIZE PUSH1 0x4 PUSH2 0x261 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAE PUSH2 0xA9 CALLDATASIZE PUSH1 0x4 PUSH2 0x30C JUMP JUMPDEST PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0xD1 CALLDATASIZE PUSH1 0x4 PUSH2 0x33D JUMP JUMPDEST PUSH4 0xA85BD01 PUSH1 0xE1 SHL SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBA JUMP JUMPDEST PUSH2 0x137 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x44656661756C742043616C6C6261636B2048616E646C65720000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x152 CALLDATASIZE PUSH1 0x4 PUSH2 0x446 JUMP JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE2 PUSH2 0x174 CALLDATASIZE PUSH1 0x4 PUSH2 0x4E0 JUMP JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x137 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x2711897 PUSH1 0xE5 SHL EQ DUP1 PUSH2 0x1DB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ JUMPDEST DUP1 PUSH2 0x1F6 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x242 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x286 DUP10 PUSH2 0x1FC JUMP JUMPDEST SWAP8 POP PUSH2 0x294 PUSH1 0x20 DUP11 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP7 POP PUSH2 0x2A2 PUSH1 0x40 DUP11 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP6 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2D2 DUP13 DUP4 DUP14 ADD PUSH2 0x218 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0xA0 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F8 DUP12 DUP3 DUP13 ADD PUSH2 0x218 JUMP JUMPDEST SWAP10 SWAP13 SWAP9 SWAP12 POP SWAP7 SWAP10 POP SWAP5 SWAP8 SWAP4 SWAP7 SWAP3 SWAP6 SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x336 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x35E DUP7 PUSH2 0x1FC JUMP JUMPDEST SWAP5 POP PUSH2 0x36C PUSH1 0x20 DUP8 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39B DUP9 DUP3 DUP10 ADD PUSH2 0x218 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3D9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x3BD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x3EB JUMPI PUSH1 0x0 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x413 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x42B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x25A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46B DUP10 PUSH2 0x1FC JUMP JUMPDEST SWAP8 POP PUSH2 0x479 PUSH1 0x20 DUP11 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP7 POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A2 DUP13 DUP4 DUP14 ADD PUSH2 0x401 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x60 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x4BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4C7 DUP13 DUP4 DUP14 ADD PUSH2 0x401 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP12 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x502 DUP8 PUSH2 0x1FC JUMP JUMPDEST SWAP6 POP PUSH2 0x510 PUSH1 0x20 DUP9 ADD PUSH2 0x1FC JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD SWAP3 POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x53A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x546 DUP10 DUP3 DUP11 ADD PUSH2 0x218 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 DUP16 0xD4 0xC7 0xD0 CALL PUSH8 0x7AB3870EB3B70096 DIFFICULTY 0xAC 0xB6 0x4A POP 0xD5 DUP11 CALLDATASIZE AND 0xA8 0x2B SWAP2 0x29 SWAP12 0xDD PUSH21 0x9A64736F6C634300080A0033000000000000000000 ",
      "sourceMap": "387:1415:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:253;;;;;;:::i;:::-;;;;;;;;;;;;1494:306;;;;;;:::i;:::-;;:::i;:::-;;;2015:14:86;;2008:22;1990:41;;1978:2;1963:18;1494:306:17;;;;;;;;1048:181;;;;;;:::i;:::-;-1:-1:-1;;;1048:181:17;;;;;;;;;;;-1:-1:-1;;;;;;2835:33:86;;;2817:52;;2805:2;2790:18;1048:181:17;2673:202:86;502:56:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;816:226::-;;;;;;:::i;:::-;-1:-1:-1;;;816:226:17;;;;;;;;;;;611:199;;;;;;:::i;:::-;-1:-1:-1;;;611:199:17;;;;;;;;;564:40;;;;;;;;;;;;;;;-1:-1:-1;;;564:40:17;;;;;1494:306;1581:4;-1:-1:-1;;;;;;1616:53:17;;-1:-1:-1;;;1616:53:17;;:121;;-1:-1:-1;;;;;;;1685:52:17;;-1:-1:-1;;;1685:52:17;1616:121;:177;;;-1:-1:-1;;;;;;;1753:40:17;;-1:-1:-1;;;1753:40:17;1616:177;1597:196;1494:306;-1:-1:-1;;1494:306:17:o;14:173:86:-;82:20;;-1:-1:-1;;;;;131:31:86;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:347::-;243:8;253:6;307:3;300:4;292:6;288:17;284:27;274:55;;325:1;322;315:12;274:55;-1:-1:-1;348:20:86;;391:18;380:30;;377:50;;;423:1;420;413:12;377:50;460:4;452:6;448:17;436:29;;512:3;505:4;496:6;488;484:19;480:30;477:39;474:59;;;529:1;526;519:12;474:59;192:347;;;;;:::o;544:1010::-;670:6;678;686;694;702;710;718;726;779:3;767:9;758:7;754:23;750:33;747:53;;;796:1;793;786:12;747:53;819:29;838:9;819:29;:::i;:::-;809:39;;867:38;901:2;890:9;886:18;867:38;:::i;:::-;857:48;;924:38;958:2;947:9;943:18;924:38;:::i;:::-;914:48;;1009:2;998:9;994:18;981:32;971:42;;1064:3;1053:9;1049:19;1036:33;1088:18;1129:2;1121:6;1118:14;1115:34;;;1145:1;1142;1135:12;1115:34;1184:58;1234:7;1225:6;1214:9;1210:22;1184:58;:::i;:::-;1261:8;;-1:-1:-1;1158:84:86;-1:-1:-1;1349:3:86;1334:19;;1321:33;;-1:-1:-1;1366:16:86;;;1363:36;;;1395:1;1392;1385:12;1363:36;;1434:60;1486:7;1475:8;1464:9;1460:24;1434:60;:::i;:::-;544:1010;;;;-1:-1:-1;544:1010:86;;-1:-1:-1;544:1010:86;;;;;;1513:8;-1:-1:-1;;;544:1010:86:o;1559:286::-;1617:6;1670:2;1658:9;1649:7;1645:23;1641:32;1638:52;;;1686:1;1683;1676:12;1638:52;1712:23;;-1:-1:-1;;;;;;1764:32:86;;1754:43;;1744:71;;1811:1;1808;1801:12;1744:71;1834:5;1559:286;-1:-1:-1;;;1559:286:86:o;2042:626::-;2139:6;2147;2155;2163;2171;2224:3;2212:9;2203:7;2199:23;2195:33;2192:53;;;2241:1;2238;2231:12;2192:53;2264:29;2283:9;2264:29;:::i;:::-;2254:39;;2312:38;2346:2;2335:9;2331:18;2312:38;:::i;:::-;2302:48;;2397:2;2386:9;2382:18;2369:32;2359:42;;2452:2;2441:9;2437:18;2424:32;2479:18;2471:6;2468:30;2465:50;;;2511:1;2508;2501:12;2465:50;2550:58;2600:7;2591:6;2580:9;2576:22;2550:58;:::i;:::-;2042:626;;;;-1:-1:-1;2042:626:86;;-1:-1:-1;2627:8:86;;2524:84;2042:626;-1:-1:-1;;;2042:626:86:o;2880:597::-;2992:4;3021:2;3050;3039:9;3032:21;3082:6;3076:13;3125:6;3120:2;3109:9;3105:18;3098:34;3150:1;3160:140;3174:6;3171:1;3168:13;3160:140;;;3269:14;;;3265:23;;3259:30;3235:17;;;3254:2;3231:26;3224:66;3189:10;;3160:140;;;3318:6;3315:1;3312:13;3309:91;;;3388:1;3383:2;3374:6;3363:9;3359:22;3355:31;3348:42;3309:91;-1:-1:-1;3461:2:86;3440:15;-1:-1:-1;;3436:29:86;3421:45;;;;3468:2;3417:54;;2880:597;-1:-1:-1;;;2880:597:86:o;3482:367::-;3545:8;3555:6;3609:3;3602:4;3594:6;3590:17;3586:27;3576:55;;3627:1;3624;3617:12;3576:55;-1:-1:-1;3650:20:86;;3693:18;3682:30;;3679:50;;;3725:1;3722;3715:12;3679:50;3762:4;3754:6;3750:17;3738:29;;3822:3;3815:4;3805:6;3802:1;3798:14;3790:6;3786:27;3782:38;3779:47;3776:67;;;3839:1;3836;3829:12;3854:1210;4014:6;4022;4030;4038;4046;4054;4062;4070;4123:3;4111:9;4102:7;4098:23;4094:33;4091:53;;;4140:1;4137;4130:12;4091:53;4163:29;4182:9;4163:29;:::i;:::-;4153:39;;4211:38;4245:2;4234:9;4230:18;4211:38;:::i;:::-;4201:48;;4300:2;4289:9;4285:18;4272:32;4323:18;4364:2;4356:6;4353:14;4350:34;;;4380:1;4377;4370:12;4350:34;4419:70;4481:7;4472:6;4461:9;4457:22;4419:70;:::i;:::-;4508:8;;-1:-1:-1;4393:96:86;-1:-1:-1;4596:2:86;4581:18;;4568:32;;-1:-1:-1;4612:16:86;;;4609:36;;;4641:1;4638;4631:12;4609:36;4680:72;4744:7;4733:8;4722:9;4718:24;4680:72;:::i;:::-;4771:8;;-1:-1:-1;4654:98:86;-1:-1:-1;4859:3:86;4844:19;;4831:33;;-1:-1:-1;4876:16:86;;;4873:36;;;4905:1;4902;4895:12;5069:695;5175:6;5183;5191;5199;5207;5215;5268:3;5256:9;5247:7;5243:23;5239:33;5236:53;;;5285:1;5282;5275:12;5236:53;5308:29;5327:9;5308:29;:::i;:::-;5298:39;;5356:38;5390:2;5379:9;5375:18;5356:38;:::i;:::-;5346:48;;5441:2;5430:9;5426:18;5413:32;5403:42;;5492:2;5481:9;5477:18;5464:32;5454:42;;5547:3;5536:9;5532:19;5519:33;5575:18;5567:6;5564:30;5561:50;;;5607:1;5604;5597:12;5561:50;5646:58;5696:7;5687:6;5676:9;5672:22;5646:58;:::i;:::-;5069:695;;;;-1:-1:-1;5069:695:86;;-1:-1:-1;5069:695:86;;5723:8;;5069:695;-1:-1:-1;;;5069:695:86:o"
    },
    "gasEstimates": {
      "creation": {
        "codeDepositCost": "284400",
        "executionCost": "324",
        "totalCost": "284724"
      },
      "external": {
        "NAME()": "infinite",
        "VERSION()": "infinite",
        "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "infinite",
        "onERC1155Received(address,address,uint256,uint256,bytes)": "infinite",
        "onERC721Received(address,address,uint256,bytes)": "infinite",
        "supportsInterface(bytes4)": "504",
        "tokensReceived(address,address,address,uint256,bytes,bytes)": "infinite"
      }
    },
    "methodIdentifiers": {
      "NAME()": "a3f4df7e",
      "VERSION()": "ffa1ad74",
      "onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "bc197c81",
      "onERC1155Received(address,address,uint256,uint256,bytes)": "f23a6e61",
      "onERC721Received(address,address,uint256,bytes)": "150b7a02",
      "supportsInterface(bytes4)": "01ffc9a7",
      "tokensReceived(address,address,address,uint256,bytes,bytes)": "0023de29"
    }
  },
  "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"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\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"tokensReceived\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - <richard@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"title\":\"Default Callback Handler - returns true for known token callbacks\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@gnosis.pm/safe-contracts/contracts/handler/DefaultCallbackHandler.sol\":\"DefaultCallbackHandler\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@gnosis.pm/safe-contracts/contracts/handler/DefaultCallbackHandler.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"../interfaces/ERC1155TokenReceiver.sol\\\";\\nimport \\\"../interfaces/ERC721TokenReceiver.sol\\\";\\nimport \\\"../interfaces/ERC777TokensRecipient.sol\\\";\\nimport \\\"../interfaces/IERC165.sol\\\";\\n\\n/// @title Default Callback Handler - returns true for known token callbacks\\n/// @author Richard Meissner - <richard@gnosis.pm>\\ncontract DefaultCallbackHandler is ERC1155TokenReceiver, ERC777TokensRecipient, ERC721TokenReceiver, IERC165 {\\n    string public constant NAME = \\\"Default Callback Handler\\\";\\n    string public constant VERSION = \\\"1.0.0\\\";\\n\\n    function onERC1155Received(\\n        address,\\n        address,\\n        uint256,\\n        uint256,\\n        bytes calldata\\n    ) external pure override returns (bytes4) {\\n        return 0xf23a6e61;\\n    }\\n\\n    function onERC1155BatchReceived(\\n        address,\\n        address,\\n        uint256[] calldata,\\n        uint256[] calldata,\\n        bytes calldata\\n    ) external pure override returns (bytes4) {\\n        return 0xbc197c81;\\n    }\\n\\n    function onERC721Received(\\n        address,\\n        address,\\n        uint256,\\n        bytes calldata\\n    ) external pure override returns (bytes4) {\\n        return 0x150b7a02;\\n    }\\n\\n    function tokensReceived(\\n        address,\\n        address,\\n        address,\\n        uint256,\\n        bytes calldata,\\n        bytes calldata\\n    ) external pure override {\\n        // We implement this for completeness, doesn't really have any value\\n    }\\n\\n    function supportsInterface(bytes4 interfaceId) external view virtual override returns (bool) {\\n        return\\n            interfaceId == type(ERC1155TokenReceiver).interfaceId ||\\n            interfaceId == type(ERC721TokenReceiver).interfaceId ||\\n            interfaceId == type(IERC165).interfaceId;\\n    }\\n}\\n\",\"keccak256\":\"0x1cdc184c3504176383b7f94f9ce06c96ce1c123e1878258fe6dc03cce4a29ff7\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/interfaces/ERC1155TokenReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/**\\n    Note: The ERC-165 identifier for this interface is 0x4e2312e0.\\n*/\\ninterface ERC1155TokenReceiver {\\n    /**\\n        @notice Handle the receipt of a single ERC1155 token type.\\n        @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.        \\n        This function MUST return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61) if it accepts the transfer.\\n        This function MUST revert if it rejects the transfer.\\n        Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\\n        @param _operator  The address which initiated the transfer (i.e. msg.sender)\\n        @param _from      The address which previously owned the token\\n        @param _id        The ID of the token being transferred\\n        @param _value     The amount of tokens being transferred\\n        @param _data      Additional data with no specified format\\n        @return           `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))`\\n    */\\n    function onERC1155Received(\\n        address _operator,\\n        address _from,\\n        uint256 _id,\\n        uint256 _value,\\n        bytes calldata _data\\n    ) external returns (bytes4);\\n\\n    /**\\n        @notice Handle the receipt of multiple ERC1155 token types.\\n        @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.        \\n        This function MUST return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81) if it accepts the transfer(s).\\n        This function MUST revert if it rejects the transfer(s).\\n        Return of any other value than the prescribed keccak256 generated value MUST result in the transaction being reverted by the caller.\\n        @param _operator  The address which initiated the batch transfer (i.e. msg.sender)\\n        @param _from      The address which previously owned the token\\n        @param _ids       An array containing ids of each token being transferred (order and length must match _values array)\\n        @param _values    An array containing amounts of each token being transferred (order and length must match _ids array)\\n        @param _data      Additional data with no specified format\\n        @return           `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))`\\n    */\\n    function onERC1155BatchReceived(\\n        address _operator,\\n        address _from,\\n        uint256[] calldata _ids,\\n        uint256[] calldata _values,\\n        bytes calldata _data\\n    ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x7894ef55ee3334f6388e5e1d749bbabd85fc03d5a2ab949f284bce830f8aa398\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/interfaces/ERC721TokenReceiver.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/// @dev Note: the ERC-165 identifier for this interface is 0x150b7a02.\\ninterface ERC721TokenReceiver {\\n    /// @notice Handle the receipt of an NFT\\n    /// @dev The ERC721 smart contract calls this function on the recipient\\n    ///  after a `transfer`. This function MAY throw to revert and reject the\\n    ///  transfer. Return of other than the magic value MUST result in the\\n    ///  transaction being reverted.\\n    ///  Note: the contract address is always the message sender.\\n    /// @param _operator The address which called `safeTransferFrom` function\\n    /// @param _from The address which previously owned the token\\n    /// @param _tokenId The NFT identifier which is being transferred\\n    /// @param _data Additional data with no specified format\\n    /// @return `bytes4(keccak256(\\\"onERC721Received(address,address,uint256,bytes)\\\"))`\\n    ///  unless throwing\\n    function onERC721Received(\\n        address _operator,\\n        address _from,\\n        uint256 _tokenId,\\n        bytes calldata _data\\n    ) external returns (bytes4);\\n}\\n\",\"keccak256\":\"0x8a3dd41df3a49d9ae2d45dd4087ca595946ed3c6051b8aa304727017b5eabaa4\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/interfaces/ERC777TokensRecipient.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\ninterface ERC777TokensRecipient {\\n    function tokensReceived(\\n        address operator,\\n        address from,\\n        address to,\\n        uint256 amount,\\n        bytes calldata data,\\n        bytes calldata operatorData\\n    ) external;\\n}\\n\",\"keccak256\":\"0x1cfbdb95761067c5bc35599fcae6c11e487f2879d7fa2c6f47e7b94506b4039c\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/interfaces/IERC165.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/// @notice More details at https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/introspection/IERC165.sol\\ninterface IERC165 {\\n    /**\\n     * @dev Returns true if this contract implements the interface defined by\\n     * `interfaceId`. See the corresponding\\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\\n     * to learn more about how these ids are created.\\n     *\\n     * This function call must use less than 30 000 gas.\\n     */\\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\\n}\\n\",\"keccak256\":\"0x5c64c2e071245db8fe3ea8b94f73c5a8de236933858ae240348d502433a9d178\",\"license\":\"LGPL-3.0-only\"}},\"version\":1}",
  "storageLayout": {
    "storage": [],
    "types": null
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}