@decaf-ts/for-fabric 0.12.7 → 0.12.10

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 (560) hide show
  1. package/README.md +177 -146
  2. package/dist/for-fabric.cjs +3804 -2
  3. package/dist/for-fabric.js +3908 -2
  4. package/lib/cjs/bin/cli.cjs +2 -2
  5. package/lib/cjs/cli-module.cjs +215 -6
  6. package/lib/cjs/cli-utils.cjs +2 -2
  7. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  8. package/lib/cjs/client/FabricClientDispatch.cjs +3 -3
  9. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  10. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  11. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  12. package/lib/cjs/client/collections/generation.cjs +2 -2
  13. package/lib/cjs/client/collections/index.cjs +2 -2
  14. package/lib/cjs/client/constants.cjs +2 -2
  15. package/lib/cjs/client/crypto.cjs +2 -2
  16. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  17. package/lib/cjs/client/erc20/index.cjs +2 -2
  18. package/lib/cjs/client/fabric-fs.cjs +2 -2
  19. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  20. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  21. package/lib/cjs/client/ids/index.cjs +2 -2
  22. package/lib/cjs/client/index.cjs +2 -2
  23. package/lib/cjs/client/indexes/generation.cjs +9 -4
  24. package/lib/cjs/client/indexes/index.cjs +2 -2
  25. package/lib/cjs/client/logging.cjs +2 -2
  26. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  27. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  28. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  29. package/lib/cjs/client/services/constants.cjs +2 -2
  30. package/lib/cjs/client/services/index.cjs +2 -2
  31. package/lib/cjs/client/types.cjs +2 -2
  32. package/lib/cjs/client/utils.cjs +2 -2
  33. package/lib/cjs/contract/Address.cjs +2 -2
  34. package/lib/cjs/contract/AddressContract.cjs +2 -2
  35. package/lib/cjs/contract/AuditContract.cjs +2 -2
  36. package/lib/cjs/contract/BatchContract.cjs +2 -2
  37. package/lib/cjs/contract/MarketContract.cjs +2 -2
  38. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  39. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  40. package/lib/cjs/contract/OtherLeafletContract.cjs +72 -0
  41. package/lib/cjs/contract/OtherLeafletFileContract.cjs +76 -0
  42. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  43. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  44. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  45. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  46. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  47. package/lib/cjs/contract/Product.cjs +2 -2
  48. package/lib/cjs/contract/ProductContract.cjs +2 -2
  49. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  50. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  51. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  52. package/lib/cjs/contract/User.cjs +2 -2
  53. package/lib/cjs/contract/UserContract.cjs +2 -2
  54. package/lib/cjs/contract/index.cjs +19 -20
  55. package/lib/cjs/contract/logging-context.cjs +2 -2
  56. package/lib/cjs/contract/models/Audit.cjs +2 -2
  57. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  58. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  59. package/lib/cjs/contract/models/Batch.cjs +2 -2
  60. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  61. package/lib/cjs/contract/models/History.cjs +2 -2
  62. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  63. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  64. package/lib/cjs/contract/models/Market.cjs +2 -2
  65. package/lib/cjs/contract/models/OtherAudit.cjs +3 -3
  66. package/lib/cjs/contract/models/OtherBatchShared.cjs +137 -28
  67. package/lib/cjs/contract/models/OtherLeaflet.cjs +3 -3
  68. package/lib/cjs/contract/models/OtherLeafletFile.cjs +3 -3
  69. package/lib/cjs/contract/models/OtherMarket.cjs +3 -3
  70. package/lib/cjs/contract/models/OtherProduct.cjs +4 -4
  71. package/lib/cjs/contract/models/OtherProductImage.cjs +3 -3
  72. package/lib/cjs/contract/models/OtherProductShared.cjs +3 -3
  73. package/lib/cjs/contract/models/OtherProductStrength.cjs +3 -5
  74. package/lib/cjs/contract/models/Product.cjs +2 -2
  75. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  76. package/lib/cjs/contract/models/SegregatedDocument.cjs +8 -6
  77. package/lib/cjs/contract/models/constants.cjs +2 -2
  78. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  79. package/lib/cjs/contract/models/decorators.cjs +2 -2
  80. package/lib/cjs/contract/models/gtin.cjs +2 -2
  81. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  82. package/lib/cjs/contract/trackedModels/History.cjs +81 -0
  83. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +124 -0
  84. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +121 -0
  85. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +71 -0
  86. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +90 -0
  87. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +83 -0
  88. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +65 -0
  89. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +105 -0
  90. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +91 -0
  91. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  92. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  93. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  94. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  95. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  96. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  97. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  98. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  99. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  100. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  101. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  102. package/lib/cjs/contracts/auth/index.cjs +2 -2
  103. package/lib/cjs/contracts/bootstrap.cjs +2 -2
  104. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  105. package/lib/cjs/contracts/crud/index.cjs +2 -2
  106. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  107. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  108. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  109. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  110. package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
  111. package/lib/cjs/contracts/index.cjs +2 -2
  112. package/lib/cjs/contracts/logging.cjs +2 -2
  113. package/lib/cjs/contracts/overrides.cjs +2 -2
  114. package/lib/cjs/contracts/types.cjs +2 -2
  115. package/lib/cjs/contracts/uuid.cjs +2 -2
  116. package/lib/cjs/index.cjs +2 -2
  117. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  118. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  119. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  120. package/lib/cjs/shared/constants.cjs +2 -2
  121. package/lib/cjs/shared/decorators.cjs +2 -2
  122. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  123. package/lib/cjs/shared/erc20/index.cjs +2 -2
  124. package/lib/cjs/shared/errors.cjs +2 -2
  125. package/lib/cjs/shared/events.cjs +2 -2
  126. package/lib/cjs/shared/fabric-types.cjs +2 -2
  127. package/lib/cjs/shared/index.cjs +2 -2
  128. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  129. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  130. package/lib/cjs/shared/math.cjs +2 -2
  131. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  132. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  133. package/lib/cjs/shared/model/Identity.cjs +2 -2
  134. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  135. package/lib/cjs/shared/model/index.cjs +2 -2
  136. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  137. package/lib/cjs/shared/overrides/index.cjs +2 -2
  138. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  139. package/lib/cjs/shared/types.cjs +2 -2
  140. package/lib/cjs/version.cjs +18 -4
  141. package/lib/esm/bin/cli.js +1 -1
  142. package/lib/esm/cli-module.js +214 -5
  143. package/lib/esm/cli-utils.js +1 -1
  144. package/lib/esm/client/FabricClientAdapter.js +1 -1
  145. package/lib/esm/client/FabricClientDispatch.js +2 -2
  146. package/lib/esm/client/FabricClientPaginator.js +1 -1
  147. package/lib/esm/client/FabricClientRepository.js +1 -1
  148. package/lib/esm/client/FabricClientStatement.js +1 -1
  149. package/lib/esm/client/collections/generation.js +1 -1
  150. package/lib/esm/client/collections/index.js +1 -1
  151. package/lib/esm/client/constants.js +1 -1
  152. package/lib/esm/client/crypto.js +1 -1
  153. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  154. package/lib/esm/client/erc20/index.js +1 -1
  155. package/lib/esm/client/fabric-fs.js +1 -1
  156. package/lib/esm/client/fabric-hsm.js +1 -1
  157. package/lib/esm/client/ids/id-extraction.js +1 -1
  158. package/lib/esm/client/ids/index.js +1 -1
  159. package/lib/esm/client/index.js +1 -1
  160. package/lib/esm/client/indexes/generation.js +8 -3
  161. package/lib/esm/client/indexes/index.js +1 -1
  162. package/lib/esm/client/logging.js +1 -1
  163. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  164. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  165. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  166. package/lib/esm/client/services/constants.js +1 -1
  167. package/lib/esm/client/services/index.js +1 -1
  168. package/lib/esm/client/types.js +1 -1
  169. package/lib/esm/client/utils.js +1 -1
  170. package/lib/esm/contract/Address.js +1 -1
  171. package/lib/esm/contract/AddressContract.js +1 -1
  172. package/lib/esm/contract/AuditContract.js +1 -1
  173. package/lib/esm/contract/BatchContract.js +1 -1
  174. package/lib/esm/contract/MarketContract.js +1 -1
  175. package/lib/esm/contract/OtherAuditContract.js +1 -1
  176. package/lib/esm/contract/OtherBatchContract.js +1 -1
  177. package/lib/esm/contract/OtherLeafletContract.js +63 -0
  178. package/lib/esm/contract/OtherLeafletFileContract.js +67 -0
  179. package/lib/esm/contract/OtherMarketContract.js +1 -1
  180. package/lib/esm/contract/OtherProductContract.js +1 -1
  181. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  182. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  183. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  184. package/lib/esm/contract/Product.js +1 -1
  185. package/lib/esm/contract/ProductContract.js +1 -1
  186. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  187. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  188. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  189. package/lib/esm/contract/User.js +1 -1
  190. package/lib/esm/contract/UserContract.js +1 -1
  191. package/lib/esm/contract/index.js +18 -19
  192. package/lib/esm/contract/logging-context.js +1 -1
  193. package/lib/esm/contract/models/Audit.js +1 -1
  194. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  195. package/lib/esm/contract/models/BaseModel.js +1 -1
  196. package/lib/esm/contract/models/Batch.js +1 -1
  197. package/lib/esm/contract/models/GtinOwner.js +1 -1
  198. package/lib/esm/contract/models/History.js +1 -1
  199. package/lib/esm/contract/models/Leaflet.js +1 -1
  200. package/lib/esm/contract/models/LeafletFile.js +1 -1
  201. package/lib/esm/contract/models/Market.js +1 -1
  202. package/lib/esm/contract/models/OtherAudit.js +2 -2
  203. package/lib/esm/contract/models/OtherBatchShared.js +139 -31
  204. package/lib/esm/contract/models/OtherLeaflet.js +2 -2
  205. package/lib/esm/contract/models/OtherLeafletFile.js +2 -2
  206. package/lib/esm/contract/models/OtherMarket.js +2 -2
  207. package/lib/esm/contract/models/OtherProduct.js +4 -4
  208. package/lib/esm/contract/models/OtherProductImage.js +2 -2
  209. package/lib/esm/contract/models/OtherProductShared.js +2 -2
  210. package/lib/esm/contract/models/OtherProductStrength.js +2 -4
  211. package/lib/esm/contract/models/Product.js +1 -1
  212. package/lib/esm/contract/models/ProductStrength.js +1 -1
  213. package/lib/esm/contract/models/SegregatedDocument.js +8 -6
  214. package/lib/esm/contract/models/constants.js +1 -1
  215. package/lib/esm/contract/models/decorators-private.js +1 -1
  216. package/lib/esm/contract/models/decorators.js +1 -1
  217. package/lib/esm/contract/models/gtin.js +1 -1
  218. package/lib/esm/contract/models/history-dec.js +1 -1
  219. package/lib/esm/contract/trackedModels/History.js +72 -0
  220. package/lib/esm/contract/trackedModels/OtherAudit.js +115 -0
  221. package/lib/esm/contract/trackedModels/OtherLeaflet.js +112 -0
  222. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +62 -0
  223. package/lib/esm/contract/trackedModels/OtherMarket.js +81 -0
  224. package/lib/esm/contract/trackedModels/OtherProduct.js +74 -0
  225. package/lib/esm/contract/trackedModels/OtherProductImage.js +56 -0
  226. package/lib/esm/contract/trackedModels/OtherProductShared.js +96 -0
  227. package/lib/esm/contract/trackedModels/OtherProductStrength.js +82 -0
  228. package/lib/esm/contracts/ContractAdapter.js +1 -1
  229. package/lib/esm/contracts/ContractContext.js +1 -1
  230. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  231. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  232. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  233. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  234. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  235. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  236. package/lib/esm/contracts/MigrationContract.js +1 -1
  237. package/lib/esm/contracts/PrivateSequence.js +1 -1
  238. package/lib/esm/contracts/auth/decorators.js +1 -1
  239. package/lib/esm/contracts/auth/index.js +1 -1
  240. package/lib/esm/contracts/bootstrap.js +1 -1
  241. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  242. package/lib/esm/contracts/crud/index.js +1 -1
  243. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  244. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  245. package/lib/esm/contracts/erc20/index.js +1 -1
  246. package/lib/esm/contracts/erc20/models.js +1 -1
  247. package/lib/esm/contracts/fabric-overrides.js +3 -3
  248. package/lib/esm/contracts/index.js +1 -1
  249. package/lib/esm/contracts/logging.js +1 -1
  250. package/lib/esm/contracts/overrides.js +1 -1
  251. package/lib/esm/contracts/types.js +1 -1
  252. package/lib/esm/contracts/uuid.js +1 -1
  253. package/lib/esm/index.js +1 -1
  254. package/lib/esm/shared/ClientSerializer.js +1 -1
  255. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  256. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  257. package/lib/esm/shared/constants.js +1 -1
  258. package/lib/esm/shared/decorators.js +1 -1
  259. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  260. package/lib/esm/shared/erc20/index.js +1 -1
  261. package/lib/esm/shared/errors.js +1 -1
  262. package/lib/esm/shared/events.js +1 -1
  263. package/lib/esm/shared/fabric-types.js +1 -1
  264. package/lib/esm/shared/index.js +1 -1
  265. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  266. package/lib/esm/shared/interfaces/index.js +1 -1
  267. package/lib/esm/shared/math.js +1 -1
  268. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  269. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  270. package/lib/esm/shared/model/Identity.js +1 -1
  271. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  272. package/lib/esm/shared/model/index.js +1 -1
  273. package/lib/esm/shared/overrides/Model.js +1 -1
  274. package/lib/esm/shared/overrides/index.js +1 -1
  275. package/lib/esm/shared/overrides/overrides.js +1 -1
  276. package/lib/esm/shared/types.js +1 -1
  277. package/lib/esm/version.js +16 -2
  278. package/lib/types/contract/OtherLeafletContract.d.cts +18 -0
  279. package/lib/types/contract/OtherLeafletContract.d.mts +18 -0
  280. package/lib/types/contract/OtherLeafletFileContract.d.cts +17 -0
  281. package/lib/types/contract/OtherLeafletFileContract.d.mts +17 -0
  282. package/lib/types/contract/models/OtherBatchShared.d.cts +43 -6
  283. package/lib/types/contract/models/OtherBatchShared.d.mts +43 -6
  284. package/lib/types/contract/trackedModels/History.d.cts +9 -0
  285. package/lib/types/contract/trackedModels/History.d.mts +9 -0
  286. package/lib/types/contract/trackedModels/OtherAudit.d.cts +15 -0
  287. package/lib/types/contract/trackedModels/OtherAudit.d.mts +15 -0
  288. package/lib/types/contract/trackedModels/OtherLeaflet.d.cts +16 -0
  289. package/lib/types/contract/trackedModels/OtherLeaflet.d.mts +16 -0
  290. package/lib/types/contract/trackedModels/OtherLeafletFile.d.cts +10 -0
  291. package/lib/types/contract/trackedModels/OtherLeafletFile.d.mts +10 -0
  292. package/lib/types/contract/trackedModels/OtherMarket.d.cts +13 -0
  293. package/lib/types/contract/trackedModels/OtherMarket.d.mts +13 -0
  294. package/lib/types/contract/trackedModels/OtherProduct.d.cts +12 -0
  295. package/lib/types/contract/trackedModels/OtherProduct.d.mts +12 -0
  296. package/lib/types/contract/trackedModels/OtherProductImage.d.cts +9 -0
  297. package/lib/types/contract/trackedModels/OtherProductImage.d.mts +9 -0
  298. package/lib/types/contract/trackedModels/OtherProductShared.d.cts +18 -0
  299. package/lib/types/contract/trackedModels/OtherProductShared.d.mts +18 -0
  300. package/lib/types/contract/trackedModels/OtherProductStrength.d.cts +12 -0
  301. package/lib/types/contract/trackedModels/OtherProductStrength.d.mts +12 -0
  302. package/lib/types/contracts/FabricContractStatement.d.cts +2 -2
  303. package/lib/types/contracts/FabricContractStatement.d.mts +2 -2
  304. package/lib/types/version.d.cts +15 -1
  305. package/lib/types/version.d.mts +15 -1
  306. package/package.json +19 -6
  307. package/dist/for-fabric.cjs.map +0 -1
  308. package/dist/for-fabric.js.map +0 -1
  309. package/lib/cjs/bin/cli.cjs.map +0 -1
  310. package/lib/cjs/cli-module.cjs.map +0 -1
  311. package/lib/cjs/cli-utils.cjs.map +0 -1
  312. package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
  313. package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
  314. package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
  315. package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
  316. package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
  317. package/lib/cjs/client/collections/generation.cjs.map +0 -1
  318. package/lib/cjs/client/collections/index.cjs.map +0 -1
  319. package/lib/cjs/client/constants.cjs.map +0 -1
  320. package/lib/cjs/client/crypto.cjs.map +0 -1
  321. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
  322. package/lib/cjs/client/erc20/index.cjs.map +0 -1
  323. package/lib/cjs/client/fabric-fs.cjs.map +0 -1
  324. package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
  325. package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
  326. package/lib/cjs/client/ids/index.cjs.map +0 -1
  327. package/lib/cjs/client/index.cjs.map +0 -1
  328. package/lib/cjs/client/indexes/generation.cjs.map +0 -1
  329. package/lib/cjs/client/indexes/index.cjs.map +0 -1
  330. package/lib/cjs/client/logging.cjs.map +0 -1
  331. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
  332. package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
  333. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
  334. package/lib/cjs/client/services/constants.cjs.map +0 -1
  335. package/lib/cjs/client/services/index.cjs.map +0 -1
  336. package/lib/cjs/client/types.cjs.map +0 -1
  337. package/lib/cjs/client/utils.cjs.map +0 -1
  338. package/lib/cjs/contract/Address.cjs.map +0 -1
  339. package/lib/cjs/contract/AddressContract.cjs.map +0 -1
  340. package/lib/cjs/contract/AuditContract.cjs.map +0 -1
  341. package/lib/cjs/contract/BatchContract.cjs.map +0 -1
  342. package/lib/cjs/contract/MarketContract.cjs.map +0 -1
  343. package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
  344. package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
  345. package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
  346. package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
  347. package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
  348. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
  349. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
  350. package/lib/cjs/contract/Product.cjs.map +0 -1
  351. package/lib/cjs/contract/ProductContract.cjs.map +0 -1
  352. package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
  353. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
  354. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
  355. package/lib/cjs/contract/User.cjs.map +0 -1
  356. package/lib/cjs/contract/UserContract.cjs.map +0 -1
  357. package/lib/cjs/contract/index.cjs.map +0 -1
  358. package/lib/cjs/contract/logging-context.cjs.map +0 -1
  359. package/lib/cjs/contract/models/Audit.cjs.map +0 -1
  360. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
  361. package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
  362. package/lib/cjs/contract/models/Batch.cjs.map +0 -1
  363. package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
  364. package/lib/cjs/contract/models/History.cjs.map +0 -1
  365. package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
  366. package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
  367. package/lib/cjs/contract/models/Market.cjs.map +0 -1
  368. package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
  369. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
  370. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
  371. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
  372. package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
  373. package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
  374. package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
  375. package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
  376. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
  377. package/lib/cjs/contract/models/Product.cjs.map +0 -1
  378. package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
  379. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
  380. package/lib/cjs/contract/models/constants.cjs.map +0 -1
  381. package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
  382. package/lib/cjs/contract/models/decorators.cjs.map +0 -1
  383. package/lib/cjs/contract/models/gtin.cjs.map +0 -1
  384. package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
  385. package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
  386. package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
  387. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
  388. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
  389. package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
  390. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
  391. package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
  392. package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
  393. package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
  394. package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
  395. package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
  396. package/lib/cjs/contracts/auth/index.cjs.map +0 -1
  397. package/lib/cjs/contracts/bootstrap.cjs.map +0 -1
  398. package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
  399. package/lib/cjs/contracts/crud/index.cjs.map +0 -1
  400. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
  401. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
  402. package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
  403. package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
  404. package/lib/cjs/contracts/fabric-overrides.cjs.map +0 -1
  405. package/lib/cjs/contracts/index.cjs.map +0 -1
  406. package/lib/cjs/contracts/logging.cjs.map +0 -1
  407. package/lib/cjs/contracts/overrides.cjs.map +0 -1
  408. package/lib/cjs/contracts/types.cjs.map +0 -1
  409. package/lib/cjs/contracts/uuid.cjs.map +0 -1
  410. package/lib/cjs/index.cjs.map +0 -1
  411. package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
  412. package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
  413. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
  414. package/lib/cjs/shared/constants.cjs.map +0 -1
  415. package/lib/cjs/shared/decorators.cjs.map +0 -1
  416. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
  417. package/lib/cjs/shared/erc20/index.cjs.map +0 -1
  418. package/lib/cjs/shared/errors.cjs.map +0 -1
  419. package/lib/cjs/shared/events.cjs.map +0 -1
  420. package/lib/cjs/shared/fabric-types.cjs.map +0 -1
  421. package/lib/cjs/shared/index.cjs.map +0 -1
  422. package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
  423. package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
  424. package/lib/cjs/shared/math.cjs.map +0 -1
  425. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
  426. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
  427. package/lib/cjs/shared/model/Identity.cjs.map +0 -1
  428. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
  429. package/lib/cjs/shared/model/index.cjs.map +0 -1
  430. package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
  431. package/lib/cjs/shared/overrides/index.cjs.map +0 -1
  432. package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
  433. package/lib/cjs/shared/types.cjs.map +0 -1
  434. package/lib/cjs/version.cjs.map +0 -1
  435. package/lib/esm/bin/cli.js.map +0 -1
  436. package/lib/esm/cli-module.js.map +0 -1
  437. package/lib/esm/cli-utils.js.map +0 -1
  438. package/lib/esm/client/FabricClientAdapter.js.map +0 -1
  439. package/lib/esm/client/FabricClientDispatch.js.map +0 -1
  440. package/lib/esm/client/FabricClientPaginator.js.map +0 -1
  441. package/lib/esm/client/FabricClientRepository.js.map +0 -1
  442. package/lib/esm/client/FabricClientStatement.js.map +0 -1
  443. package/lib/esm/client/collections/generation.js.map +0 -1
  444. package/lib/esm/client/collections/index.js.map +0 -1
  445. package/lib/esm/client/constants.js.map +0 -1
  446. package/lib/esm/client/crypto.js.map +0 -1
  447. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  448. package/lib/esm/client/erc20/index.js.map +0 -1
  449. package/lib/esm/client/fabric-fs.js.map +0 -1
  450. package/lib/esm/client/fabric-hsm.js.map +0 -1
  451. package/lib/esm/client/ids/id-extraction.js.map +0 -1
  452. package/lib/esm/client/ids/index.js.map +0 -1
  453. package/lib/esm/client/index.js.map +0 -1
  454. package/lib/esm/client/indexes/generation.js.map +0 -1
  455. package/lib/esm/client/indexes/index.js.map +0 -1
  456. package/lib/esm/client/logging.js.map +0 -1
  457. package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
  458. package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
  459. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
  460. package/lib/esm/client/services/constants.js.map +0 -1
  461. package/lib/esm/client/services/index.js.map +0 -1
  462. package/lib/esm/client/types.js.map +0 -1
  463. package/lib/esm/client/utils.js.map +0 -1
  464. package/lib/esm/contract/Address.js.map +0 -1
  465. package/lib/esm/contract/AddressContract.js.map +0 -1
  466. package/lib/esm/contract/AuditContract.js.map +0 -1
  467. package/lib/esm/contract/BatchContract.js.map +0 -1
  468. package/lib/esm/contract/MarketContract.js.map +0 -1
  469. package/lib/esm/contract/OtherAuditContract.js.map +0 -1
  470. package/lib/esm/contract/OtherBatchContract.js.map +0 -1
  471. package/lib/esm/contract/OtherMarketContract.js.map +0 -1
  472. package/lib/esm/contract/OtherProductContract.js.map +0 -1
  473. package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
  474. package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
  475. package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
  476. package/lib/esm/contract/Product.js.map +0 -1
  477. package/lib/esm/contract/ProductContract.js.map +0 -1
  478. package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
  479. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
  480. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
  481. package/lib/esm/contract/User.js.map +0 -1
  482. package/lib/esm/contract/UserContract.js.map +0 -1
  483. package/lib/esm/contract/index.js.map +0 -1
  484. package/lib/esm/contract/logging-context.js.map +0 -1
  485. package/lib/esm/contract/models/Audit.js.map +0 -1
  486. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
  487. package/lib/esm/contract/models/BaseModel.js.map +0 -1
  488. package/lib/esm/contract/models/Batch.js.map +0 -1
  489. package/lib/esm/contract/models/GtinOwner.js.map +0 -1
  490. package/lib/esm/contract/models/History.js.map +0 -1
  491. package/lib/esm/contract/models/Leaflet.js.map +0 -1
  492. package/lib/esm/contract/models/LeafletFile.js.map +0 -1
  493. package/lib/esm/contract/models/Market.js.map +0 -1
  494. package/lib/esm/contract/models/OtherAudit.js.map +0 -1
  495. package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
  496. package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
  497. package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
  498. package/lib/esm/contract/models/OtherMarket.js.map +0 -1
  499. package/lib/esm/contract/models/OtherProduct.js.map +0 -1
  500. package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
  501. package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
  502. package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
  503. package/lib/esm/contract/models/Product.js.map +0 -1
  504. package/lib/esm/contract/models/ProductStrength.js.map +0 -1
  505. package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
  506. package/lib/esm/contract/models/constants.js.map +0 -1
  507. package/lib/esm/contract/models/decorators-private.js.map +0 -1
  508. package/lib/esm/contract/models/decorators.js.map +0 -1
  509. package/lib/esm/contract/models/gtin.js.map +0 -1
  510. package/lib/esm/contract/models/history-dec.js.map +0 -1
  511. package/lib/esm/contracts/ContractAdapter.js.map +0 -1
  512. package/lib/esm/contracts/ContractContext.js.map +0 -1
  513. package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
  514. package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
  515. package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
  516. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  517. package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
  518. package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
  519. package/lib/esm/contracts/MigrationContract.js.map +0 -1
  520. package/lib/esm/contracts/PrivateSequence.js.map +0 -1
  521. package/lib/esm/contracts/auth/decorators.js.map +0 -1
  522. package/lib/esm/contracts/auth/index.js.map +0 -1
  523. package/lib/esm/contracts/bootstrap.js.map +0 -1
  524. package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
  525. package/lib/esm/contracts/crud/index.js.map +0 -1
  526. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
  527. package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
  528. package/lib/esm/contracts/erc20/index.js.map +0 -1
  529. package/lib/esm/contracts/erc20/models.js.map +0 -1
  530. package/lib/esm/contracts/fabric-overrides.js.map +0 -1
  531. package/lib/esm/contracts/index.js.map +0 -1
  532. package/lib/esm/contracts/logging.js.map +0 -1
  533. package/lib/esm/contracts/overrides.js.map +0 -1
  534. package/lib/esm/contracts/types.js.map +0 -1
  535. package/lib/esm/contracts/uuid.js.map +0 -1
  536. package/lib/esm/index.js.map +0 -1
  537. package/lib/esm/shared/ClientSerializer.js.map +0 -1
  538. package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
  539. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
  540. package/lib/esm/shared/constants.js.map +0 -1
  541. package/lib/esm/shared/decorators.js.map +0 -1
  542. package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
  543. package/lib/esm/shared/erc20/index.js.map +0 -1
  544. package/lib/esm/shared/errors.js.map +0 -1
  545. package/lib/esm/shared/events.js.map +0 -1
  546. package/lib/esm/shared/fabric-types.js.map +0 -1
  547. package/lib/esm/shared/index.js.map +0 -1
  548. package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
  549. package/lib/esm/shared/interfaces/index.js.map +0 -1
  550. package/lib/esm/shared/math.js.map +0 -1
  551. package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
  552. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  553. package/lib/esm/shared/model/Identity.js.map +0 -1
  554. package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
  555. package/lib/esm/shared/model/index.js.map +0 -1
  556. package/lib/esm/shared/overrides/Model.js.map +0 -1
  557. package/lib/esm/shared/overrides/index.js.map +0 -1
  558. package/lib/esm/shared/overrides/overrides.js.map +0 -1
  559. package/lib/esm/shared/types.js.map +0 -1
  560. package/lib/esm/version.js.map +0 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtherProductStrength = void 0;
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
7
+ r = Reflect.decorate(decorators, target, key, desc);
8
+ else
9
+ for (var i = decorators.length - 1; i >= 0; i--)
10
+ if (d = decorators[i])
11
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ var __metadata = (this && this.__metadata) || function (k, v) {
15
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
16
+ return Reflect.metadata(k, v);
17
+ };
18
+ const decorator_validation_1 = require("@decaf-ts/decorator-validation");
19
+ const core_1 = require("@decaf-ts/core");
20
+ const decoration_1 = require("@decaf-ts/decoration");
21
+ const BaseIdentifiedModel_js_1 = require("./../models/BaseIdentifiedModel.cjs");
22
+ const index_js_1 = require("./../../shared/index.cjs");
23
+ const db_decorators_1 = require("@decaf-ts/db-decorators");
24
+ const gtin_js_1 = require("./../models/gtin.cjs");
25
+ function strengthSeed(m) {
26
+ try {
27
+ return `${m.productCode}${m.strength}${m.substance ? m.substance : ""}`;
28
+ }
29
+ catch (e) {
30
+ throw new db_decorators_1.InternalError(`Failed to generate deterministic uuid: ${e}`);
31
+ }
32
+ }
33
+ let OtherProductStrength = class OtherProductStrength extends BaseIdentifiedModel_js_1.BaseIdentifiedModel {
34
+ constructor(model) {
35
+ super(model);
36
+ }
37
+ };
38
+ exports.OtherProductStrength = OtherProductStrength;
39
+ __decorate([
40
+ (0, core_1.pk)(),
41
+ (0, index_js_1.mirror)("mirror-collection", "PharmaledgerassocMSP"),
42
+ (0, db_decorators_1.composed)(["productCode", "uuid"], ":"),
43
+ (0, decoration_1.description)("Unique identifier of the product strength."),
44
+ __metadata("design:type", String)
45
+ ], OtherProductStrength.prototype, "id", void 0);
46
+ __decorate([
47
+ (0, core_1.uuid)(strengthSeed),
48
+ (0, decorator_validation_1.required)(),
49
+ (0, decoration_1.description)("Unique identifier of the audit record."),
50
+ __metadata("design:type", String)
51
+ ], OtherProductStrength.prototype, "uuid", void 0);
52
+ __decorate([
53
+ (0, gtin_js_1.gtin)(),
54
+ (0, core_1.defaultQueryAttr)(),
55
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
56
+ (0, decoration_1.description)("Product code associated with this strength entry."),
57
+ __metadata("design:type", String)
58
+ ], OtherProductStrength.prototype, "productCode", void 0);
59
+ __decorate([
60
+ (0, core_1.column)(),
61
+ (0, decorator_validation_1.required)(),
62
+ (0, core_1.defaultQueryAttr)(),
63
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
64
+ (0, decoration_1.description)("Product concentration or dosage (e.g., 500mg, 10%)."),
65
+ __metadata("design:type", String)
66
+ ], OtherProductStrength.prototype, "strength", void 0);
67
+ __decorate([
68
+ (0, core_1.column)(),
69
+ (0, core_1.index)([core_1.OrderDirection.ASC, core_1.OrderDirection.DSC]),
70
+ (0, decoration_1.description)("Active substance related to this product strength."),
71
+ __metadata("design:type", String)
72
+ ], OtherProductStrength.prototype, "substance", void 0);
73
+ __decorate([
74
+ (0, core_1.column)(),
75
+ (0, decoration_1.description)("Legal entity name responsible for the product."),
76
+ __metadata("design:type", String)
77
+ ], OtherProductStrength.prototype, "legalEntityName", void 0);
78
+ __decorate([
79
+ (0, db_decorators_1.version)(),
80
+ __metadata("design:type", Number)
81
+ ], OtherProductStrength.prototype, "counter", void 0);
82
+ exports.OtherProductStrength = OtherProductStrength = __decorate([
83
+ (0, index_js_1.sharedData)((0, index_js_1.NamespaceCollection)("decaf-namespace")),
84
+ (0, decoration_1.uses)(index_js_1.FabricFlavour),
85
+ (0, core_1.table)("other_product_strength"),
86
+ (0, decorator_validation_1.model)(),
87
+ (0, decoration_1.description)("Represents the product’s strength and composition details."),
88
+ __metadata("design:paramtypes", [Object])
89
+ ], OtherProductStrength);
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJQcm9kdWN0U3RyZW5ndGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJhY3QvdHJhY2tlZE1vZGVscy9PdGhlclByb2R1Y3RTdHJlbmd0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFDTCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxjQUFjLEVBQ2QsRUFBRSxFQUNGLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQ0FBc0M7QUFFcEUsT0FBTyxFQUNMLGFBQWEsRUFDYixNQUFNLEVBQ04sbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxnQ0FBMkI7QUFDNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSw0QkFBdUI7QUFHdEMsU0FBUyxZQUFZLENBQUMsQ0FBdUI7SUFDM0MsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksYUFBYSxDQUFDLDBDQUEwQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7QUFDSCxDQUFDO0FBT00sSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBcUIsU0FBUSxtQkFBbUI7SUEwQzNELFlBQVksS0FBc0M7UUFDaEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztDQUNGLENBQUE7QUF4Q0M7SUFKQyxFQUFFLEVBQUU7SUFDSixNQUFNLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUM7SUFDbkQsUUFBUSxDQUFDLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUN0QyxXQUFXLENBQUMsNENBQTRDLENBQUM7O2dEQUM5QztBQUtaO0lBSEMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUNsQixRQUFRLEVBQUU7SUFDVixXQUFXLENBQUMsd0NBQXdDLENBQUM7O2tEQUN4QztBQVdkO0lBSkMsSUFBSSxFQUFFO0lBQ04sZ0JBQWdCLEVBQUU7SUFDbEIsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsV0FBVyxDQUFDLG1EQUFtRCxDQUFDOzt5REFDNUM7QUFPckI7SUFMQyxNQUFNLEVBQUU7SUFDUixRQUFRLEVBQUU7SUFDVixnQkFBZ0IsRUFBRTtJQUNsQixLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxXQUFXLENBQUMscURBQXFELENBQUM7O3NEQUNqRDtBQUtsQjtJQUhDLE1BQU0sRUFBRTtJQUNSLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsQ0FBQyxvREFBb0QsQ0FBQzs7dURBQy9DO0FBSW5CO0lBRkMsTUFBTSxFQUFFO0lBQ1IsV0FBVyxDQUFDLGdEQUFnRCxDQUFDOzs2REFDckM7QUFHekI7SUFEQyxPQUFPLEVBQUU7O3FEQUNPO0FBeENOLG9CQUFvQjtJQUxoQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25CLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztJQUMvQixLQUFLLEVBQUU7SUFDUCxXQUFXLENBQUMsNERBQTRELENBQUM7O0dBQzdELG9CQUFvQixDQTZDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgbW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgY29sdW1uLFxuICBkZWZhdWx0UXVlcnlBdHRyLFxuICBpbmRleCxcbiAgT3JkZXJEaXJlY3Rpb24sXG4gIHBrLFxuICB0YWJsZSxcbiAgdXVpZCxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiwgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgQmFzZUlkZW50aWZpZWRNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvQmFzZUlkZW50aWZpZWRNb2RlbFwiO1xuXG5pbXBvcnQge1xuICBGYWJyaWNGbGF2b3VyLFxuICBtaXJyb3IsXG4gIE5hbWVzcGFjZUNvbGxlY3Rpb24sXG4gIHNoYXJlZERhdGEsXG59IGZyb20gXCIuLi8uLi9zaGFyZWQvaW5kZXhcIjtcbmltcG9ydCB7IGNvbXBvc2VkLCBJbnRlcm5hbEVycm9yLCB2ZXJzaW9uIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBndGluIH0gZnJvbSBcIi4uL21vZGVscy9ndGluXCI7XG5pbXBvcnQgeyBoaXN0b3J5RGVjIH0gZnJvbSBcIi4uL21vZGVscy9oaXN0b3J5LWRlY1wiO1xuXG5mdW5jdGlvbiBzdHJlbmd0aFNlZWQobTogT3RoZXJQcm9kdWN0U3RyZW5ndGgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYCR7bS5wcm9kdWN0Q29kZX0ke20uc3RyZW5ndGh9JHttLnN1YnN0YW5jZSA/IG0uc3Vic3RhbmNlIDogXCJcIn1gO1xuICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBkZXRlcm1pbmlzdGljIHV1aWQ6ICR7ZX1gKTtcbiAgfVxufVxuXG5Ac2hhcmVkRGF0YShOYW1lc3BhY2VDb2xsZWN0aW9uKFwiZGVjYWYtbmFtZXNwYWNlXCIpKVxuQHVzZXMoRmFicmljRmxhdm91cilcbkB0YWJsZShcIm90aGVyX3Byb2R1Y3Rfc3RyZW5ndGhcIilcbkBtb2RlbCgpXG5AZGVzY3JpcHRpb24oXCJSZXByZXNlbnRzIHRoZSBwcm9kdWN04oCZcyBzdHJlbmd0aCBhbmQgY29tcG9zaXRpb24gZGV0YWlscy5cIilcbmV4cG9ydCBjbGFzcyBPdGhlclByb2R1Y3RTdHJlbmd0aCBleHRlbmRzIEJhc2VJZGVudGlmaWVkTW9kZWwge1xuICBAcGsoKVxuICBAbWlycm9yKFwibWlycm9yLWNvbGxlY3Rpb25cIiwgXCJQaGFybWFsZWRnZXJhc3NvY01TUFwiKVxuICBAY29tcG9zZWQoW1wicHJvZHVjdENvZGVcIiwgXCJ1dWlkXCJdLCBcIjpcIilcbiAgQGRlc2NyaXB0aW9uKFwiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHByb2R1Y3Qgc3RyZW5ndGguXCIpXG4gIGlkITogc3RyaW5nO1xuXG4gIEB1dWlkKHN0cmVuZ3RoU2VlZClcbiAgQHJlcXVpcmVkKClcbiAgQGRlc2NyaXB0aW9uKFwiVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGF1ZGl0IHJlY29yZC5cIilcbiAgdXVpZCE6IHN0cmluZztcblxuICAvLyBAbWFueVRvT25lKFxuICAvLyAgICgpID0+IFByb2R1Y3QsXG4gIC8vICAgeyB1cGRhdGU6IENhc2NhZGUuTk9ORSwgZGVsZXRlOiBDYXNjYWRlLk5PTkUgfSxcbiAgLy8gICBmYWxzZVxuICAvLyApXG4gIEBndGluKClcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiUHJvZHVjdCBjb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0cmVuZ3RoIGVudHJ5LlwiKVxuICBwcm9kdWN0Q29kZSE6IHN0cmluZztcblxuICBAY29sdW1uKClcbiAgQHJlcXVpcmVkKClcbiAgQGRlZmF1bHRRdWVyeUF0dHIoKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiUHJvZHVjdCBjb25jZW50cmF0aW9uIG9yIGRvc2FnZSAoZS5nLiwgNTAwbWcsIDEwJSkuXCIpXG4gIHN0cmVuZ3RoITogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSlcbiAgQGRlc2NyaXB0aW9uKFwiQWN0aXZlIHN1YnN0YW5jZSByZWxhdGVkIHRvIHRoaXMgcHJvZHVjdCBzdHJlbmd0aC5cIilcbiAgc3Vic3RhbmNlPzogc3RyaW5nO1xuXG4gIEBjb2x1bW4oKVxuICBAZGVzY3JpcHRpb24oXCJMZWdhbCBlbnRpdHkgbmFtZSByZXNwb25zaWJsZSBmb3IgdGhlIHByb2R1Y3QuXCIpXG4gIGxlZ2FsRW50aXR5TmFtZT86IHN0cmluZztcblxuICBAdmVyc2lvbigpXG4gIGNvdW50ZXI/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IobW9kZWw/OiBNb2RlbEFyZzxPdGhlclByb2R1Y3RTdHJlbmd0aD4pIHtcbiAgICBzdXBlcihtb2RlbCk7XG4gIH1cbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3RoZXJQcm9kdWN0U3RyZW5ndGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJPdGhlclByb2R1Y3RTdHJlbmd0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1B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LENBQUM7Q0FDNUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBRXpCLGtzTEFBa3NMIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbmltcG9ydCB7IG1vZGVsLCByZXF1aXJlZCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGNvbHVtbiwgZGVmYXVsdFF1ZXJ5QXR0ciwgaW5kZXgsIE9yZGVyRGlyZWN0aW9uLCBwaywgdGFibGUsIHV1aWQsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiwgdXNlcyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgQmFzZUlkZW50aWZpZWRNb2RlbCB9IGZyb20gXCIuLy4uL21vZGVscy9CYXNlSWRlbnRpZmllZE1vZGVsLmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGF2b3VyLCBtaXJyb3IsIE5hbWVzcGFjZUNvbGxlY3Rpb24sIHNoYXJlZERhdGEsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2luZGV4LmpzXCI7XG5pbXBvcnQgeyBjb21wb3NlZCwgSW50ZXJuYWxFcnJvciwgdmVyc2lvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgZ3RpbiB9IGZyb20gXCIuLy4uL21vZGVscy9ndGluLmpzXCI7XG5mdW5jdGlvbiBzdHJlbmd0aFNlZWQobSkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBgJHttLnByb2R1Y3RDb2RlfSR7bS5zdHJlbmd0aH0ke20uc3Vic3RhbmNlID8gbS5zdWJzdGFuY2UgOiBcIlwifWA7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgZGV0ZXJtaW5pc3RpYyB1dWlkOiAke2V9YCk7XG4gICAgfVxufVxubGV0IE90aGVyUHJvZHVjdFN0cmVuZ3RoID0gY2xhc3MgT3RoZXJQcm9kdWN0U3RyZW5ndGggZXh0ZW5kcyBCYXNlSWRlbnRpZmllZE1vZGVsIHtcbiAgICBjb25zdHJ1Y3Rvcihtb2RlbCkge1xuICAgICAgICBzdXBlcihtb2RlbCk7XG4gICAgfVxufTtcbl9fZGVjb3JhdGUoW1xuICAgIHBrKCksXG4gICAgbWlycm9yKFwibWlycm9yLWNvbGxlY3Rpb25cIiwgXCJQaGFybWFsZWRnZXJhc3NvY01TUFwiKSxcbiAgICBjb21wb3NlZChbXCJwcm9kdWN0Q29kZVwiLCBcInV1aWRcIl0sIFwiOlwiKSxcbiAgICBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9kdWN0IHN0cmVuZ3RoLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgT3RoZXJQcm9kdWN0U3RyZW5ndGgucHJvdG90eXBlLCBcImlkXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB1dWlkKHN0cmVuZ3RoU2VlZCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICBkZXNjcmlwdGlvbihcIlVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBhdWRpdCByZWNvcmQuXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlclByb2R1Y3RTdHJlbmd0aC5wcm90b3R5cGUsIFwidXVpZFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgZ3RpbigpLFxuICAgIGRlZmF1bHRRdWVyeUF0dHIoKSxcbiAgICBpbmRleChbT3JkZXJEaXJlY3Rpb24uQVNDLCBPcmRlckRpcmVjdGlvbi5EU0NdKSxcbiAgICBkZXNjcmlwdGlvbihcIlByb2R1Y3QgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdHJlbmd0aCBlbnRyeS5cIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIE90aGVyUHJvZHVjdFN0cmVuZ3RoLnByb3RvdHlwZSwgXCJwcm9kdWN0Q29kZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgcmVxdWlyZWQoKSxcbiAgICBkZWZhdWx0UXVlcnlBdHRyKCksXG4gICAgaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSksXG4gICAgZGVzY3JpcHRpb24oXCJQcm9kdWN0IGNvbmNlbnRyYXRpb24gb3IgZG9zYWdlIChlLmcuLCA1MDBtZywgMTAlKS5cIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIFN0cmluZylcbl0sIE90aGVyUHJvZHVjdFN0cmVuZ3RoLnByb3RvdHlwZSwgXCJzdHJlbmd0aFwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgaW5kZXgoW09yZGVyRGlyZWN0aW9uLkFTQywgT3JkZXJEaXJlY3Rpb24uRFNDXSksXG4gICAgZGVzY3JpcHRpb24oXCJBY3RpdmUgc3Vic3RhbmNlIHJlbGF0ZWQgdG8gdGhpcyBwcm9kdWN0IHN0cmVuZ3RoLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgU3RyaW5nKVxuXSwgT3RoZXJQcm9kdWN0U3RyZW5ndGgucHJvdG90eXBlLCBcInN1YnN0YW5jZVwiLCB2b2lkIDApO1xuX19kZWNvcmF0ZShbXG4gICAgY29sdW1uKCksXG4gICAgZGVzY3JpcHRpb24oXCJMZWdhbCBlbnRpdHkgbmFtZSByZXNwb25zaWJsZSBmb3IgdGhlIHByb2R1Y3QuXCIpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBTdHJpbmcpXG5dLCBPdGhlclByb2R1Y3RTdHJlbmd0aC5wcm90b3R5cGUsIFwibGVnYWxFbnRpdHlOYW1lXCIsIHZvaWQgMCk7XG5fX2RlY29yYXRlKFtcbiAgICB2ZXJzaW9uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIE51bWJlcilcbl0sIE90aGVyUHJvZHVjdFN0cmVuZ3RoLnByb3RvdHlwZSwgXCJjb3VudGVyXCIsIHZvaWQgMCk7XG5PdGhlclByb2R1Y3RTdHJlbmd0aCA9IF9fZGVjb3JhdGUoW1xuICAgIHNoYXJlZERhdGEoTmFtZXNwYWNlQ29sbGVjdGlvbihcImRlY2FmLW5hbWVzcGFjZVwiKSksXG4gICAgdXNlcyhGYWJyaWNGbGF2b3VyKSxcbiAgICB0YWJsZShcIm90aGVyX3Byb2R1Y3Rfc3RyZW5ndGhcIiksXG4gICAgbW9kZWwoKSxcbiAgICBkZXNjcmlwdGlvbihcIlJlcHJlc2VudHMgdGhlIHByb2R1Y3TigJlzIHN0cmVuZ3RoIGFuZCBjb21wb3NpdGlvbiBkZXRhaWxzLlwiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdF0pXG5dLCBPdGhlclByb2R1Y3RTdHJlbmd0aCk7XG5leHBvcnQgeyBPdGhlclByb2R1Y3RTdHJlbmd0aCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVDNSb1pYSlFjbTlrZFdOMFUzUnlaVzVuZEdndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZZMjl1ZEhKaFkzUXZkSEpoWTJ0bFpFMXZaR1ZzY3k5UGRHaGxjbEJ5YjJSMVkzUlRkSEpsYm1kMGFDNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZEUVN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEdkRFFVRm5ReXhEUVVGRE8wRkJRMnBGTEU5QlFVOHNSVUZEVEN4TlFVRk5MRVZCUTA0c1owSkJRV2RDTEVWQlEyaENMRXRCUVVzc1JVRkRUQ3hqUVVGakxFVkJRMlFzUlVGQlJTeEZRVU5HTEV0QlFVc3NSVUZEVEN4SlFVRkpMRWRCUTB3c1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTjRRaXhQUVVGUExFVkJRVVVzVjBGQlZ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TlFVRk5MSE5DUVVGelFpeERRVUZETzBGQlEzcEVMRTlCUVU4c1JVRkJSU3h0UWtGQmJVSXNSVUZCUlN3eVEwRkJjME03UVVGRmNFVXNUMEZCVHl4RlFVTk1MR0ZCUVdFc1JVRkRZaXhOUVVGTkxFVkJRMDRzYlVKQlFXMUNMRVZCUTI1Q0xGVkJRVlVzUjBGRFdDeG5RMEZCTWtJN1FVRkROVUlzVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4aFFVRmhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkRNMFVzVDBGQlR5eEZRVUZGTEVsQlFVa3NSVUZCUlN3MFFrRkJkVUk3UVVGSGRFTXNVMEZCVXl4WlFVRlpMRU5CUVVNc1EwRkJkVUk3U1VGRE0wTXNTVUZCU1N4RFFVRkRPMUZCUTBnc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlF5eFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRMRkZCUVZFc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXp0SlFVTXhSU3hEUVVGRE8wbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0UlFVTndRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETERCRFFVRXdReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEzcEZMRU5CUVVNN1FVRkRTQ3hEUVVGRE8wRkJUMDBzU1VGQlRTeHZRa0ZCYjBJc1IwRkJNVUlzVFVGQlRTeHZRa0ZCY1VJc1UwRkJVU3h0UWtGQmJVSTdTVUV3UXpORUxGbEJRVmtzUzBGQmMwTTdVVUZEYUVRc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEyWXNRMEZCUXp0RFFVTkdMRU5CUVVFN1FVRjRRME03U1VGS1F5eEZRVUZGTEVWQlFVVTdTVUZEU2l4TlFVRk5MRU5CUVVNc2JVSkJRVzFDTEVWQlFVVXNjMEpCUVhOQ0xFTkJRVU03U1VGRGJrUXNVVUZCVVN4RFFVRkRMRU5CUVVNc1lVRkJZU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXp0SlFVTjBReXhYUVVGWExFTkJRVU1zTkVOQlFUUkRMRU5CUVVNN08yZEVRVU01UXp0QlFVdGFPMGxCU0VNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dEpRVU5zUWl4UlFVRlJMRVZCUVVVN1NVRkRWaXhYUVVGWExFTkJRVU1zZDBOQlFYZERMRU5CUVVNN08ydEVRVU40UXp0QlFWZGtPMGxCU2tNc1NVRkJTU3hGUVVGRk8wbEJRMDRzWjBKQlFXZENMRVZCUVVVN1NVRkRiRUlzUzBGQlN5eERRVUZETEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETDBNc1YwRkJWeXhEUVVGRExHMUVRVUZ0UkN4RFFVRkRPenQ1UkVGRE5VTTdRVUZQY2tJN1NVRk1ReXhOUVVGTkxFVkJRVVU3U1VGRFVpeFJRVUZSTEVWQlFVVTdTVUZEVml4blFrRkJaMElzUlVGQlJUdEpRVU5zUWl4TFFVRkxMRU5CUVVNc1EwRkJReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVUZGTEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNdlF5eFhRVUZYTEVOQlFVTXNjVVJCUVhGRUxFTkJRVU03TzNORVFVTnFSRHRCUVV0c1FqdEpRVWhETEUxQlFVMHNSVUZCUlR0SlFVTlNMRXRCUVVzc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eEhRVUZITEVWQlFVVXNZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJReTlETEZkQlFWY3NRMEZCUXl4dlJFRkJiMFFzUTBGQlF6czdkVVJCUXk5RE8wRkJTVzVDTzBsQlJrTXNUVUZCVFN4RlFVRkZPMGxCUTFJc1YwRkJWeXhEUVVGRExHZEVRVUZuUkN4RFFVRkRPenMyUkVGRGNrTTdRVUZIZWtJN1NVRkVReXhQUVVGUExFVkJRVVU3TzNGRVFVTlBPMEZCZUVOT0xHOUNRVUZ2UWp0SlFVeG9ReXhWUVVGVkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETzBsQlEyNUNMRXRCUVVzc1EwRkJReXgzUWtGQmQwSXNRMEZCUXp0SlFVTXZRaXhMUVVGTExFVkJRVVU3U1VGRFVDeFhRVUZYTEVOQlFVTXNORVJCUVRSRUxFTkJRVU03TzBkQlF6ZEVMRzlDUVVGdlFpeERRVFpEYUVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2RIbHdaU0I3SUUxdlpHVnNRWEpuSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYjNJdGRtRnNhV1JoZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnYlc5a1pXd3NJSEpsY1hWcGNtVmtJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIdGNiaUFnWTI5c2RXMXVMRnh1SUNCa1pXWmhkV3gwVVhWbGNubEJkSFJ5TEZ4dUlDQnBibVJsZUN4Y2JpQWdUM0prWlhKRWFYSmxZM1JwYjI0c1hHNGdJSEJyTEZ4dUlDQjBZV0pzWlN4Y2JpQWdkWFZwWkN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QmtaWE5qY21sd2RHbHZiaXdnZFhObGN5QjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ1FtRnpaVWxrWlc1MGFXWnBaV1JOYjJSbGJDQjlJR1p5YjIwZ1hDSXVMaTl0YjJSbGJITXZRbUZ6WlVsa1pXNTBhV1pwWldSTmIyUmxiRndpTzF4dVhHNXBiWEJ2Y25RZ2UxeHVJQ0JHWVdKeWFXTkdiR0YyYjNWeUxGeHVJQ0J0YVhKeWIzSXNYRzRnSUU1aGJXVnpjR0ZqWlVOdmJHeGxZM1JwYjI0c1hHNGdJSE5vWVhKbFpFUmhkR0VzWEc1OUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZhVzVrWlhoY0lqdGNibWx0Y0c5eWRDQjdJR052YlhCdmMyVmtMQ0JKYm5SbGNtNWhiRVZ5Y205eUxDQjJaWEp6YVc5dUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5Qm5kR2x1SUgwZ1puSnZiU0JjSWk0dUwyMXZaR1ZzY3k5bmRHbHVYQ0k3WEc1cGJYQnZjblFnZXlCb2FYTjBiM0o1UkdWaklIMGdabkp2YlNCY0lpNHVMMjF2WkdWc2N5OW9hWE4wYjNKNUxXUmxZMXdpTzF4dVhHNW1kVzVqZEdsdmJpQnpkSEpsYm1kMGFGTmxaV1FvYlRvZ1QzUm9aWEpRY205a2RXTjBVM1J5Wlc1bmRHZ3BJSHRjYmlBZ2RISjVJSHRjYmlBZ0lDQnlaWFIxY200Z1lDUjdiUzV3Y205a2RXTjBRMjlrWlgwa2UyMHVjM1J5Wlc1bmRHaDlKSHR0TG5OMVluTjBZVzVqWlNBL0lHMHVjM1ZpYzNSaGJtTmxJRG9nWENKY0luMWdPMXh1SUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWUVaaGFXeGxaQ0IwYnlCblpXNWxjbUYwWlNCa1pYUmxjbTFwYm1semRHbGpJSFYxYVdRNklDUjdaWDFnS1R0Y2JpQWdmVnh1ZlZ4dVhHNUFjMmhoY21Wa1JHRjBZU2hPWVcxbGMzQmhZMlZEYjJ4c1pXTjBhVzl1S0Z3aVpHVmpZV1l0Ym1GdFpYTndZV05sWENJcEtWeHVRSFZ6WlhNb1JtRmljbWxqUm14aGRtOTFjaWxjYmtCMFlXSnNaU2hjSW05MGFHVnlYM0J5YjJSMVkzUmZjM1J5Wlc1bmRHaGNJaWxjYmtCdGIyUmxiQ2dwWEc1QVpHVnpZM0pwY0hScGIyNG9YQ0pTWlhCeVpYTmxiblJ6SUhSb1pTQndjbTlrZFdOMDRvQ1pjeUJ6ZEhKbGJtZDBhQ0JoYm1RZ1kyOXRjRzl6YVhScGIyNGdaR1YwWVdsc2N5NWNJaWxjYm1WNGNHOXlkQ0JqYkdGemN5QlBkR2hsY2xCeWIyUjFZM1JUZEhKbGJtZDBhQ0JsZUhSbGJtUnpJRUpoYzJWSlpHVnVkR2xtYVdWa1RXOWtaV3dnZTF4dUlDQkFjR3NvS1Z4dUlDQkFiV2x5Y205eUtGd2liV2x5Y205eUxXTnZiR3hsWTNScGIyNWNJaXdnWENKUWFHRnliV0ZzWldSblpYSmhjM052WTAxVFVGd2lLVnh1SUNCQVkyOXRjRzl6WldRb1cxd2ljSEp2WkhWamRFTnZaR1ZjSWl3Z1hDSjFkV2xrWENKZExDQmNJanBjSWlsY2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aVZXNXBjWFZsSUdsa1pXNTBhV1pwWlhJZ2IyWWdkR2hsSUhCeWIyUjFZM1FnYzNSeVpXNW5kR2d1WENJcFhHNGdJR2xrSVRvZ2MzUnlhVzVuTzF4dVhHNGdJRUIxZFdsa0tITjBjbVZ1WjNSb1UyVmxaQ2xjYmlBZ1FISmxjWFZwY21Wa0tDbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGd2lWVzVwY1hWbElHbGtaVzUwYVdacFpYSWdiMllnZEdobElHRjFaR2wwSUhKbFkyOXlaQzVjSWlsY2JpQWdkWFZwWkNFNklITjBjbWx1Wnp0Y2JseHVJQ0F2THlCQWJXRnVlVlJ2VDI1bEtGeHVJQ0F2THlBZ0lDZ3BJRDArSUZCeWIyUjFZM1FzWEc0Z0lDOHZJQ0FnZXlCMWNHUmhkR1U2SUVOaGMyTmhaR1V1VGs5T1JTd2daR1ZzWlhSbE9pQkRZWE5qWVdSbExrNVBUa1VnZlN4Y2JpQWdMeThnSUNCbVlXeHpaVnh1SUNBdkx5QXBYRzRnSUVCbmRHbHVLQ2xjYmlBZ1FHUmxabUYxYkhSUmRXVnllVUYwZEhJb0tWeHVJQ0JBYVc1a1pYZ29XMDl5WkdWeVJHbHlaV04wYVc5dUxrRlRReXdnVDNKa1pYSkVhWEpsWTNScGIyNHVSRk5EWFNsY2JpQWdRR1JsYzJOeWFYQjBhVzl1S0Z3aVVISnZaSFZqZENCamIyUmxJR0Z6YzI5amFXRjBaV1FnZDJsMGFDQjBhR2x6SUhOMGNtVnVaM1JvSUdWdWRISjVMbHdpS1Z4dUlDQndjbTlrZFdOMFEyOWtaU0U2SUhOMGNtbHVaenRjYmx4dUlDQkFZMjlzZFcxdUtDbGNiaUFnUUhKbGNYVnBjbVZrS0NsY2JpQWdRR1JsWm1GMWJIUlJkV1Z5ZVVGMGRISW9LVnh1SUNCQWFXNWtaWGdvVzA5eVpHVnlSR2x5WldOMGFXOXVMa0ZUUXl3Z1QzSmtaWEpFYVhKbFkzUnBiMjR1UkZORFhTbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGd2lVSEp2WkhWamRDQmpiMjVqWlc1MGNtRjBhVzl1SUc5eUlHUnZjMkZuWlNBb1pTNW5MaXdnTlRBd2JXY3NJREV3SlNrdVhDSXBYRzRnSUhOMGNtVnVaM1JvSVRvZ2MzUnlhVzVuTzF4dVhHNGdJRUJqYjJ4MWJXNG9LVnh1SUNCQWFXNWtaWGdvVzA5eVpHVnlSR2x5WldOMGFXOXVMa0ZUUXl3Z1QzSmtaWEpFYVhKbFkzUnBiMjR1UkZORFhTbGNiaUFnUUdSbGMyTnlhWEIwYVc5dUtGd2lRV04wYVhabElITjFZbk4wWVc1alpTQnlaV3hoZEdWa0lIUnZJSFJvYVhNZ2NISnZaSFZqZENCemRISmxibWQwYUM1Y0lpbGNiaUFnYzNWaWMzUmhibU5sUHpvZ2MzUnlhVzVuTzF4dVhHNGdJRUJqYjJ4MWJXNG9LVnh1SUNCQVpHVnpZM0pwY0hScGIyNG9YQ0pNWldkaGJDQmxiblJwZEhrZ2JtRnRaU0J5WlhOd2IyNXphV0pzWlNCbWIzSWdkR2hsSUhCeWIyUjFZM1F1WENJcFhHNGdJR3hsWjJGc1JXNTBhWFI1VG1GdFpUODZJSE4wY21sdVp6dGNibHh1SUNCQWRtVnljMmx2YmlncFhHNGdJR052ZFc1MFpYSS9PaUJ1ZFcxaVpYSTdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iVzlrWld3L09pQk5iMlJsYkVGeVp6eFBkR2hsY2xCeWIyUjFZM1JUZEhKbGJtZDBhRDRwSUh0Y2JpQWdJQ0J6ZFhCbGNpaHRiMlJsYkNrN1hHNGdJSDFjYm4xY2JpSmRmUT09Il19