@latticexyz/world 2.2.20-31870811b975d44f4b5d14ae69fd623914237584 → 2.2.20-b774ab28b3de6cefcbfce5e1bb6fcb68b9374abf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/{chunk-NVV4GS3R.js → chunk-2W4TKC47.js} +2 -2
  2. package/dist/{chunk-6KRKTNJ5.js → chunk-SGZK356L.js} +22 -42
  3. package/dist/chunk-SGZK356L.js.map +1 -0
  4. package/dist/{chunk-6E2JY6MZ.js → chunk-XSBK355I.js} +1 -2
  5. package/dist/chunk-XSBK355I.js.map +1 -0
  6. package/dist/{dynamicResolution-Bul4y_B0.d.ts → dynamicResolution-AmVd5Qtd.d.ts} +5 -11
  7. package/dist/index.d.ts +2 -2
  8. package/dist/index.js +2 -2
  9. package/dist/internal.d.ts +18 -23
  10. package/dist/internal.js +7 -7
  11. package/dist/internal.js.map +1 -1
  12. package/dist/mud.config.d.ts +131 -242
  13. package/dist/mud.config.js +7 -9
  14. package/dist/node.d.ts +1 -1
  15. package/dist/node.js +19 -21
  16. package/dist/node.js.map +1 -1
  17. package/dist/{world-NqdA4pfW.d.ts → world-Nl5BmMma.d.ts} +1 -9
  18. package/out/AccessControl.t.sol/AccessControlTest.json +1 -1
  19. package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
  20. package/out/AddressArray.sol/AddressArray.json +1 -1
  21. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
  22. package/out/Balances.sol/Balances.json +1 -1
  23. package/out/BatchCall.t.sol/BatchCallTest.json +1 -1
  24. package/out/BatchCall.t.sol/TestSystem.json +1 -1
  25. package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
  26. package/out/Bool.sol/Bool.json +1 -1
  27. package/out/Create2Factory.sol/Create2Factory.json +1 -1
  28. package/out/DelegationControlMock.sol/DelegationControlMock.json +1 -1
  29. package/out/EchoSubscriber.sol/EchoSubscriber.json +1 -1
  30. package/out/Factories.t.sol/FactoriesTest.json +1 -1
  31. package/out/FunctionSelectors.sol/FunctionSelectors.json +1 -1
  32. package/out/FunctionSignatures.sol/FunctionSignatures.json +1 -1
  33. package/out/GasReporter.sol/GasReporter.json +1 -1
  34. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +1 -1
  35. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +1 -1
  36. package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
  37. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
  38. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
  39. package/out/IRegistrationSystem.sol/IRegistrationSystem.json +1 -1
  40. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
  41. package/out/InitModule.sol/InitModule.json +1 -1
  42. package/out/InitModule.t.sol/InitModuleTest.json +1 -1
  43. package/out/InitModule.t.sol/WorldMock.json +1 -1
  44. package/out/InitModuleAddress.sol/InitModuleAddress.json +1 -1
  45. package/out/InitSystems.t.sol/LimitedCallContextTest.json +1 -1
  46. package/out/InstalledModules.sol/InstalledModules.json +1 -1
  47. package/out/LimitedCallContext.sol/LimitedCallContext.json +1 -1
  48. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
  49. package/out/MudTest.t.sol/MudTest.json +1 -1
  50. package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
  51. package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
  52. package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
  53. package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
  54. package/out/RevertSubscriber.sol/RevertSubscriber.json +1 -1
  55. package/out/RevertWithBytes.t.sol/RevertWithBytesTest.json +1 -1
  56. package/out/StdError.sol/stdError.json +1 -1
  57. package/out/StoreMock.sol/StoreMock.json +1 -1
  58. package/out/StoreRead.sol/StoreRead.json +1 -1
  59. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
  60. package/out/System.sol/System.json +1 -1
  61. package/out/System.t.sol/SystemTest.json +1 -1
  62. package/out/System.t.sol/TestSystem.json +1 -1
  63. package/out/SystemHook.t.sol/SystemHookTest.json +1 -1
  64. package/out/SystemHooks.sol/SystemHooks.json +1 -1
  65. package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
  66. package/out/Systems.sol/Systems.json +1 -1
  67. package/out/TwoFields.sol/TwoFields.json +1 -1
  68. package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
  69. package/out/Utils.t.sol/UtilsTest.json +1 -1
  70. package/out/Utils.t.sol/UtilsTestSystem.json +1 -1
  71. package/out/World.sol/World.json +1 -1
  72. package/out/World.t.sol/EchoSystemHook.json +1 -1
  73. package/out/World.t.sol/IWorldTestSystem.json +1 -1
  74. package/out/World.t.sol/PayableFallbackSystem.json +1 -1
  75. package/out/World.t.sol/RevertSystemHook.json +1 -1
  76. package/out/World.t.sol/WorldTest.json +1 -1
  77. package/out/World.t.sol/WorldTestSystem.json +1 -1
  78. package/out/WorldBalance.t.sol/WorldBalanceTest.json +1 -1
  79. package/out/WorldBalance.t.sol/WorldBalanceTestSystem.json +1 -1
  80. package/out/WorldContext.t.sol/TestContextConsumer.json +1 -1
  81. package/out/WorldContext.t.sol/WorldContextTest.json +1 -1
  82. package/out/WorldDynamicUpdate.t.sol/UpdateInDynamicFieldTest.json +1 -1
  83. package/out/WorldFactory.sol/WorldFactory.json +1 -1
  84. package/out/WorldProxy.sol/WorldProxy.json +1 -1
  85. package/out/WorldProxy.t.sol/WorldProxyTest.json +1 -1
  86. package/out/WorldProxyFactory.sol/WorldProxyFactory.json +1 -1
  87. package/out/WorldProxyFactory.t.sol/WorldProxyFactoryTest.json +1 -1
  88. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
  89. package/out/WorldResourceId.t.sol/WorldResourceIdTest.json +1 -1
  90. package/out/build-info/{6366a746548e984842b93ef762b76b99.json → 4a78a1cea15b250410c6bac766ef5562.json} +1 -1
  91. package/out/test.sol/DSTest.json +1 -1
  92. package/package.json +9 -9
  93. package/src/modules/init/implementations/ModuleInstallationSystem.sol +1 -1
  94. package/src/modules/init/implementations/StoreRegistrationSystem.sol +1 -2
  95. package/src/modules/init/implementations/WorldRegistrationSystem.sol +1 -1
  96. package/dist/chunk-6E2JY6MZ.js.map +0 -1
  97. package/dist/chunk-6KRKTNJ5.js.map +0 -1
  98. package/out/AccessManagementSystemLib.sol/AccessManagementSystemLib.abi.json +0 -7
  99. package/out/AccessManagementSystemLib.sol/AccessManagementSystemLib.abi.json.d.ts +0 -9
  100. package/out/AccessManagementSystemLib.sol/AccessManagementSystemLib.json +0 -1
  101. package/out/AccessManagementSystemLib.sol/_grantAccess_ResourceId_address.abi.json +0 -20
  102. package/out/AccessManagementSystemLib.sol/_grantAccess_ResourceId_address.abi.json.d.ts +0 -22
  103. package/out/AccessManagementSystemLib.sol/_grantAccess_ResourceId_address.json +0 -1
  104. package/out/AccessManagementSystemLib.sol/_renounceOwnership_ResourceId.abi.json +0 -15
  105. package/out/AccessManagementSystemLib.sol/_renounceOwnership_ResourceId.abi.json.d.ts +0 -17
  106. package/out/AccessManagementSystemLib.sol/_renounceOwnership_ResourceId.json +0 -1
  107. package/out/AccessManagementSystemLib.sol/_revokeAccess_ResourceId_address.abi.json +0 -20
  108. package/out/AccessManagementSystemLib.sol/_revokeAccess_ResourceId_address.abi.json.d.ts +0 -22
  109. package/out/AccessManagementSystemLib.sol/_revokeAccess_ResourceId_address.json +0 -1
  110. package/out/AccessManagementSystemLib.sol/_transferOwnership_ResourceId_address.abi.json +0 -20
  111. package/out/AccessManagementSystemLib.sol/_transferOwnership_ResourceId_address.abi.json.d.ts +0 -22
  112. package/out/AccessManagementSystemLib.sol/_transferOwnership_ResourceId_address.json +0 -1
  113. package/out/BalanceTransferSystemLib.sol/BalanceTransferSystemLib.abi.json +0 -7
  114. package/out/BalanceTransferSystemLib.sol/BalanceTransferSystemLib.abi.json.d.ts +0 -9
  115. package/out/BalanceTransferSystemLib.sol/BalanceTransferSystemLib.json +0 -1
  116. package/out/BalanceTransferSystemLib.sol/_transferBalanceToAddress_ResourceId_address_uint256.abi.json +0 -25
  117. package/out/BalanceTransferSystemLib.sol/_transferBalanceToAddress_ResourceId_address_uint256.abi.json.d.ts +0 -27
  118. package/out/BalanceTransferSystemLib.sol/_transferBalanceToAddress_ResourceId_address_uint256.json +0 -1
  119. package/out/BalanceTransferSystemLib.sol/_transferBalanceToNamespace_ResourceId_ResourceId_uint256.abi.json +0 -25
  120. package/out/BalanceTransferSystemLib.sol/_transferBalanceToNamespace_ResourceId_ResourceId_uint256.abi.json.d.ts +0 -27
  121. package/out/BalanceTransferSystemLib.sol/_transferBalanceToNamespace_ResourceId_ResourceId_uint256.json +0 -1
  122. package/out/BatchCallSystemLib.sol/BatchCallSystemLib.abi.json +0 -7
  123. package/out/BatchCallSystemLib.sol/BatchCallSystemLib.abi.json.d.ts +0 -9
  124. package/out/BatchCallSystemLib.sol/BatchCallSystemLib.json +0 -1
  125. package/out/BatchCallSystemLib.sol/_batchCallFrom_SystemCallFromDataArray.abi.json +0 -32
  126. package/out/BatchCallSystemLib.sol/_batchCallFrom_SystemCallFromDataArray.abi.json.d.ts +0 -34
  127. package/out/BatchCallSystemLib.sol/_batchCallFrom_SystemCallFromDataArray.json +0 -1
  128. package/out/BatchCallSystemLib.sol/_batchCall_SystemCallDataArray.abi.json +0 -27
  129. package/out/BatchCallSystemLib.sol/_batchCall_SystemCallDataArray.abi.json.d.ts +0 -29
  130. package/out/BatchCallSystemLib.sol/_batchCall_SystemCallDataArray.json +0 -1
  131. package/out/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.abi.json +0 -81
  132. package/out/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.abi.json.d.ts +0 -83
  133. package/out/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.json +0 -1
  134. package/out/ModuleInstallationSystemLib.sol/ModuleInstallationSystemLib.abi.json +0 -7
  135. package/out/ModuleInstallationSystemLib.sol/ModuleInstallationSystemLib.abi.json.d.ts +0 -9
  136. package/out/ModuleInstallationSystemLib.sol/ModuleInstallationSystemLib.json +0 -1
  137. package/out/ModuleInstallationSystemLib.sol/_installModule_IModule_bytes.abi.json +0 -20
  138. package/out/ModuleInstallationSystemLib.sol/_installModule_IModule_bytes.abi.json.d.ts +0 -22
  139. package/out/ModuleInstallationSystemLib.sol/_installModule_IModule_bytes.json +0 -1
  140. package/out/RegistrationSystemLib.sol/RegistrationSystemLib.abi.json +0 -7
  141. package/out/RegistrationSystemLib.sol/RegistrationSystemLib.abi.json.d.ts +0 -9
  142. package/out/RegistrationSystemLib.sol/RegistrationSystemLib.json +0 -1
  143. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.abi.json +0 -7
  144. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.abi.json.d.ts +0 -9
  145. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.json +0 -1
  146. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.abi.json +0 -25
  147. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.abi.json.d.ts +0 -27
  148. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.json +0 -1
  149. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.abi.json +0 -40
  150. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.abi.json.d.ts +0 -42
  151. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.json +0 -1
  152. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.abi.json +0 -20
  153. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.abi.json.d.ts +0 -22
  154. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.json +0 -1
  155. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.abi.json +0 -7
  156. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.abi.json.d.ts +0 -9
  157. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.json +0 -1
  158. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.abi.json +0 -25
  159. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.abi.json.d.ts +0 -27
  160. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.json +0 -1
  161. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.abi.json +0 -20
  162. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.abi.json.d.ts +0 -22
  163. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.json +0 -1
  164. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.abi.json +0 -25
  165. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.abi.json.d.ts +0 -27
  166. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.json +0 -1
  167. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.abi.json +0 -15
  168. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.abi.json.d.ts +0 -17
  169. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.json +0 -1
  170. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.abi.json +0 -25
  171. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.abi.json.d.ts +0 -27
  172. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.json +0 -1
  173. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.abi.json +0 -25
  174. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.abi.json.d.ts +0 -27
  175. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.json +0 -1
  176. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.abi.json +0 -25
  177. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.abi.json.d.ts +0 -27
  178. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.json +0 -1
  179. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.abi.json +0 -15
  180. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.abi.json.d.ts +0 -17
  181. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.json +0 -1
  182. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.abi.json +0 -15
  183. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.abi.json.d.ts +0 -17
  184. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.json +0 -1
  185. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.abi.json +0 -20
  186. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.abi.json.d.ts +0 -22
  187. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.json +0 -1
  188. package/src/codegen/experimental/systems/AccessManagementSystemLib.sol +0 -182
  189. package/src/codegen/experimental/systems/BalanceTransferSystemLib.sol +0 -169
  190. package/src/codegen/experimental/systems/BatchCallSystemLib.sol +0 -153
  191. package/src/codegen/experimental/systems/ModuleInstallationSystemLib.sol +0 -107
  192. package/src/codegen/experimental/systems/RegistrationSystemLib.sol +0 -71
  193. package/src/codegen/experimental/systems/StoreRegistrationSystemLib.sol +0 -228
  194. package/src/codegen/experimental/systems/WorldRegistrationSystemLib.sol +0 -471
  195. package/src/codegen/interfaces/IStoreRegistrationSystem.sol +0 -29
  196. /package/dist/{chunk-NVV4GS3R.js.map → chunk-2W4TKC47.js.map} +0 -0
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"onAfterDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"HookCalled","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"StoreHook_NotImplemented","inputs":[]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610b8f8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c80636358453311610072578063964f667d11610058578063964f667d1461012b5780639faeaf451461013e578063a8ba872114610151575f80fd5b8063635845331461010557806383b5c95b14610118575f80fd5b806301ffc9a7146100a357806355eb5a28146100ca57806357066c9c146100df5780635b28cdaf146100f2575b5f80fd5b6100b66100b136600461061c565b610164565b604051901515815260200160405180910390f35b6100dd6100d83660046107c2565b6101fc565b005b6100dd6100ed36600461086e565b6102b4565b6100dd61010036600461086e565b610369565b6100dd6101133660046107c2565b6103c1565b6100dd61012636600461090b565b61041b565b6100dd610139366004610957565b6104c7565b6100dd61014c36600461090b565b610576565b6100dd61015f366004610957565b6105c8565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a0000000000000000000000000000000000000000000000000000000014806101f657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166355eb5a28898989898989896040516024016102569796959493929190610a5b565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516102a39250610ab8565b60405180910390a150505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166357066c9c88888888888860405160240161030c96959493929190610aca565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103599250610ab8565b60405180910390a1505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16635b28cdaf88888888888860405160240161030c96959493929190610aca565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166363584533898989898989896040516024016102569796959493929190610a5b565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166383b5c95b85858560405160240161046d93929190610b22565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516104ba9250610ab8565b60405180910390a1505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663964f667d8686868660405160240161051b9493929190610b4a565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105689250610ab8565b60405180910390a150505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16639faeaf4585858560405160240161046d93929190610b22565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663a8ba87218686868660405160240161051b9493929190610b4a565b5f6020828403121561062c575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461065b575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106b8576106b8610662565b604052919050565b5f82601f8301126106cf575f80fd5b8135602067ffffffffffffffff8211156106eb576106eb610662565b8160051b6106fa82820161068f565b9283528481018201928281019087851115610713575f80fd5b83870192505b8483101561073257823582529183019190830190610719565b979650505050505050565b803564ffffffffff81168114610751575f80fd5b919050565b5f82601f830112610765575f80fd5b813567ffffffffffffffff81111561077f5761077f610662565b6107926020601f19601f8401160161068f565b8181528460208386010111156107a6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a0312156107d8575f80fd5b87359650602088013567ffffffffffffffff808211156107f6575f80fd5b6108028b838c016106c0565b975060408a0135915060ff82168214610819575f80fd5b81965061082860608b0161073d565b955061083660808b0161073d565b945060a08a0135935060c08a0135915080821115610852575f80fd5b5061085f8a828b01610756565b91505092959891949750929550565b5f805f805f8060c08789031215610883575f80fd5b86359550602087013567ffffffffffffffff808211156108a1575f80fd5b6108ad8a838b016106c0565b965060408901359150808211156108c2575f80fd5b6108ce8a838b01610756565b95506060890135945060808901359150808211156108ea575f80fd5b506108f789828a01610756565b92505060a087013590509295509295509295565b5f805f6060848603121561091d575f80fd5b83359250602084013567ffffffffffffffff81111561093a575f80fd5b610946868287016106c0565b925050604084013590509250925092565b5f805f806080858703121561096a575f80fd5b84359350602085013567ffffffffffffffff80821115610988575f80fd5b610994888389016106c0565b94506040870135915065ffffffffffff821682146109b0575f80fd5b909250606086013590808211156109c5575f80fd5b506109d287828801610756565b91505092959194509250565b5f815180845260208085019450602084015f5b83811015610a0d578151875295820195908201906001016109f1565b509495945050505050565b5f81518084525f5b81811015610a3c57602081850181015186830182015201610a20565b505f602082860101526020601f19601f83011685010191505092915050565b87815260e060208201525f610a7360e08301896109de565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152610aaa8185610a18565b9a9950505050505050505050565b602081525f61065b6020830184610a18565b86815260c060208201525f610ae260c08301886109de565b8281036040840152610af48188610a18565b90508560608401528281036080840152610b0e8186610a18565b9150508260a0830152979650505050505050565b838152606060208201525f610b3a60608301856109de565b9050826040830152949350505050565b848152608060208201525f610b6260808301866109de565b65ffffffffffff8516604084015282810360608401526107328185610a1856fea164736f6c6343000818000a","sourceMap":"276:2725:43:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061009f575f3560e01c80636358453311610072578063964f667d11610058578063964f667d1461012b5780639faeaf451461013e578063a8ba872114610151575f80fd5b8063635845331461010557806383b5c95b14610118575f80fd5b806301ffc9a7146100a357806355eb5a28146100ca57806357066c9c146100df5780635b28cdaf146100f2575b5f80fd5b6100b66100b136600461061c565b610164565b604051901515815260200160405180910390f35b6100dd6100d83660046107c2565b6101fc565b005b6100dd6100ed36600461086e565b6102b4565b6100dd61010036600461086e565b610369565b6100dd6101133660046107c2565b6103c1565b6100dd61012636600461090b565b61041b565b6100dd610139366004610957565b6104c7565b6100dd61014c36600461090b565b610576565b6100dd61015f366004610957565b6105c8565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a0000000000000000000000000000000000000000000000000000000014806101f657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166355eb5a28898989898989896040516024016102569796959493929190610a5b565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516102a39250610ab8565b60405180910390a150505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166357066c9c88888888888860405160240161030c96959493929190610aca565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103599250610ab8565b60405180910390a1505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16635b28cdaf88888888888860405160240161030c96959493929190610aca565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166363584533898989898989896040516024016102569796959493929190610a5b565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166383b5c95b85858560405160240161046d93929190610b22565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516104ba9250610ab8565b60405180910390a1505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663964f667d8686868660405160240161051b9493929190610b4a565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105689250610ab8565b60405180910390a150505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16639faeaf4585858560405160240161046d93929190610b22565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663a8ba87218686868660405160240161051b9493929190610b4a565b5f6020828403121561062c575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461065b575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106b8576106b8610662565b604052919050565b5f82601f8301126106cf575f80fd5b8135602067ffffffffffffffff8211156106eb576106eb610662565b8160051b6106fa82820161068f565b9283528481018201928281019087851115610713575f80fd5b83870192505b8483101561073257823582529183019190830190610719565b979650505050505050565b803564ffffffffff81168114610751575f80fd5b919050565b5f82601f830112610765575f80fd5b813567ffffffffffffffff81111561077f5761077f610662565b6107926020601f19601f8401160161068f565b8181528460208386010111156107a6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a0312156107d8575f80fd5b87359650602088013567ffffffffffffffff808211156107f6575f80fd5b6108028b838c016106c0565b975060408a0135915060ff82168214610819575f80fd5b81965061082860608b0161073d565b955061083660808b0161073d565b945060a08a0135935060c08a0135915080821115610852575f80fd5b5061085f8a828b01610756565b91505092959891949750929550565b5f805f805f8060c08789031215610883575f80fd5b86359550602087013567ffffffffffffffff808211156108a1575f80fd5b6108ad8a838b016106c0565b965060408901359150808211156108c2575f80fd5b6108ce8a838b01610756565b95506060890135945060808901359150808211156108ea575f80fd5b506108f789828a01610756565b92505060a087013590509295509295509295565b5f805f6060848603121561091d575f80fd5b83359250602084013567ffffffffffffffff81111561093a575f80fd5b610946868287016106c0565b925050604084013590509250925092565b5f805f806080858703121561096a575f80fd5b84359350602085013567ffffffffffffffff80821115610988575f80fd5b610994888389016106c0565b94506040870135915065ffffffffffff821682146109b0575f80fd5b909250606086013590808211156109c5575f80fd5b506109d287828801610756565b91505092959194509250565b5f815180845260208085019450602084015f5b83811015610a0d578151875295820195908201906001016109f1565b509495945050505050565b5f81518084525f5b81811015610a3c57602081850181015186830182015201610a20565b505f602082860101526020601f19601f83011685010191505092915050565b87815260e060208201525f610a7360e08301896109de565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152610aaa8185610a18565b9a9950505050505050505050565b602081525f61065b6020830184610a18565b86815260c060208201525f610ae260c08301886109de565b8281036040840152610af48188610a18565b90508560608401528281036080840152610b0e8186610a18565b9150508260a0830152979650505050505050565b838152606060208201525f610b3a60608301856109de565b9050826040830152949350505050565b848152608060208201525f610b6260808301866109de565b65ffffffffffff8516604084015282810360608401526107328185610a1856fea164736f6c6343000818000a","sourceMap":"276:2725:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;931:187:26;;;;;;:::i;:::-;;:::i;:::-;;;516:14:170;;509:22;491:41;;479:2;464:18;931:187:26;;;;;;;1627:453:43;;;;;;:::i;:::-;;:::i;:::-;;345:378;;;;;;:::i;:::-;;:::i;727:376::-;;;;;;:::i;:::-;;:::i;2084:451::-;;;;;;:::i;:::-;;:::i;2780:219::-;;;;;;:::i;:::-;;:::i;1107:257::-;;;;;;:::i;:::-;;:::i;2539:237::-;;;;;;:::i;:::-;;:::i;1368:255::-;;;;;;:::i;:::-;;:::i;931:187:26:-;1007:4;1026:43;;;1041:28;1026:43;;:87;;-1:-1:-1;1073:40:26;;;1088:25;1073:40;1026:87;1019:94;931:187;-1:-1:-1;;931:187:26:o;1627:453:43:-;1888:187;1930:4;:30;;;1971:7;1980:8;1990:17;2009:16;2027:11;2040:14;2056:4;1906:163;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1906:163:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;1888:187;;;;-1:-1:-1;1888:187:43;:::i;:::-;;;;;;;;1627:453;;;;;;;:::o;345:378::-;581:137;614:4;:22;;;639:7;648:8;658:10;670:14;686:11;699;599:113;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;599:113:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:137;;;;-1:-1:-1;581:137:43;:::i;:::-;;;;;;;;345:378;;;;;;:::o;727:376::-;962:136;995:4;:21;;;1019:7;1028:8;1038:10;1050:14;1066:11;1079;980:112;;;;;;;;;;;;;:::i;2084:451::-;2344:186;2386:4;:29;;;2426:7;2435:8;2445:17;2464:16;2482:11;2495:14;2511:4;2362:162;;;;;;;;;;;;;;:::i;2780:219::-;2908:86;2934:4;:24;;;2961:7;2970:8;2980:11;2919:74;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2919:74:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:86;;;;-1:-1:-1;2908:86:43;:::i;:::-;;;;;;;;2780:219;;;:::o;1107:257::-;1268:91;1294:4;:29;;;1326:7;1335:8;1345:5;1352:4;1279:79;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1279:79:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;1268:91;;;;-1:-1:-1;1268:91:43;:::i;:::-;;;;;;;;1107:257;;;;:::o;2539:237::-;2684:87;2710:4;:25;;;2738:7;2747:8;2757:11;2695:75;;;;;;;;;;:::i;1368:255::-;1528:90;1554:4;:28;;;1585:7;1594:8;1604:5;1611:4;1539:78;;;;;;;;;;;:::i;14:332:170:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:170:o;543:184::-;595:77;592:1;585:88;692:4;689:1;682:15;716:4;713:1;706:15;732:334;803:2;797:9;859:2;849:13;;-1:-1:-1;;845:86:170;833:99;;962:18;947:34;;983:22;;;944:62;941:88;;;1009:18;;:::i;:::-;1045:2;1038:22;732:334;;-1:-1:-1;732:334:170:o;1071:712::-;1125:5;1178:3;1171:4;1163:6;1159:17;1155:27;1145:55;;1196:1;1193;1186:12;1145:55;1232:6;1219:20;1258:4;1281:18;1277:2;1274:26;1271:52;;;1303:18;;:::i;:::-;1349:2;1346:1;1342:10;1372:28;1396:2;1392;1388:11;1372:28;:::i;:::-;1434:15;;;1504;;;1500:24;;;1465:12;;;;1536:15;;;1533:35;;;1564:1;1561;1554:12;1533:35;1600:2;1592:6;1588:15;1577:26;;1612:142;1628:6;1623:3;1620:15;1612:142;;;1694:17;;1682:30;;1645:12;;;;1732;;;;1612:142;;;1772:5;1071:712;-1:-1:-1;;;;;;;1071:712:170:o;1788:165::-;1855:20;;1915:12;1904:24;;1894:35;;1884:63;;1943:1;1940;1933:12;1884:63;1788:165;;;:::o;1958:589::-;2000:5;2053:3;2046:4;2038:6;2034:17;2030:27;2020:55;;2071:1;2068;2061:12;2020:55;2107:6;2094:20;2133:18;2129:2;2126:26;2123:52;;;2155:18;;:::i;:::-;2199:114;2307:4;-1:-1:-1;;2231:4:170;2227:2;2223:13;2219:86;2215:97;2199:114;:::i;:::-;2338:2;2329:7;2322:19;2384:3;2377:4;2372:2;2364:6;2360:15;2356:26;2353:35;2350:55;;;2401:1;2398;2391:12;2350:55;2466:2;2459:4;2451:6;2447:17;2440:4;2431:7;2427:18;2414:55;2514:1;2489:16;;;2507:4;2485:27;2478:38;;;;2493:7;1958:589;-1:-1:-1;;;1958:589:170:o;2552:1074::-;2761:6;2769;2777;2785;2793;2801;2809;2862:3;2850:9;2841:7;2837:23;2833:33;2830:53;;;2879:1;2876;2869:12;2830:53;2915:9;2902:23;2892:33;;2976:2;2965:9;2961:18;2948:32;2999:18;3040:2;3032:6;3029:14;3026:34;;;3056:1;3053;3046:12;3026:34;3079:61;3132:7;3123:6;3112:9;3108:22;3079:61;:::i;:::-;3069:71;;3190:2;3179:9;3175:18;3162:32;3149:45;;3234:4;3227:5;3223:16;3216:5;3213:27;3203:55;;3254:1;3251;3244:12;3203:55;3277:5;3267:15;;3301:37;3334:2;3323:9;3319:18;3301:37;:::i;:::-;3291:47;;3357:38;3390:3;3379:9;3375:19;3357:38;:::i;:::-;3347:48;;3442:3;3431:9;3427:19;3414:33;3404:43;;3500:3;3489:9;3485:19;3472:33;3456:49;;3530:2;3520:8;3517:16;3514:36;;;3546:1;3543;3536:12;3514:36;;3569:51;3612:7;3601:8;3590:9;3586:24;3569:51;:::i;:::-;3559:61;;;2552:1074;;;;;;;;;;:::o;3631:1070::-;3876:6;3884;3892;3900;3908;3916;3969:3;3957:9;3948:7;3944:23;3940:33;3937:53;;;3986:1;3983;3976:12;3937:53;4022:9;4009:23;3999:33;;4083:2;4072:9;4068:18;4055:32;4106:18;4147:2;4139:6;4136:14;4133:34;;;4163:1;4160;4153:12;4133:34;4186:61;4239:7;4230:6;4219:9;4215:22;4186:61;:::i;:::-;4176:71;;4300:2;4289:9;4285:18;4272:32;4256:48;;4329:2;4319:8;4316:16;4313:36;;;4345:1;4342;4335:12;4313:36;4368:51;4411:7;4400:8;4389:9;4385:24;4368:51;:::i;:::-;4358:61;;4466:2;4455:9;4451:18;4438:32;4428:42;;4523:3;4512:9;4508:19;4495:33;4479:49;;4553:2;4543:8;4540:16;4537:36;;;4569:1;4566;4559:12;4537:36;;4592:51;4635:7;4624:8;4613:9;4609:24;4592:51;:::i;:::-;4582:61;;;4690:3;4679:9;4675:19;4662:33;4652:43;;3631:1070;;;;;;;;:::o;4706:547::-;4871:6;4879;4887;4940:2;4928:9;4919:7;4915:23;4911:32;4908:52;;;4956:1;4953;4946:12;4908:52;4992:9;4979:23;4969:33;;5053:2;5042:9;5038:18;5025:32;5080:18;5072:6;5069:30;5066:50;;;5112:1;5109;5102:12;5066:50;5135:61;5188:7;5179:6;5168:9;5164:22;5135:61;:::i;:::-;5125:71;;;5243:2;5232:9;5228:18;5215:32;5205:42;;4706:547;;;;;:::o;5258:835::-;5408:6;5416;5424;5432;5485:3;5473:9;5464:7;5460:23;5456:33;5453:53;;;5502:1;5499;5492:12;5453:53;5538:9;5525:23;5515:33;;5599:2;5588:9;5584:18;5571:32;5622:18;5663:2;5655:6;5652:14;5649:34;;;5679:1;5676;5669:12;5649:34;5702:61;5755:7;5746:6;5735:9;5731:22;5702:61;:::i;:::-;5692:71;;5813:2;5802:9;5798:18;5785:32;5772:45;;5857:14;5850:5;5846:26;5839:5;5836:37;5826:65;;5887:1;5884;5877:12;5826:65;5910:5;;-1:-1:-1;5968:2:170;5953:18;;5940:32;;5984:16;;;5981:36;;;6013:1;6010;6003:12;5981:36;;6036:51;6079:7;6068:8;6057:9;6053:24;6036:51;:::i;:::-;6026:61;;;5258:835;;;;;;;:::o;6098:439::-;6151:3;6189:5;6183:12;6216:6;6211:3;6204:19;6242:4;6271;6266:3;6262:14;6255:21;;6310:4;6303:5;6299:16;6333:1;6343:169;6357:6;6354:1;6351:13;6343:169;;;6418:13;;6406:26;;6452:12;;;;6487:15;;;;6379:1;6372:9;6343:169;;;-1:-1:-1;6528:3:170;;6098:439;-1:-1:-1;;;;;6098:439:170:o;6542:481::-;6583:3;6621:5;6615:12;6648:6;6643:3;6636:19;6673:1;6683:162;6697:6;6694:1;6691:13;6683:162;;;6759:4;6815:13;;;6811:22;;6805:29;6787:11;;;6783:20;;6776:59;6712:12;6683:162;;;6687:3;6890:1;6883:4;6874:6;6869:3;6865:16;6861:27;6854:38;7012:4;-1:-1:-1;;6937:2:170;6929:6;6925:15;6921:88;6916:3;6912:98;6908:109;6901:116;;;6542:481;;;;:::o;7028:899::-;7451:6;7440:9;7433:25;7494:3;7489:2;7478:9;7474:18;7467:31;7414:4;7521:57;7573:3;7562:9;7558:19;7550:6;7521:57;:::i;:::-;7626:4;7614:17;;7609:2;7594:18;;7587:45;7651:12;7699:15;;;7694:2;7679:18;;7672:43;7752:15;;7746:3;7731:19;;7724:44;7799:3;7784:19;;7777:35;;;7849:22;;;7843:3;7828:19;;7821:51;7889:32;7853:6;7906;7889:32;:::i;:::-;7881:40;7028:899;-1:-1:-1;;;;;;;;;;7028:899:170:o;7932:217::-;8079:2;8068:9;8061:21;8042:4;8099:44;8139:2;8128:9;8124:18;8116:6;8099:44;:::i;8154:896::-;8607:6;8596:9;8589:25;8650:3;8645:2;8634:9;8630:18;8623:31;8570:4;8677:57;8729:3;8718:9;8714:19;8706:6;8677:57;:::i;:::-;8782:9;8774:6;8770:22;8765:2;8754:9;8750:18;8743:50;8816:32;8841:6;8833;8816:32;:::i;:::-;8802:46;;8884:6;8879:2;8868:9;8864:18;8857:34;8940:9;8932:6;8928:22;8922:3;8911:9;8907:19;8900:51;8968:32;8993:6;8985;8968:32;:::i;:::-;8960:40;;;9037:6;9031:3;9020:9;9016:19;9009:35;8154:896;;;;;;;;;:::o;9055:466::-;9353:6;9342:9;9335:25;9396:2;9391;9380:9;9376:18;9369:30;9316:4;9416:56;9468:2;9457:9;9453:18;9445:6;9416:56;:::i;:::-;9408:64;;9508:6;9503:2;9492:9;9488:18;9481:34;9055:466;;;;;;:::o;9526:615::-;9836:6;9825:9;9818:25;9879:3;9874:2;9863:9;9859:18;9852:31;9799:4;9906:57;9958:3;9947:9;9943:19;9935:6;9906:57;:::i;:::-;10011:14;10003:6;9999:27;9994:2;9983:9;9979:18;9972:55;10075:9;10067:6;10063:22;10058:2;10047:9;10043:18;10036:50;10103:32;10128:6;10120;10103:32;:::i","linkReferences":{}},"methodIdentifiers":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":"83b5c95b","onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"5b28cdaf","onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"63584533","onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"a8ba8721","onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":"9faeaf45","onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"57066c9c","onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"55eb5a28","onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"964f667d","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"StoreHook_NotImplemented\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"HookCalled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onBeforeDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onBeforeSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record was set.\"}},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is to be set.\"}},\"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"supportsInterface(bytes4)\":{\"details\":\"This function is a part of the ERC-165 standard.\",\"params\":{\"interfaceId\":\"The ID of the interface to check.\"},\"returns\":{\"_0\":\"true if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"StoreHook_NotImplemented()\":[{\"notice\":\"Error emitted when a function is not implemented.\"}]},\"kind\":\"user\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Hook that runs after deleting a record.\"},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Hook that runs after setting a record.\"},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Hook that runs after splicing dynamic (variable length) data.\"},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs after splicing static (fixed length) data.\"},\"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Hook that runs before deleting a record.\"},\"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Hook that runs before setting a record.\"},\"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Hook that runs before splicing dynamic (variable length) data.\"},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs before splicing static (fixed length) data.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the interface is supported.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/test/EchoSubscriber.sol\":\"EchoSubscriber\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b\",\"dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7\"]},\"node_modules/@latticexyz/store/src/StoreHook.sol\":{\"keccak256\":\"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d\",\"dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/test/EchoSubscriber.sol\":{\"keccak256\":\"0x81815bcfe30f3671eb7589f83621866e31aad7385b95ef142a70fa2ef1de0fe8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5dc056be61192d38dee67585d3468c69bb72b76d764a844245e98a1c3a642d8\",\"dweb:/ipfs/QmQsJhfbLD8sEeR3X2JF4NqGPsMtmQr32pKR21Tihr67pT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"StoreHook_NotImplemented"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"HookCalled","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceStaticData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceStaticData"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","staticData":"The static data of the record.","tableId":"The ID of the table where the record was set."}},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.","params":{"data":"The data to be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","staticData":"The static data of the record.","tableId":"The ID of the table where the record is to be set."}},"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.","params":{"data":"The data to be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"supportsInterface(bytes4)":{"details":"This function is a part of the ERC-165 standard.","params":{"interfaceId":"The ID of the interface to check."},"returns":{"_0":"true if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Hook that runs after deleting a record."},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Hook that runs after setting a record."},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Hook that runs after splicing dynamic (variable length) data."},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs after splicing static (fixed length) data."},"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Hook that runs before deleting a record."},"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Hook that runs before setting a record."},"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Hook that runs before splicing dynamic (variable length) data."},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs before splicing static (fixed length) data."},"supportsInterface(bytes4)":{"notice":"Check if the interface is supported."}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"node_modules/@latticexyz/store/test/EchoSubscriber.sol":"EchoSubscriber"},"evmVersion":"cancun","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5","urls":["bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b","dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreHook.sol":{"keccak256":"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173","urls":["bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d","dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/test/EchoSubscriber.sol":{"keccak256":"0x81815bcfe30f3671eb7589f83621866e31aad7385b95ef142a70fa2ef1de0fe8","urls":["bzz-raw://a5dc056be61192d38dee67585d3468c69bb72b76d764a844245e98a1c3a642d8","dweb:/ipfs/QmQsJhfbLD8sEeR3X2JF4NqGPsMtmQr32pKR21Tihr67pT"],"license":"MIT"}},"version":1},"id":43}
1
+ {"abi":[{"type":"function","name":"onAfterDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onAfterSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeDeleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSetRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeSpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"HookCalled","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"StoreHook_NotImplemented","inputs":[]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610b8f8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c80636358453311610072578063964f667d11610058578063964f667d1461012b5780639faeaf451461013e578063a8ba872114610151575f80fd5b8063635845331461010557806383b5c95b14610118575f80fd5b806301ffc9a7146100a357806355eb5a28146100ca57806357066c9c146100df5780635b28cdaf146100f2575b5f80fd5b6100b66100b136600461061c565b610164565b604051901515815260200160405180910390f35b6100dd6100d83660046107c2565b6101fc565b005b6100dd6100ed36600461086e565b6102b4565b6100dd61010036600461086e565b610369565b6100dd6101133660046107c2565b6103c1565b6100dd61012636600461090b565b61041b565b6100dd610139366004610957565b6104c7565b6100dd61014c36600461090b565b610576565b6100dd61015f366004610957565b6105c8565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a0000000000000000000000000000000000000000000000000000000014806101f657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166355eb5a28898989898989896040516024016102569796959493929190610a5b565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516102a39250610ab8565b60405180910390a150505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166357066c9c88888888888860405160240161030c96959493929190610aca565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103599250610ab8565b60405180910390a1505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16635b28cdaf88888888888860405160240161030c96959493929190610aca565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166363584533898989898989896040516024016102569796959493929190610a5b565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166383b5c95b85858560405160240161046d93929190610b22565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516104ba9250610ab8565b60405180910390a1505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663964f667d8686868660405160240161051b9493929190610b4a565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105689250610ab8565b60405180910390a150505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16639faeaf4585858560405160240161046d93929190610b22565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663a8ba87218686868660405160240161051b9493929190610b4a565b5f6020828403121561062c575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461065b575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106b8576106b8610662565b604052919050565b5f82601f8301126106cf575f80fd5b8135602067ffffffffffffffff8211156106eb576106eb610662565b8160051b6106fa82820161068f565b9283528481018201928281019087851115610713575f80fd5b83870192505b8483101561073257823582529183019190830190610719565b979650505050505050565b803564ffffffffff81168114610751575f80fd5b919050565b5f82601f830112610765575f80fd5b813567ffffffffffffffff81111561077f5761077f610662565b6107926020601f19601f8401160161068f565b8181528460208386010111156107a6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a0312156107d8575f80fd5b87359650602088013567ffffffffffffffff808211156107f6575f80fd5b6108028b838c016106c0565b975060408a0135915060ff82168214610819575f80fd5b81965061082860608b0161073d565b955061083660808b0161073d565b945060a08a0135935060c08a0135915080821115610852575f80fd5b5061085f8a828b01610756565b91505092959891949750929550565b5f805f805f8060c08789031215610883575f80fd5b86359550602087013567ffffffffffffffff808211156108a1575f80fd5b6108ad8a838b016106c0565b965060408901359150808211156108c2575f80fd5b6108ce8a838b01610756565b95506060890135945060808901359150808211156108ea575f80fd5b506108f789828a01610756565b92505060a087013590509295509295509295565b5f805f6060848603121561091d575f80fd5b83359250602084013567ffffffffffffffff81111561093a575f80fd5b610946868287016106c0565b925050604084013590509250925092565b5f805f806080858703121561096a575f80fd5b84359350602085013567ffffffffffffffff80821115610988575f80fd5b610994888389016106c0565b94506040870135915065ffffffffffff821682146109b0575f80fd5b909250606086013590808211156109c5575f80fd5b506109d287828801610756565b91505092959194509250565b5f815180845260208085019450602084015f5b83811015610a0d578151875295820195908201906001016109f1565b509495945050505050565b5f81518084525f5b81811015610a3c57602081850181015186830182015201610a20565b505f602082860101526020601f19601f83011685010191505092915050565b87815260e060208201525f610a7360e08301896109de565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152610aaa8185610a18565b9a9950505050505050505050565b602081525f61065b6020830184610a18565b86815260c060208201525f610ae260c08301886109de565b8281036040840152610af48188610a18565b90508560608401528281036080840152610b0e8186610a18565b9150508260a0830152979650505050505050565b838152606060208201525f610b3a60608301856109de565b9050826040830152949350505050565b848152608060208201525f610b6260808301866109de565b65ffffffffffff8516604084015282810360608401526107328185610a1856fea164736f6c6343000818000a","sourceMap":"276:2725:43:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061009f575f3560e01c80636358453311610072578063964f667d11610058578063964f667d1461012b5780639faeaf451461013e578063a8ba872114610151575f80fd5b8063635845331461010557806383b5c95b14610118575f80fd5b806301ffc9a7146100a357806355eb5a28146100ca57806357066c9c146100df5780635b28cdaf146100f2575b5f80fd5b6100b66100b136600461061c565b610164565b604051901515815260200160405180910390f35b6100dd6100d83660046107c2565b6101fc565b005b6100dd6100ed36600461086e565b6102b4565b6100dd61010036600461086e565b610369565b6100dd6101133660046107c2565b6103c1565b6100dd61012636600461090b565b61041b565b6100dd610139366004610957565b6104c7565b6100dd61014c36600461090b565b610576565b6100dd61015f366004610957565b6105c8565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f1873396a0000000000000000000000000000000000000000000000000000000014806101f657507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166355eb5a28898989898989896040516024016102569796959493929190610a5b565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516102a39250610ab8565b60405180910390a150505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166357066c9c88888888888860405160240161030c96959493929190610aca565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516103599250610ab8565b60405180910390a1505050505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16635b28cdaf88888888888860405160240161030c96959493929190610aca565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166363584533898989898989896040516024016102569796959493929190610a5b565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff166383b5c95b85858560405160240161046d93929190610b22565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516104ba9250610ab8565b60405180910390a1505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663964f667d8686868660405160240161051b9493929190610b4a565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660e09490941b9390931790925290516105689250610ab8565b60405180910390a150505050565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff16639faeaf4585858560405160240161046d93929190610b22565b7f6073633690ca0c2f55f2bd96dfca2d9da28331e7a66750110fbed5082a13156e3073ffffffffffffffffffffffffffffffffffffffff1663a8ba87218686868660405160240161051b9493929190610b4a565b5f6020828403121561062c575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461065b575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106b8576106b8610662565b604052919050565b5f82601f8301126106cf575f80fd5b8135602067ffffffffffffffff8211156106eb576106eb610662565b8160051b6106fa82820161068f565b9283528481018201928281019087851115610713575f80fd5b83870192505b8483101561073257823582529183019190830190610719565b979650505050505050565b803564ffffffffff81168114610751575f80fd5b919050565b5f82601f830112610765575f80fd5b813567ffffffffffffffff81111561077f5761077f610662565b6107926020601f19601f8401160161068f565b8181528460208386010111156107a6575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f60e0888a0312156107d8575f80fd5b87359650602088013567ffffffffffffffff808211156107f6575f80fd5b6108028b838c016106c0565b975060408a0135915060ff82168214610819575f80fd5b81965061082860608b0161073d565b955061083660808b0161073d565b945060a08a0135935060c08a0135915080821115610852575f80fd5b5061085f8a828b01610756565b91505092959891949750929550565b5f805f805f8060c08789031215610883575f80fd5b86359550602087013567ffffffffffffffff808211156108a1575f80fd5b6108ad8a838b016106c0565b965060408901359150808211156108c2575f80fd5b6108ce8a838b01610756565b95506060890135945060808901359150808211156108ea575f80fd5b506108f789828a01610756565b92505060a087013590509295509295509295565b5f805f6060848603121561091d575f80fd5b83359250602084013567ffffffffffffffff81111561093a575f80fd5b610946868287016106c0565b925050604084013590509250925092565b5f805f806080858703121561096a575f80fd5b84359350602085013567ffffffffffffffff80821115610988575f80fd5b610994888389016106c0565b94506040870135915065ffffffffffff821682146109b0575f80fd5b909250606086013590808211156109c5575f80fd5b506109d287828801610756565b91505092959194509250565b5f815180845260208085019450602084015f5b83811015610a0d578151875295820195908201906001016109f1565b509495945050505050565b5f81518084525f5b81811015610a3c57602081850181015186830182015201610a20565b505f602082860101526020601f19601f83011685010191505092915050565b87815260e060208201525f610a7360e08301896109de565b60ff8816604084015264ffffffffff87811660608501528616608084015260a0830185905282810360c0840152610aaa8185610a18565b9a9950505050505050505050565b602081525f61065b6020830184610a18565b86815260c060208201525f610ae260c08301886109de565b8281036040840152610af48188610a18565b90508560608401528281036080840152610b0e8186610a18565b9150508260a0830152979650505050505050565b838152606060208201525f610b3a60608301856109de565b9050826040830152949350505050565b848152608060208201525f610b6260808301866109de565b65ffffffffffff8516604084015282810360608401526107328185610a1856fea164736f6c6343000818000a","sourceMap":"276:2725:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;931:187:26;;;;;;:::i;:::-;;:::i;:::-;;;516:14:162;;509:22;491:41;;479:2;464:18;931:187:26;;;;;;;1627:453:43;;;;;;:::i;:::-;;:::i;:::-;;345:378;;;;;;:::i;:::-;;:::i;727:376::-;;;;;;:::i;:::-;;:::i;2084:451::-;;;;;;:::i;:::-;;:::i;2780:219::-;;;;;;:::i;:::-;;:::i;1107:257::-;;;;;;:::i;:::-;;:::i;2539:237::-;;;;;;:::i;:::-;;:::i;1368:255::-;;;;;;:::i;:::-;;:::i;931:187:26:-;1007:4;1026:43;;;1041:28;1026:43;;:87;;-1:-1:-1;1073:40:26;;;1088:25;1073:40;1026:87;1019:94;931:187;-1:-1:-1;;931:187:26:o;1627:453:43:-;1888:187;1930:4;:30;;;1971:7;1980:8;1990:17;2009:16;2027:11;2040:14;2056:4;1906:163;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1906:163:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;1888:187;;;;-1:-1:-1;1888:187:43;:::i;:::-;;;;;;;;1627:453;;;;;;;:::o;345:378::-;581:137;614:4;:22;;;639:7;648:8;658:10;670:14;686:11;699;599:113;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;599:113:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:137;;;;-1:-1:-1;581:137:43;:::i;:::-;;;;;;;;345:378;;;;;;:::o;727:376::-;962:136;995:4;:21;;;1019:7;1028:8;1038:10;1050:14;1066:11;1079;980:112;;;;;;;;;;;;;:::i;2084:451::-;2344:186;2386:4;:29;;;2426:7;2435:8;2445:17;2464:16;2482:11;2495:14;2511:4;2362:162;;;;;;;;;;;;;;:::i;2780:219::-;2908:86;2934:4;:24;;;2961:7;2970:8;2980:11;2919:74;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2919:74:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:86;;;;-1:-1:-1;2908:86:43;:::i;:::-;;;;;;;;2780:219;;;:::o;1107:257::-;1268:91;1294:4;:29;;;1326:7;1335:8;1345:5;1352:4;1279:79;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1279:79:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;1268:91;;;;-1:-1:-1;1268:91:43;:::i;:::-;;;;;;;;1107:257;;;;:::o;2539:237::-;2684:87;2710:4;:25;;;2738:7;2747:8;2757:11;2695:75;;;;;;;;;;:::i;1368:255::-;1528:90;1554:4;:28;;;1585:7;1594:8;1604:5;1611:4;1539:78;;;;;;;;;;;:::i;14:332:162:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:162:o;543:184::-;595:77;592:1;585:88;692:4;689:1;682:15;716:4;713:1;706:15;732:334;803:2;797:9;859:2;849:13;;-1:-1:-1;;845:86:162;833:99;;962:18;947:34;;983:22;;;944:62;941:88;;;1009:18;;:::i;:::-;1045:2;1038:22;732:334;;-1:-1:-1;732:334:162:o;1071:712::-;1125:5;1178:3;1171:4;1163:6;1159:17;1155:27;1145:55;;1196:1;1193;1186:12;1145:55;1232:6;1219:20;1258:4;1281:18;1277:2;1274:26;1271:52;;;1303:18;;:::i;:::-;1349:2;1346:1;1342:10;1372:28;1396:2;1392;1388:11;1372:28;:::i;:::-;1434:15;;;1504;;;1500:24;;;1465:12;;;;1536:15;;;1533:35;;;1564:1;1561;1554:12;1533:35;1600:2;1592:6;1588:15;1577:26;;1612:142;1628:6;1623:3;1620:15;1612:142;;;1694:17;;1682:30;;1645:12;;;;1732;;;;1612:142;;;1772:5;1071:712;-1:-1:-1;;;;;;;1071:712:162:o;1788:165::-;1855:20;;1915:12;1904:24;;1894:35;;1884:63;;1943:1;1940;1933:12;1884:63;1788:165;;;:::o;1958:589::-;2000:5;2053:3;2046:4;2038:6;2034:17;2030:27;2020:55;;2071:1;2068;2061:12;2020:55;2107:6;2094:20;2133:18;2129:2;2126:26;2123:52;;;2155:18;;:::i;:::-;2199:114;2307:4;-1:-1:-1;;2231:4:162;2227:2;2223:13;2219:86;2215:97;2199:114;:::i;:::-;2338:2;2329:7;2322:19;2384:3;2377:4;2372:2;2364:6;2360:15;2356:26;2353:35;2350:55;;;2401:1;2398;2391:12;2350:55;2466:2;2459:4;2451:6;2447:17;2440:4;2431:7;2427:18;2414:55;2514:1;2489:16;;;2507:4;2485:27;2478:38;;;;2493:7;1958:589;-1:-1:-1;;;1958:589:162:o;2552:1074::-;2761:6;2769;2777;2785;2793;2801;2809;2862:3;2850:9;2841:7;2837:23;2833:33;2830:53;;;2879:1;2876;2869:12;2830:53;2915:9;2902:23;2892:33;;2976:2;2965:9;2961:18;2948:32;2999:18;3040:2;3032:6;3029:14;3026:34;;;3056:1;3053;3046:12;3026:34;3079:61;3132:7;3123:6;3112:9;3108:22;3079:61;:::i;:::-;3069:71;;3190:2;3179:9;3175:18;3162:32;3149:45;;3234:4;3227:5;3223:16;3216:5;3213:27;3203:55;;3254:1;3251;3244:12;3203:55;3277:5;3267:15;;3301:37;3334:2;3323:9;3319:18;3301:37;:::i;:::-;3291:47;;3357:38;3390:3;3379:9;3375:19;3357:38;:::i;:::-;3347:48;;3442:3;3431:9;3427:19;3414:33;3404:43;;3500:3;3489:9;3485:19;3472:33;3456:49;;3530:2;3520:8;3517:16;3514:36;;;3546:1;3543;3536:12;3514:36;;3569:51;3612:7;3601:8;3590:9;3586:24;3569:51;:::i;:::-;3559:61;;;2552:1074;;;;;;;;;;:::o;3631:1070::-;3876:6;3884;3892;3900;3908;3916;3969:3;3957:9;3948:7;3944:23;3940:33;3937:53;;;3986:1;3983;3976:12;3937:53;4022:9;4009:23;3999:33;;4083:2;4072:9;4068:18;4055:32;4106:18;4147:2;4139:6;4136:14;4133:34;;;4163:1;4160;4153:12;4133:34;4186:61;4239:7;4230:6;4219:9;4215:22;4186:61;:::i;:::-;4176:71;;4300:2;4289:9;4285:18;4272:32;4256:48;;4329:2;4319:8;4316:16;4313:36;;;4345:1;4342;4335:12;4313:36;4368:51;4411:7;4400:8;4389:9;4385:24;4368:51;:::i;:::-;4358:61;;4466:2;4455:9;4451:18;4438:32;4428:42;;4523:3;4512:9;4508:19;4495:33;4479:49;;4553:2;4543:8;4540:16;4537:36;;;4569:1;4566;4559:12;4537:36;;4592:51;4635:7;4624:8;4613:9;4609:24;4592:51;:::i;:::-;4582:61;;;4690:3;4679:9;4675:19;4662:33;4652:43;;3631:1070;;;;;;;;:::o;4706:547::-;4871:6;4879;4887;4940:2;4928:9;4919:7;4915:23;4911:32;4908:52;;;4956:1;4953;4946:12;4908:52;4992:9;4979:23;4969:33;;5053:2;5042:9;5038:18;5025:32;5080:18;5072:6;5069:30;5066:50;;;5112:1;5109;5102:12;5066:50;5135:61;5188:7;5179:6;5168:9;5164:22;5135:61;:::i;:::-;5125:71;;;5243:2;5232:9;5228:18;5215:32;5205:42;;4706:547;;;;;:::o;5258:835::-;5408:6;5416;5424;5432;5485:3;5473:9;5464:7;5460:23;5456:33;5453:53;;;5502:1;5499;5492:12;5453:53;5538:9;5525:23;5515:33;;5599:2;5588:9;5584:18;5571:32;5622:18;5663:2;5655:6;5652:14;5649:34;;;5679:1;5676;5669:12;5649:34;5702:61;5755:7;5746:6;5735:9;5731:22;5702:61;:::i;:::-;5692:71;;5813:2;5802:9;5798:18;5785:32;5772:45;;5857:14;5850:5;5846:26;5839:5;5836:37;5826:65;;5887:1;5884;5877:12;5826:65;5910:5;;-1:-1:-1;5968:2:162;5953:18;;5940:32;;5984:16;;;5981:36;;;6013:1;6010;6003:12;5981:36;;6036:51;6079:7;6068:8;6057:9;6053:24;6036:51;:::i;:::-;6026:61;;;5258:835;;;;;;;:::o;6098:439::-;6151:3;6189:5;6183:12;6216:6;6211:3;6204:19;6242:4;6271;6266:3;6262:14;6255:21;;6310:4;6303:5;6299:16;6333:1;6343:169;6357:6;6354:1;6351:13;6343:169;;;6418:13;;6406:26;;6452:12;;;;6487:15;;;;6379:1;6372:9;6343:169;;;-1:-1:-1;6528:3:162;;6098:439;-1:-1:-1;;;;;6098:439:162:o;6542:481::-;6583:3;6621:5;6615:12;6648:6;6643:3;6636:19;6673:1;6683:162;6697:6;6694:1;6691:13;6683:162;;;6759:4;6815:13;;;6811:22;;6805:29;6787:11;;;6783:20;;6776:59;6712:12;6683:162;;;6687:3;6890:1;6883:4;6874:6;6869:3;6865:16;6861:27;6854:38;7012:4;-1:-1:-1;;6937:2:162;6929:6;6925:15;6921:88;6916:3;6912:98;6908:109;6901:116;;;6542:481;;;;:::o;7028:899::-;7451:6;7440:9;7433:25;7494:3;7489:2;7478:9;7474:18;7467:31;7414:4;7521:57;7573:3;7562:9;7558:19;7550:6;7521:57;:::i;:::-;7626:4;7614:17;;7609:2;7594:18;;7587:45;7651:12;7699:15;;;7694:2;7679:18;;7672:43;7752:15;;7746:3;7731:19;;7724:44;7799:3;7784:19;;7777:35;;;7849:22;;;7843:3;7828:19;;7821:51;7889:32;7853:6;7906;7889:32;:::i;:::-;7881:40;7028:899;-1:-1:-1;;;;;;;;;;7028:899:162:o;7932:217::-;8079:2;8068:9;8061:21;8042:4;8099:44;8139:2;8128:9;8124:18;8116:6;8099:44;:::i;8154:896::-;8607:6;8596:9;8589:25;8650:3;8645:2;8634:9;8630:18;8623:31;8570:4;8677:57;8729:3;8718:9;8714:19;8706:6;8677:57;:::i;:::-;8782:9;8774:6;8770:22;8765:2;8754:9;8750:18;8743:50;8816:32;8841:6;8833;8816:32;:::i;:::-;8802:46;;8884:6;8879:2;8868:9;8864:18;8857:34;8940:9;8932:6;8928:22;8922:3;8911:9;8907:19;8900:51;8968:32;8993:6;8985;8968:32;:::i;:::-;8960:40;;;9037:6;9031:3;9020:9;9016:19;9009:35;8154:896;;;;;;;;;:::o;9055:466::-;9353:6;9342:9;9335:25;9396:2;9391;9380:9;9376:18;9369:30;9316:4;9416:56;9468:2;9457:9;9453:18;9445:6;9416:56;:::i;:::-;9408:64;;9508:6;9503:2;9492:9;9488:18;9481:34;9055:466;;;;;;:::o;9526:615::-;9836:6;9825:9;9818:25;9879:3;9874:2;9863:9;9859:18;9852:31;9799:4;9906:57;9958:3;9947:9;9943:19;9935:6;9906:57;:::i;:::-;10011:14;10003:6;9999:27;9994:2;9983:9;9979:18;9972:55;10075:9;10067:6;10063:22;10058:2;10047:9;10043:18;10036:50;10103:32;10128:6;10120;10103:32;:::i","linkReferences":{}},"methodIdentifiers":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":"83b5c95b","onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"5b28cdaf","onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"63584533","onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"a8ba8721","onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":"9faeaf45","onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":"57066c9c","onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":"55eb5a28","onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":"964f667d","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"StoreHook_NotImplemented\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"HookCalled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onAfterSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onAfterSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onBeforeDeleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"onBeforeSetRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onBeforeSpliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record was set.\"}},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is to be deleted.\"}},\"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"details\":\"This function should be overridden to provide custom logic.\",\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"fieldLayout\":\"The layout of the field, see FieldLayout.sol.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is to be set.\"}},\"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.\",\"params\":{\"data\":\"The data to be inserted into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the dynamic data of the record.\",\"dynamicFieldIndex\":\"The index of the dynamic field.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"startWithinField\":\"The start byte position within the field for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to be written to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start byte position for splicing.\",\"tableId\":\"The ID of the table where the data is to be spliced.\"}},\"supportsInterface(bytes4)\":{\"details\":\"This function is a part of the ERC-165 standard.\",\"params\":{\"interfaceId\":\"The ID of the interface to check.\"},\"returns\":{\"_0\":\"true if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"StoreHook_NotImplemented()\":[{\"notice\":\"Error emitted when a function is not implemented.\"}]},\"kind\":\"user\",\"methods\":{\"onAfterDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Hook that runs after deleting a record.\"},\"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Hook that runs after setting a record.\"},\"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Hook that runs after splicing dynamic (variable length) data.\"},\"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs after splicing static (fixed length) data.\"},\"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Hook that runs before deleting a record.\"},\"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)\":{\"notice\":\"Hook that runs before setting a record.\"},\"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)\":{\"notice\":\"Hook that runs before splicing dynamic (variable length) data.\"},\"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Hook that runs before splicing static (fixed length) data.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the interface is supported.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store/test/EchoSubscriber.sol\":\"EchoSubscriber\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b\",\"dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7\"]},\"node_modules/@latticexyz/store/src/StoreHook.sol\":{\"keccak256\":\"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d\",\"dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/test/EchoSubscriber.sol\":{\"keccak256\":\"0x81815bcfe30f3671eb7589f83621866e31aad7385b95ef142a70fa2ef1de0fe8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5dc056be61192d38dee67585d3468c69bb72b76d764a844245e98a1c3a642d8\",\"dweb:/ipfs/QmQsJhfbLD8sEeR3X2JF4NqGPsMtmQr32pKR21Tihr67pT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"StoreHook_NotImplemented"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"HookCalled","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterSpliceStaticData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeDeleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSetRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeSpliceStaticData"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","staticData":"The static data of the record.","tableId":"The ID of the table where the record was set."}},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.","params":{"data":"The data to be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","tableId":"The ID of the table where the record is to be deleted."}},"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"details":"This function should be overridden to provide custom logic.","params":{"dynamicData":"The dynamic data of the record.","encodedLengths":"The encoded lengths of the dynamic data of the record.","fieldLayout":"The layout of the field, see FieldLayout.sol.","keyTuple":"An array representing the composite key for the record.","staticData":"The static data of the record.","tableId":"The ID of the table where the record is to be set."}},"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in dynamic data always reach the end of the dynamic data to avoid shifting data after the inserted or deleted data.","params":{"data":"The data to be inserted into the dynamic data of the record at the start byte.","deleteCount":"The number of bytes to delete in the dynamic data of the record.","dynamicFieldIndex":"The index of the dynamic field.","encodedLengths":"The encoded lengths of the dynamic data of the record.","keyTuple":"An array representing the composite key for the record.","startWithinField":"The start byte position within the field for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"details":"This function should be overridden to provide custom logic. Splice operations in static data always overwrite data starting at the start position, so the total length of the data remains the same and no data is shifted.","params":{"data":"The data to be written to the static data of the record at the start byte.","keyTuple":"An array representing the composite key for the record.","start":"The start byte position for splicing.","tableId":"The ID of the table where the data is to be spliced."}},"supportsInterface(bytes4)":{"details":"This function is a part of the ERC-165 standard.","params":{"interfaceId":"The ID of the interface to check."},"returns":{"_0":"true if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"onAfterDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Hook that runs after deleting a record."},"onAfterSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Hook that runs after setting a record."},"onAfterSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Hook that runs after splicing dynamic (variable length) data."},"onAfterSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs after splicing static (fixed length) data."},"onBeforeDeleteRecord(bytes32,bytes32[],bytes32)":{"notice":"Hook that runs before deleting a record."},"onBeforeSetRecord(bytes32,bytes32[],bytes,bytes32,bytes,bytes32)":{"notice":"Hook that runs before setting a record."},"onBeforeSpliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes32,bytes)":{"notice":"Hook that runs before splicing dynamic (variable length) data."},"onBeforeSpliceStaticData(bytes32,bytes32[],uint48,bytes)":{"notice":"Hook that runs before splicing static (fixed length) data."},"supportsInterface(bytes4)":{"notice":"Check if the interface is supported."}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"node_modules/@latticexyz/store/test/EchoSubscriber.sol":"EchoSubscriber"},"evmVersion":"cancun","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5","urls":["bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b","dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreHook.sol":{"keccak256":"0x5123aae46b3f37ea6d7d567fd82658ea7f58d06a6ebd76aaf358582459f13173","urls":["bzz-raw://7223f7ca27353b8d86bd75441df8221383e6966caa7c25f9a802e7623bb5275d","dweb:/ipfs/QmaGmQK5JK2jS2sodKVxWuKiRNrtN8ErbdqE53PDatEDym"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/test/EchoSubscriber.sol":{"keccak256":"0x81815bcfe30f3671eb7589f83621866e31aad7385b95ef142a70fa2ef1de0fe8","urls":["bzz-raw://a5dc056be61192d38dee67585d3468c69bb72b76d764a844245e98a1c3a642d8","dweb:/ipfs/QmQsJhfbLD8sEeR3X2JF4NqGPsMtmQr32pKR21Tihr67pT"],"license":"MIT"}},"version":1},"id":43}