{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122003ae8ae7fb8dee87aa176c26a4d0cbafe2b23e968c7174a8056038bf06bc7c4764736f6c63430008180033","sourceMap":"635:1944:34:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;635:1944:34;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122003ae8ae7fb8dee87aa176c26a4d0cbafe2b23e968c7174a8056038bf06bc7c4764736f6c63430008180033","sourceMap":"635:1944:34:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Static functions for Slice\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/src/Slice.sol\":\"SliceLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/store/src/Slice.sol":"SliceLib"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/store/src/Slice.sol","id":10290,"exportedSymbols":{"DecodeSlice":[24069],"ISliceErrors":[8646],"Memory":[9482],"Slice":[10067],"SliceInstance":[10289],"SliceLib":[10192]},"nodeType":"SourceUnit","src":"32:4461:34","nodes":[{"id":10059,"nodeType":"PragmaDirective","src":"32:25:34","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":10061,"nodeType":"ImportDirective","src":"59:38:34","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/Memory.sol","file":"./Memory.sol","nameLocation":"-1:-1:-1","scope":10290,"sourceUnit":9483,"symbolAliases":[{"foreign":{"id":10060,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"68:6:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10063,"nodeType":"ImportDirective","src":"98:59:34","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol","file":"./tightcoder/DecodeSlice.sol","nameLocation":"-1:-1:-1","scope":10290,"sourceUnit":24070,"symbolAliases":[{"foreign":{"id":10062,"name":"DecodeSlice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24069,"src":"107:11:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10065,"nodeType":"ImportDirective","src":"158:50:34","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ISliceErrors.sol","file":"./ISliceErrors.sol","nameLocation":"-1:-1:-1","scope":10290,"sourceUnit":8647,"symbolAliases":[{"foreign":{"id":10064,"name":"ISliceErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8646,"src":"167:12:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10067,"nodeType":"UserDefinedValueTypeDefinition","src":"425:22:34","nodes":[],"canonicalName":"Slice","name":"Slice","nameLocation":"430:5:34","underlyingType":{"id":10066,"name":"uint256","nodeType":"ElementaryTypeName","src":"439:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":10071,"nodeType":"UsingForDirective","src":"449:37:34","nodes":[],"global":true,"libraryName":{"id":10068,"name":"SliceInstance","nameLocations":["455:13:34"],"nodeType":"IdentifierPath","referencedDeclaration":10289,"src":"455:13:34"},"typeName":{"id":10070,"nodeType":"UserDefinedTypeName","pathNode":{"id":10069,"name":"Slice","nameLocations":["473:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"473:5:34"},"referencedDeclaration":10067,"src":"473:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}},{"id":10075,"nodeType":"UsingForDirective","src":"487:35:34","nodes":[],"global":true,"libraryName":{"id":10072,"name":"DecodeSlice","nameLocations":["493:11:34"],"nodeType":"IdentifierPath","referencedDeclaration":24069,"src":"493:11:34"},"typeName":{"id":10074,"nodeType":"UserDefinedTypeName","pathNode":{"id":10073,"name":"Slice","nameLocations":["509:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"509:5:34"},"referencedDeclaration":10067,"src":"509:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}},{"id":10192,"nodeType":"ContractDefinition","src":"635:1944:34","nodes":[{"id":10086,"nodeType":"VariableDeclaration","src":"656:54:34","nodes":[],"constant":true,"mutability":"constant","name":"MASK_LEN","nameLocation":"673:8:34","scope":10192,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10077,"name":"uint256","nodeType":"ElementaryTypeName","src":"656:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"expression":{"arguments":[{"id":10082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"697:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":10081,"name":"uint128","nodeType":"ElementaryTypeName","src":"697:7:34","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":10080,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"692:4:34","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"692:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":10084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"706:3:34","memberName":"max","nodeType":"MemberAccess","src":"692:17:34","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":10079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:34","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10078,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:34","typeDescriptions":{}}},"id":10085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:26:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":10114,"nodeType":"FunctionDefinition","src":"900:326:34","nodes":[],"body":{"id":10113,"nodeType":"Block","src":"968:258:34","nodes":[],"statements":[{"assignments":[10096],"declarations":[{"constant":false,"id":10096,"mutability":"mutable","name":"pointer","nameLocation":"982:7:34","nodeType":"VariableDeclaration","scope":10113,"src":"974:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10095,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10097,"nodeType":"VariableDeclarationStatement","src":"974:15:34"},{"AST":{"nativeSrc":"1004:70:34","nodeType":"YulBlock","src":"1004:70:34","statements":[{"nativeSrc":"1012:26:34","nodeType":"YulAssignment","src":"1012:26:34","value":{"arguments":[{"name":"data","nativeSrc":"1027:4:34","nodeType":"YulIdentifier","src":"1027:4:34"},{"kind":"number","nativeSrc":"1033:4:34","nodeType":"YulLiteral","src":"1033:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1023:3:34","nodeType":"YulIdentifier","src":"1023:3:34"},"nativeSrc":"1023:15:34","nodeType":"YulFunctionCall","src":"1023:15:34"},"variableNames":[{"name":"pointer","nativeSrc":"1012:7:34","nodeType":"YulIdentifier","src":"1012:7:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10089,"isOffset":false,"isSlot":false,"src":"1027:4:34","valueSize":1},{"declaration":10096,"isOffset":false,"isSlot":false,"src":"1012:7:34","valueSize":1}],"id":10098,"nodeType":"InlineAssembly","src":"995:79:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10101,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10096,"src":"1178:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":10102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1189:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1178:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1177:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10105,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10089,"src":"1197:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1202:6:34","memberName":"length","nodeType":"MemberAccess","src":"1197:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":10107,"name":"MASK_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"1211:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1197:22:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10109,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1196:24:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1177:43:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10099,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"1166:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$10067_$","typeString":"type(Slice)"}},"id":10100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1172:4:34","memberName":"wrap","nodeType":"MemberAccess","src":"1166:10:34","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$10067_$","typeString":"function (uint256) pure returns (Slice)"}},"id":10111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1166:55:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"functionReturnParameters":10094,"id":10112,"nodeType":"Return","src":"1159:62:34"}]},"documentation":{"id":10087,"nodeType":"StructuredDocumentation","src":"715:182:34","text":" @notice Converts a bytes array to a slice (without copying data)\n @param data The bytes array to be converted\n @return A new Slice representing the bytes array"},"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"909:9:34","parameters":{"id":10090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10089,"mutability":"mutable","name":"data","nameLocation":"932:4:34","nodeType":"VariableDeclaration","scope":10114,"src":"919:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10088,"name":"bytes","nodeType":"ElementaryTypeName","src":"919:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"918:19:34"},"returnParameters":{"id":10094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10114,"src":"961:5:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10092,"nodeType":"UserDefinedTypeName","pathNode":{"id":10091,"name":"Slice","nameLocations":["961:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"961:5:34"},"referencedDeclaration":10067,"src":"961:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"960:7:34"},"scope":10192,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10133,"nodeType":"FunctionDefinition","src":"1503:140:34","nodes":[],"body":{"id":10132,"nodeType":"Block","src":"1588:55:34","nodes":[],"statements":[{"expression":{"arguments":[{"id":10126,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10117,"src":"1613:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10127,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10119,"src":"1619:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":10128,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10117,"src":"1626:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1631:6:34","memberName":"length","nodeType":"MemberAccess","src":"1626:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10125,"name":"getSubslice","nodeType":"Identifier","overloadedDeclarations":[10133,10191],"referencedDeclaration":10191,"src":"1601:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$10067_$","typeString":"function (bytes memory,uint256,uint256) pure returns (Slice)"}},"id":10130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1601:37:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"functionReturnParameters":10124,"id":10131,"nodeType":"Return","src":"1594:44:34"}]},"documentation":{"id":10115,"nodeType":"StructuredDocumentation","src":"1230:270:34","text":" @notice Subslice a bytes array using the given start index until the end of the array (without copying data)\n @param data The bytes array to subslice\n @param start The start index for the subslice\n @return A new Slice representing the subslice"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubslice","nameLocation":"1512:11:34","parameters":{"id":10120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10117,"mutability":"mutable","name":"data","nameLocation":"1537:4:34","nodeType":"VariableDeclaration","scope":10133,"src":"1524:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10116,"name":"bytes","nodeType":"ElementaryTypeName","src":"1524:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10119,"mutability":"mutable","name":"start","nameLocation":"1551:5:34","nodeType":"VariableDeclaration","scope":10133,"src":"1543:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10118,"name":"uint256","nodeType":"ElementaryTypeName","src":"1543:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1523:34:34"},"returnParameters":{"id":10124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10133,"src":"1581:5:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10122,"nodeType":"UserDefinedTypeName","pathNode":{"id":10121,"name":"Slice","nameLocations":["1581:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"1581:5:34"},"referencedDeclaration":10067,"src":"1581:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"1580:7:34"},"scope":10192,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10191,"nodeType":"FunctionDefinition","src":"2003:574:34","nodes":[],"body":{"id":10190,"nodeType":"Block","src":"2101:476:34","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10146,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10138,"src":"2181:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":10147,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"2189:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2181:11:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10149,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"2196:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":10150,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10136,"src":"2202:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2207:6:34","memberName":"length","nodeType":"MemberAccess","src":"2202:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2196:17:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2181:32:34","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10162,"nodeType":"IfStatement","src":"2177:93:34","trueBody":{"errorCall":{"arguments":[{"id":10157,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10136,"src":"2253:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10158,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10138,"src":"2259:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10159,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"2266:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10154,"name":"ISliceErrors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8646,"src":"2222:12:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISliceErrors_$8646_$","typeString":"type(contract ISliceErrors)"}},"id":10156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2235:17:34","memberName":"Slice_OutOfBounds","nodeType":"MemberAccess","referencedDeclaration":8645,"src":"2222:30:34","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes memory,uint256,uint256) pure"}},"id":10160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2222:48:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10161,"nodeType":"RevertStatement","src":"2215:55:34"}},{"assignments":[10164],"declarations":[{"constant":false,"id":10164,"mutability":"mutable","name":"pointer","nameLocation":"2285:7:34","nodeType":"VariableDeclaration","scope":10190,"src":"2277:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10163,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10165,"nodeType":"VariableDeclarationStatement","src":"2277:15:34"},{"AST":{"nativeSrc":"2307:70:34","nodeType":"YulBlock","src":"2307:70:34","statements":[{"nativeSrc":"2315:26:34","nodeType":"YulAssignment","src":"2315:26:34","value":{"arguments":[{"name":"data","nativeSrc":"2330:4:34","nodeType":"YulIdentifier","src":"2330:4:34"},{"kind":"number","nativeSrc":"2336:4:34","nodeType":"YulLiteral","src":"2336:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2326:3:34","nodeType":"YulIdentifier","src":"2326:3:34"},"nativeSrc":"2326:15:34","nodeType":"YulFunctionCall","src":"2326:15:34"},"variableNames":[{"name":"pointer","nativeSrc":"2315:7:34","nodeType":"YulIdentifier","src":"2315:7:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10136,"isOffset":false,"isSlot":false,"src":"2330:4:34","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"2315:7:34","valueSize":1}],"id":10166,"nodeType":"InlineAssembly","src":"2298:79:34"},{"expression":{"id":10169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10167,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"2383:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":10168,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10138,"src":"2394:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2383:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10170,"nodeType":"ExpressionStatement","src":"2383:16:34"},{"assignments":[10172],"declarations":[{"constant":false,"id":10172,"mutability":"mutable","name":"_len","nameLocation":"2413:4:34","nodeType":"VariableDeclaration","scope":10190,"src":"2405:12:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10171,"name":"uint256","nodeType":"ElementaryTypeName","src":"2405:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10176,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10173,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10140,"src":"2420:3:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":10174,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10138,"src":"2426:5:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2420:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2405:26:34"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10179,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10164,"src":"2536:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":10180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2547:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2536:14:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10182,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2535:16:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10183,"name":"_len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10172,"src":"2555:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":10184,"name":"MASK_LEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10086,"src":"2562:8:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10186,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2554:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2535:36:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10177,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"2524:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$10067_$","typeString":"type(Slice)"}},"id":10178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2530:4:34","memberName":"wrap","nodeType":"MemberAccess","src":"2524:10:34","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Slice_$10067_$","typeString":"function (uint256) pure returns (Slice)"}},"id":10188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2524:48:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"functionReturnParameters":10145,"id":10189,"nodeType":"Return","src":"2517:55:34"}]},"documentation":{"id":10134,"nodeType":"StructuredDocumentation","src":"1647:353:34","text":" @notice Subslice a bytes array using the given indexes (without copying data)\n @dev The start index is inclusive, the end index is exclusive\n @param data The bytes array to subslice\n @param start The start index for the subslice\n @param end The end index for the subslice\n @return A new Slice representing the subslice"},"implemented":true,"kind":"function","modifiers":[],"name":"getSubslice","nameLocation":"2012:11:34","parameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10136,"mutability":"mutable","name":"data","nameLocation":"2037:4:34","nodeType":"VariableDeclaration","scope":10191,"src":"2024:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10135,"name":"bytes","nodeType":"ElementaryTypeName","src":"2024:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10138,"mutability":"mutable","name":"start","nameLocation":"2051:5:34","nodeType":"VariableDeclaration","scope":10191,"src":"2043:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10137,"name":"uint256","nodeType":"ElementaryTypeName","src":"2043:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10140,"mutability":"mutable","name":"end","nameLocation":"2066:3:34","nodeType":"VariableDeclaration","scope":10191,"src":"2058:11:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10139,"name":"uint256","nodeType":"ElementaryTypeName","src":"2058:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2023:47:34"},"returnParameters":{"id":10145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10191,"src":"2094:5:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10143,"nodeType":"UserDefinedTypeName","pathNode":{"id":10142,"name":"Slice","nameLocations":["2094:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"2094:5:34"},"referencedDeclaration":10067,"src":"2094:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"2093:7:34"},"scope":10192,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SliceLib","contractDependencies":[],"contractKind":"library","documentation":{"id":10076,"nodeType":"StructuredDocumentation","src":"524:110:34","text":" @title Static functions for Slice\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)"},"fullyImplemented":true,"linearizedBaseContracts":[10192],"name":"SliceLib","nameLocation":"643:8:34","scope":10290,"usedErrors":[],"usedEvents":[]},{"id":10289,"nodeType":"ContractDefinition","src":"2694:1798:34","nodes":[{"id":10210,"nodeType":"FunctionDefinition","src":"2901:104:34","nodes":[],"body":{"id":10209,"nodeType":"Block","src":"2962:43:34","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10204,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10197,"src":"2988:4:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}],"expression":{"id":10202,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"2975:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$10067_$","typeString":"type(Slice)"}},"id":10203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2981:6:34","memberName":"unwrap","nodeType":"MemberAccess","src":"2975:12:34","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Slice_$10067_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":10205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2975:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":10206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2997:3:34","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2975:25:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10201,"id":10208,"nodeType":"Return","src":"2968:32:34"}]},"documentation":{"id":10194,"nodeType":"StructuredDocumentation","src":"2720:178:34","text":" @notice Returns the pointer to the start of a slice\n @param self The slice whose pointer needs to be fetched\n @return The pointer to the start of the slice"},"implemented":true,"kind":"function","modifiers":[],"name":"pointer","nameLocation":"2910:7:34","parameters":{"id":10198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10197,"mutability":"mutable","name":"self","nameLocation":"2924:4:34","nodeType":"VariableDeclaration","scope":10210,"src":"2918:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10196,"nodeType":"UserDefinedTypeName","pathNode":{"id":10195,"name":"Slice","nameLocations":["2918:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"2918:5:34"},"referencedDeclaration":10067,"src":"2918:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"2917:12:34"},"returnParameters":{"id":10201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10210,"src":"2953:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10199,"name":"uint256","nodeType":"ElementaryTypeName","src":"2953:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2952:9:34"},"scope":10289,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10228,"nodeType":"FunctionDefinition","src":"3165:116:34","nodes":[],"body":{"id":10227,"nodeType":"Block","src":"3225:56:34","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10214,"src":"3251:4:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}],"expression":{"id":10219,"name":"Slice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10067,"src":"3238:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Slice_$10067_$","typeString":"type(Slice)"}},"id":10220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3244:6:34","memberName":"unwrap","nodeType":"MemberAccess","src":"3238:12:34","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_Slice_$10067_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":10222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"id":10223,"name":"SliceLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10192,"src":"3259:8:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SliceLib_$10192_$","typeString":"type(library SliceLib)"}},"id":10224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3268:8:34","memberName":"MASK_LEN","nodeType":"MemberAccess","referencedDeclaration":10086,"src":"3259:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3238:38:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10218,"id":10226,"nodeType":"Return","src":"3231:45:34"}]},"documentation":{"id":10211,"nodeType":"StructuredDocumentation","src":"3009:153:34","text":" @notice Returns the slice length in bytes\n @param self The slice whose length needs to be fetched\n @return The length of the slice"},"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"3174:6:34","parameters":{"id":10215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10214,"mutability":"mutable","name":"self","nameLocation":"3187:4:34","nodeType":"VariableDeclaration","scope":10228,"src":"3181:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10213,"nodeType":"UserDefinedTypeName","pathNode":{"id":10212,"name":"Slice","nameLocations":["3181:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"3181:5:34"},"referencedDeclaration":10067,"src":"3181:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"3180:12:34"},"returnParameters":{"id":10218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10228,"src":"3216:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10216,"name":"uint256","nodeType":"ElementaryTypeName","src":"3216:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3215:9:34"},"scope":10289,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10269,"nodeType":"FunctionDefinition","src":"3545:418:34","nodes":[],"body":{"id":10268,"nodeType":"Block","src":"3616:347:34","nodes":[],"statements":[{"assignments":[10238],"declarations":[{"constant":false,"id":10238,"mutability":"mutable","name":"fromPointer","nameLocation":"3630:11:34","nodeType":"VariableDeclaration","scope":10268,"src":"3622:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10237,"name":"uint256","nodeType":"ElementaryTypeName","src":"3622:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10242,"initialValue":{"arguments":[{"id":10240,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"3652:4:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}],"id":10239,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10210,"src":"3644:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$10067_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":10241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3644:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3622:35:34"},{"assignments":[10244],"declarations":[{"constant":false,"id":10244,"mutability":"mutable","name":"_length","nameLocation":"3671:7:34","nodeType":"VariableDeclaration","scope":10268,"src":"3663:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10243,"name":"uint256","nodeType":"ElementaryTypeName","src":"3663:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10248,"initialValue":{"arguments":[{"id":10246,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10232,"src":"3688:4:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}],"id":10245,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10228,"src":"3681:6:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$10067_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":10247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:12:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3663:30:34"},{"expression":{"id":10254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10249,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10235,"src":"3760:4:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10252,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10244,"src":"3777:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3767:9:34","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":10250,"name":"bytes","nodeType":"ElementaryTypeName","src":"3771:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":10253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3767:18:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"3760:25:34","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10255,"nodeType":"ExpressionStatement","src":"3760:25:34"},{"assignments":[10257],"declarations":[{"constant":false,"id":10257,"mutability":"mutable","name":"toPointer","nameLocation":"3799:9:34","nodeType":"VariableDeclaration","scope":10268,"src":"3791:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10256,"name":"uint256","nodeType":"ElementaryTypeName","src":"3791:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10258,"nodeType":"VariableDeclarationStatement","src":"3791:17:34"},{"AST":{"nativeSrc":"3823:42:34","nodeType":"YulBlock","src":"3823:42:34","statements":[{"nativeSrc":"3831:28:34","nodeType":"YulAssignment","src":"3831:28:34","value":{"arguments":[{"name":"data","nativeSrc":"3848:4:34","nodeType":"YulIdentifier","src":"3848:4:34"},{"kind":"number","nativeSrc":"3854:4:34","nodeType":"YulLiteral","src":"3854:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3844:3:34","nodeType":"YulIdentifier","src":"3844:3:34"},"nativeSrc":"3844:15:34","nodeType":"YulFunctionCall","src":"3844:15:34"},"variableNames":[{"name":"toPointer","nativeSrc":"3831:9:34","nodeType":"YulIdentifier","src":"3831:9:34"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":10235,"isOffset":false,"isSlot":false,"src":"3848:4:34","valueSize":1},{"declaration":10257,"isOffset":false,"isSlot":false,"src":"3831:9:34","valueSize":1}],"id":10259,"nodeType":"InlineAssembly","src":"3814:51:34"},{"expression":{"arguments":[{"id":10263,"name":"fromPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10238,"src":"3926:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10264,"name":"toPointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10257,"src":"3939:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10265,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10244,"src":"3950:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10260,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"3914:6:34","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$9482_$","typeString":"type(library Memory)"}},"id":10262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3921:4:34","memberName":"copy","nodeType":"MemberAccess","referencedDeclaration":9481,"src":"3914:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":10266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3914:44:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10267,"nodeType":"ExpressionStatement","src":"3914:44:34"}]},"documentation":{"id":10229,"nodeType":"StructuredDocumentation","src":"3285:257:34","text":" @notice Converts a Slice to bytes\n @dev This function internally manages the conversion of a slice into a bytes format.\n @param self The Slice to be converted to bytes.\n @return data The bytes representation of the provided Slice."},"implemented":true,"kind":"function","modifiers":[],"name":"toBytes","nameLocation":"3554:7:34","parameters":{"id":10233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10232,"mutability":"mutable","name":"self","nameLocation":"3568:4:34","nodeType":"VariableDeclaration","scope":10269,"src":"3562:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10231,"nodeType":"UserDefinedTypeName","pathNode":{"id":10230,"name":"Slice","nameLocations":["3562:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"3562:5:34"},"referencedDeclaration":10067,"src":"3562:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"3561:12:34"},"returnParameters":{"id":10236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10235,"mutability":"mutable","name":"data","nameLocation":"3610:4:34","nodeType":"VariableDeclaration","scope":10269,"src":"3597:17:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10234,"name":"bytes","nodeType":"ElementaryTypeName","src":"3597:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3596:19:34"},"scope":10289,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10288,"nodeType":"FunctionDefinition","src":"4256:234:34","nodes":[],"body":{"id":10287,"nodeType":"Block","src":"4326:164:34","nodes":[],"statements":[{"assignments":[10279],"declarations":[{"constant":false,"id":10279,"mutability":"mutable","name":"memoryPointer","nameLocation":"4340:13:34","nodeType":"VariableDeclaration","scope":10287,"src":"4332:21:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10278,"name":"uint256","nodeType":"ElementaryTypeName","src":"4332:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10283,"initialValue":{"arguments":[{"id":10281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10273,"src":"4364:4:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}],"id":10280,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10210,"src":"4356:7:34","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_Slice_$10067_$returns$_t_uint256_$","typeString":"function (Slice) pure returns (uint256)"}},"id":10282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4356:13:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4332:37:34"},{"AST":{"nativeSrc":"4423:44:34","nodeType":"YulBlock","src":"4423:44:34","statements":[{"nativeSrc":"4431:30:34","nodeType":"YulAssignment","src":"4431:30:34","value":{"arguments":[{"name":"memoryPointer","nativeSrc":"4447:13:34","nodeType":"YulIdentifier","src":"4447:13:34"}],"functionName":{"name":"mload","nativeSrc":"4441:5:34","nodeType":"YulIdentifier","src":"4441:5:34"},"nativeSrc":"4441:20:34","nodeType":"YulFunctionCall","src":"4441:20:34"},"variableNames":[{"name":"result","nativeSrc":"4431:6:34","nodeType":"YulIdentifier","src":"4431:6:34"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":10279,"isOffset":false,"isSlot":false,"src":"4447:13:34","valueSize":1},{"declaration":10276,"isOffset":false,"isSlot":false,"src":"4431:6:34","valueSize":1}],"id":10284,"nodeType":"InlineAssembly","src":"4414:53:34"},{"expression":{"id":10285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10276,"src":"4479:6:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10277,"id":10286,"nodeType":"Return","src":"4472:13:34"}]},"documentation":{"id":10270,"nodeType":"StructuredDocumentation","src":"3967:286:34","text":" @notice Converts a Slice to bytes32\n @dev This function converts a slice into a fixed-length bytes32. Uses inline assembly for the conversion.\n @param self The Slice to be converted to bytes32.\n @return result The bytes32 representation of the provided Slice."},"implemented":true,"kind":"function","modifiers":[],"name":"toBytes32","nameLocation":"4265:9:34","parameters":{"id":10274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10273,"mutability":"mutable","name":"self","nameLocation":"4281:4:34","nodeType":"VariableDeclaration","scope":10288,"src":"4275:10:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"},"typeName":{"id":10272,"nodeType":"UserDefinedTypeName","pathNode":{"id":10271,"name":"Slice","nameLocations":["4275:5:34"],"nodeType":"IdentifierPath","referencedDeclaration":10067,"src":"4275:5:34"},"referencedDeclaration":10067,"src":"4275:5:34","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Slice_$10067","typeString":"Slice"}},"visibility":"internal"}],"src":"4274:12:34"},"returnParameters":{"id":10277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10276,"mutability":"mutable","name":"result","nameLocation":"4318:6:34","nodeType":"VariableDeclaration","scope":10288,"src":"4310:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4310:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4309:16:34"},"scope":10289,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"SliceInstance","contractDependencies":[],"contractKind":"library","documentation":{"id":10193,"nodeType":"StructuredDocumentation","src":"2581:112:34","text":" @title Instance functions for Slice\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)"},"fullyImplemented":true,"linearizedBaseContracts":[10289],"name":"SliceInstance","nameLocation":"2702:13:34","scope":10290,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":34}