@decaf-ts/for-fabric 0.1.26 → 0.1.28

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 (317) hide show
  1. package/dist/for-fabric.cjs +2 -1726
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -1831
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/bin/build-contract.cjs +1 -2
  6. package/lib/bin/build-contract.js.map +1 -0
  7. package/lib/bin/build-contracts.cjs +1 -2
  8. package/lib/bin/build-contracts.js.map +1 -0
  9. package/lib/bin/build-contracts2.cjs +1 -2
  10. package/lib/bin/build-contracts2.js.map +1 -0
  11. package/lib/bin/compile-indexes.cjs +1 -2
  12. package/lib/bin/compile-indexes.js.map +1 -0
  13. package/lib/cli-module.cjs +1 -1
  14. package/lib/cli-module.js.map +1 -0
  15. package/lib/client/FabricClientAdapter.cjs +43 -38
  16. package/lib/client/FabricClientAdapter.d.ts +28 -27
  17. package/lib/client/FabricClientAdapter.js.map +1 -0
  18. package/lib/client/FabricClientDispatch.cjs +7 -3
  19. package/lib/client/FabricClientDispatch.d.ts +4 -4
  20. package/lib/client/FabricClientDispatch.js.map +1 -0
  21. package/lib/client/FabricClientPaginator.cjs +1 -1
  22. package/lib/client/FabricClientPaginator.js.map +1 -0
  23. package/lib/client/FabricClientRepository.cjs +25 -3
  24. package/lib/client/FabricClientRepository.d.ts +2 -1
  25. package/lib/client/FabricClientRepository.js.map +1 -0
  26. package/lib/client/FabricClientStatement.cjs +1 -1
  27. package/lib/client/FabricClientStatement.js.map +1 -0
  28. package/lib/client/constants.cjs +10 -0
  29. package/lib/client/constants.d.ts +2 -0
  30. package/lib/client/constants.js.map +1 -0
  31. package/lib/client/erc20/FabricERC20ClientRepository.cjs +49 -23
  32. package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  33. package/lib/client/erc20/index.cjs +1 -1
  34. package/lib/client/erc20/index.js.map +1 -0
  35. package/lib/client/fabric-fs.cjs +1 -1
  36. package/lib/client/fabric-fs.js.map +1 -0
  37. package/lib/client/fabric-hsm.cjs +1 -1
  38. package/lib/client/fabric-hsm.js.map +1 -0
  39. package/lib/client/index.cjs +1 -1
  40. package/lib/client/index.js.map +1 -0
  41. package/lib/client/indexes/generation.cjs +1 -1
  42. package/lib/client/indexes/generation.js.map +1 -0
  43. package/lib/client/indexes/index.cjs +1 -1
  44. package/lib/client/indexes/index.js.map +1 -0
  45. package/lib/client/logging.cjs +1 -1
  46. package/lib/client/logging.js.map +1 -0
  47. package/lib/client/services/FabricEnrollmentService.cjs +1 -1
  48. package/lib/client/services/FabricEnrollmentService.js.map +1 -0
  49. package/lib/client/services/constants.cjs +1 -1
  50. package/lib/client/services/constants.js.map +1 -0
  51. package/lib/client/services/index.cjs +1 -1
  52. package/lib/client/services/index.js.map +1 -0
  53. package/lib/client/types.cjs +3 -0
  54. package/lib/client/types.d.ts +7 -0
  55. package/lib/client/types.js.map +1 -0
  56. package/lib/contract/Address.cjs +2 -2
  57. package/lib/contract/Address.js.map +1 -0
  58. package/lib/contract/AddressContract.cjs +1 -1
  59. package/lib/contract/AddressContract.js.map +1 -0
  60. package/lib/contract/Product.cjs +1 -1
  61. package/lib/contract/Product.js.map +1 -0
  62. package/lib/contract/ProductContract.cjs +1 -1
  63. package/lib/contract/ProductContract.js.map +1 -0
  64. package/lib/contract/User.cjs +1 -1
  65. package/lib/contract/User.js.map +1 -0
  66. package/lib/contract/UserContract.cjs +1 -1
  67. package/lib/contract/UserContract.js.map +1 -0
  68. package/lib/contract/index.cjs +1 -1
  69. package/lib/contract/index.js.map +1 -0
  70. package/lib/contracts/ContractAdapter.cjs +84 -47
  71. package/lib/contracts/ContractAdapter.js.map +1 -0
  72. package/lib/contracts/ContractContext.cjs +1 -1
  73. package/lib/contracts/ContractContext.js.map +1 -0
  74. package/lib/contracts/ContractPrivateDataAdapter.cjs +1 -1
  75. package/lib/contracts/ContractPrivateDataAdapter.js.map +1 -0
  76. package/lib/contracts/FabricConstruction.cjs +1 -1
  77. package/lib/contracts/FabricConstruction.js.map +1 -0
  78. package/lib/contracts/FabricContractRepository.cjs +8 -1
  79. package/lib/contracts/FabricContractRepository.d.ts +12 -0
  80. package/lib/contracts/FabricContractRepository.js.map +1 -0
  81. package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
  82. package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  83. package/lib/contracts/FabricContractStatement.cjs +1 -1
  84. package/lib/contracts/FabricContractStatement.js.map +1 -0
  85. package/lib/contracts/PrivateSequence.cjs +1 -1
  86. package/lib/contracts/PrivateSequence.js.map +1 -0
  87. package/lib/contracts/crud/crud-contract.cjs +3 -5
  88. package/lib/contracts/crud/crud-contract.d.ts +6 -6
  89. package/lib/contracts/crud/crud-contract.js.map +1 -0
  90. package/lib/contracts/crud/index.cjs +1 -1
  91. package/lib/contracts/crud/index.js.map +1 -0
  92. package/lib/contracts/crud/serialized-crud-contract.cjs +19 -13
  93. package/lib/contracts/crud/serialized-crud-contract.d.ts +5 -6
  94. package/lib/contracts/crud/serialized-crud-contract.js.map +1 -0
  95. package/lib/contracts/erc20/erc20contract.cjs +1 -1
  96. package/lib/contracts/erc20/erc20contract.js.map +1 -0
  97. package/lib/contracts/erc20/index.cjs +1 -1
  98. package/lib/contracts/erc20/index.js.map +1 -0
  99. package/lib/contracts/erc20/models.cjs +1 -1
  100. package/lib/contracts/erc20/models.js.map +1 -0
  101. package/lib/contracts/index.cjs +1 -1
  102. package/lib/contracts/index.js.map +1 -0
  103. package/lib/contracts/logging.cjs +1 -1
  104. package/lib/contracts/logging.js.map +1 -0
  105. package/lib/contracts/private-data.cjs +1 -1
  106. package/lib/contracts/private-data.js.map +1 -0
  107. package/lib/contracts/types.cjs +1 -1
  108. package/lib/contracts/types.js.map +1 -0
  109. package/lib/esm/bin/build-contract.js +1 -1
  110. package/lib/esm/bin/build-contract.js.map +1 -0
  111. package/lib/esm/bin/build-contracts.js +1 -1
  112. package/lib/esm/bin/build-contracts.js.map +1 -0
  113. package/lib/esm/bin/build-contracts2.js +1 -1
  114. package/lib/esm/bin/build-contracts2.js.map +1 -0
  115. package/lib/esm/bin/compile-indexes.js +1 -1
  116. package/lib/esm/bin/compile-indexes.js.map +1 -0
  117. package/lib/esm/cli-module.js +1 -1
  118. package/lib/esm/cli-module.js.map +1 -0
  119. package/lib/esm/client/FabricClientAdapter.d.ts +28 -27
  120. package/lib/esm/client/FabricClientAdapter.js +43 -38
  121. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  122. package/lib/esm/client/FabricClientDispatch.d.ts +4 -4
  123. package/lib/esm/client/FabricClientDispatch.js +7 -3
  124. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  125. package/lib/esm/client/FabricClientPaginator.js +1 -1
  126. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  127. package/lib/esm/client/FabricClientRepository.d.ts +2 -1
  128. package/lib/esm/client/FabricClientRepository.js +25 -3
  129. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  130. package/lib/esm/client/FabricClientStatement.js +1 -1
  131. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  132. package/lib/esm/client/constants.d.ts +2 -0
  133. package/lib/esm/client/constants.js +7 -0
  134. package/lib/esm/client/constants.js.map +1 -0
  135. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +50 -24
  136. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  137. package/lib/esm/client/erc20/index.js +1 -1
  138. package/lib/esm/client/erc20/index.js.map +1 -0
  139. package/lib/esm/client/fabric-fs.js +1 -1
  140. package/lib/esm/client/fabric-fs.js.map +1 -0
  141. package/lib/esm/client/fabric-hsm.js +1 -1
  142. package/lib/esm/client/fabric-hsm.js.map +1 -0
  143. package/lib/esm/client/index.js +1 -1
  144. package/lib/esm/client/index.js.map +1 -0
  145. package/lib/esm/client/indexes/generation.js +1 -1
  146. package/lib/esm/client/indexes/generation.js.map +1 -0
  147. package/lib/esm/client/indexes/index.js +1 -1
  148. package/lib/esm/client/indexes/index.js.map +1 -0
  149. package/lib/esm/client/logging.js +1 -1
  150. package/lib/esm/client/logging.js.map +1 -0
  151. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  152. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  153. package/lib/esm/client/services/constants.js +1 -1
  154. package/lib/esm/client/services/constants.js.map +1 -0
  155. package/lib/esm/client/services/index.js +1 -1
  156. package/lib/esm/client/services/index.js.map +1 -0
  157. package/lib/esm/client/types.d.ts +7 -0
  158. package/lib/esm/client/types.js +2 -0
  159. package/lib/esm/client/types.js.map +1 -0
  160. package/lib/esm/contract/Address.js +2 -2
  161. package/lib/esm/contract/Address.js.map +1 -0
  162. package/lib/esm/contract/AddressContract.js +1 -1
  163. package/lib/esm/contract/AddressContract.js.map +1 -0
  164. package/lib/esm/contract/Product.js +1 -1
  165. package/lib/esm/contract/Product.js.map +1 -0
  166. package/lib/esm/contract/ProductContract.js +1 -1
  167. package/lib/esm/contract/ProductContract.js.map +1 -0
  168. package/lib/esm/contract/User.js +1 -1
  169. package/lib/esm/contract/User.js.map +1 -0
  170. package/lib/esm/contract/UserContract.js +1 -1
  171. package/lib/esm/contract/UserContract.js.map +1 -0
  172. package/lib/esm/contract/index.js +1 -1
  173. package/lib/esm/contract/index.js.map +1 -0
  174. package/lib/esm/contracts/ContractAdapter.js +88 -51
  175. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  176. package/lib/esm/contracts/ContractContext.js +1 -1
  177. package/lib/esm/contracts/ContractContext.js.map +1 -0
  178. package/lib/esm/contracts/ContractPrivateDataAdapter.js +1 -1
  179. package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +1 -0
  180. package/lib/esm/contracts/FabricConstruction.js +1 -1
  181. package/lib/esm/contracts/FabricConstruction.js.map +1 -0
  182. package/lib/esm/contracts/FabricContractRepository.d.ts +12 -0
  183. package/lib/esm/contracts/FabricContractRepository.js +8 -1
  184. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  185. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  186. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  187. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  188. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  189. package/lib/esm/contracts/PrivateSequence.js +1 -1
  190. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  191. package/lib/esm/contracts/crud/crud-contract.d.ts +6 -6
  192. package/lib/esm/contracts/crud/crud-contract.js +3 -5
  193. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  194. package/lib/esm/contracts/crud/index.js +1 -1
  195. package/lib/esm/contracts/crud/index.js.map +1 -0
  196. package/lib/esm/contracts/crud/serialized-crud-contract.d.ts +5 -6
  197. package/lib/esm/contracts/crud/serialized-crud-contract.js +19 -13
  198. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  199. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  200. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  201. package/lib/esm/contracts/erc20/index.js +1 -1
  202. package/lib/esm/contracts/erc20/index.js.map +1 -0
  203. package/lib/esm/contracts/erc20/models.js +1 -1
  204. package/lib/esm/contracts/erc20/models.js.map +1 -0
  205. package/lib/esm/contracts/index.js +1 -1
  206. package/lib/esm/contracts/index.js.map +1 -0
  207. package/lib/esm/contracts/logging.js +1 -1
  208. package/lib/esm/contracts/logging.js.map +1 -0
  209. package/lib/esm/contracts/private-data.js +1 -1
  210. package/lib/esm/contracts/private-data.js.map +1 -0
  211. package/lib/esm/contracts/types.js +1 -1
  212. package/lib/esm/contracts/types.js.map +1 -0
  213. package/lib/esm/index.js +1 -1
  214. package/lib/esm/index.js.map +1 -0
  215. package/lib/esm/shared/ClientSerializer.js +1 -1
  216. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  217. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  218. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  219. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  220. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  221. package/lib/esm/shared/constants.js +1 -1
  222. package/lib/esm/shared/constants.js.map +1 -0
  223. package/lib/esm/shared/crypto.js +1 -1
  224. package/lib/esm/shared/crypto.js.map +1 -0
  225. package/lib/esm/shared/decorators.js +1 -1
  226. package/lib/esm/shared/decorators.js.map +1 -0
  227. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  228. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  229. package/lib/esm/shared/errors.js +1 -1
  230. package/lib/esm/shared/errors.js.map +1 -0
  231. package/lib/esm/shared/events.js +1 -1
  232. package/lib/esm/shared/events.js.map +1 -0
  233. package/lib/esm/shared/fabric-types.d.ts +0 -1
  234. package/lib/esm/shared/fabric-types.js +2 -2
  235. package/lib/esm/shared/fabric-types.js.map +1 -0
  236. package/lib/esm/shared/index.js +1 -1
  237. package/lib/esm/shared/index.js.map +1 -0
  238. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  239. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  240. package/lib/esm/shared/math.js +1 -1
  241. package/lib/esm/shared/math.js.map +1 -0
  242. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  243. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  244. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  245. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  246. package/lib/esm/shared/model/Identity.js +1 -1
  247. package/lib/esm/shared/model/Identity.js.map +1 -0
  248. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  249. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  250. package/lib/esm/shared/model/index.js +1 -1
  251. package/lib/esm/shared/model/index.js.map +1 -0
  252. package/lib/esm/shared/overrides/Model.js +1 -1
  253. package/lib/esm/shared/overrides/Model.js.map +1 -0
  254. package/lib/esm/shared/overrides/index.js +1 -1
  255. package/lib/esm/shared/overrides/index.js.map +1 -0
  256. package/lib/esm/shared/overrides/overrides.js +1 -1
  257. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  258. package/lib/esm/shared/types.js +1 -1
  259. package/lib/esm/shared/types.js.map +1 -0
  260. package/lib/esm/shared/utils.js +1 -1
  261. package/lib/esm/shared/utils.js.map +1 -0
  262. package/lib/esm/version.d.ts +1 -1
  263. package/lib/esm/version.js +2 -2
  264. package/lib/esm/version.js.map +1 -0
  265. package/lib/index.cjs +1 -1
  266. package/lib/index.js.map +1 -0
  267. package/lib/shared/ClientSerializer.cjs +1 -1
  268. package/lib/shared/ClientSerializer.js.map +1 -0
  269. package/lib/shared/DeterministicSerializer.cjs +1 -1
  270. package/lib/shared/DeterministicSerializer.js.map +1 -0
  271. package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
  272. package/lib/shared/SimpleDeterministicSerializer.js.map +1 -0
  273. package/lib/shared/constants.cjs +1 -1
  274. package/lib/shared/constants.js.map +1 -0
  275. package/lib/shared/crypto.cjs +1 -1
  276. package/lib/shared/crypto.js.map +1 -0
  277. package/lib/shared/decorators.cjs +1 -1
  278. package/lib/shared/decorators.js.map +1 -0
  279. package/lib/shared/erc20/erc20-constants.cjs +1 -1
  280. package/lib/shared/erc20/erc20-constants.js.map +1 -0
  281. package/lib/shared/errors.cjs +1 -1
  282. package/lib/shared/errors.js.map +1 -0
  283. package/lib/shared/events.cjs +1 -1
  284. package/lib/shared/events.js.map +1 -0
  285. package/lib/shared/fabric-types.cjs +1 -2
  286. package/lib/shared/fabric-types.d.ts +0 -1
  287. package/lib/shared/fabric-types.js.map +1 -0
  288. package/lib/shared/index.cjs +1 -1
  289. package/lib/shared/index.js.map +1 -0
  290. package/lib/shared/interfaces/Checkable.cjs +1 -1
  291. package/lib/shared/interfaces/Checkable.js.map +1 -0
  292. package/lib/shared/math.cjs +1 -1
  293. package/lib/shared/math.js.map +1 -0
  294. package/lib/shared/model/FabricBaseModel.cjs +1 -1
  295. package/lib/shared/model/FabricBaseModel.js.map +1 -0
  296. package/lib/shared/model/FabricIdentifiedBaseModel.cjs +1 -1
  297. package/lib/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  298. package/lib/shared/model/Identity.cjs +1 -1
  299. package/lib/shared/model/Identity.js.map +1 -0
  300. package/lib/shared/model/IdentityCredentials.cjs +1 -1
  301. package/lib/shared/model/IdentityCredentials.js.map +1 -0
  302. package/lib/shared/model/index.cjs +1 -1
  303. package/lib/shared/model/index.js.map +1 -0
  304. package/lib/shared/overrides/Model.cjs +1 -1
  305. package/lib/shared/overrides/Model.js.map +1 -0
  306. package/lib/shared/overrides/index.cjs +1 -1
  307. package/lib/shared/overrides/index.js.map +1 -0
  308. package/lib/shared/overrides/overrides.cjs +1 -1
  309. package/lib/shared/overrides/overrides.js.map +1 -0
  310. package/lib/shared/types.cjs +1 -1
  311. package/lib/shared/types.js.map +1 -0
  312. package/lib/shared/utils.cjs +1 -1
  313. package/lib/shared/utils.js.map +1 -0
  314. package/lib/version.cjs +2 -2
  315. package/lib/version.d.ts +1 -1
  316. package/lib/version.js.map +1 -0
  317. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":";;;AA8GA,sEAoBC;AA8BD,4CAsCC;AAtMD,uDAAgF;AAChF,yEAA6E;AAE7E,2DAA0D;AAC1D,2DAiBiC;AACjC,6DAI6B;AAE7B,yCA0BwB;AAExB,6EAAsE;AAOtE,2EAA4D;AAC5D,yDAAoD;AACpD,iGAAwF;AASxF,qDAO8B;AAC9B,2CAA2C;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,KAAK,UAAU,6BAA6B,CAMjD,OAAqC,EACrC,IAAO,EACP,GAAY,EACZ,KAAQ;IAER,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAmB,CAAC;QACvD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAmB,CAAC;QAC3C,6DAA6D;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,uBAAgB,CACxB,gEAAgE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,gBAAgB,CAKpC,OAA8B,EAC9B,IAAqB,EACrB,GAAY,EACZ,KAAQ;IAER,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,kBAAkB,GAAG,UACzB,MAAS,EACT,WAAmB,EACnB,KAA+B;QAE/B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACzC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,4BAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAa,CAAC;IAC7D,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAI,6BAAa,CACrB,kCAAkC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAgC,CAAC,CAAC;IACnE,kBAAkB,CAAC,KAAK,EAAE,GAAa,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,qBAAsB,SAAQ,4BAI1C;IACoB,SAAS;QAC1B,MAAM,IAAI,uBAAgB,CAAC,6CAA6C,CAAC,CAAC;IAC5E,CAAC;IACD;;OAEG;aACY,gBAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,AAA1B,CAA2B;aAE3B,eAAU,GAAG,IAAI,6DAA6B,EAAE,AAAtC,CAAuC;IAS3E;;;;;OAKG;IACM,UAAU;QAMjB,OAAO,mDAAqD,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACH,YAAY,KAAW,EAAE,KAAc;QACrC,KAAK,CAAC,KAAK,EAAE,yBAAa,EAAE,KAAK,CAAC,CAAC;QA7BrC;;;WAGG;QACyB,YAAO,GACjC,uCAAqB,CAAC;IAyBxB,CAAC;IAEQ,GAAG,CAAC,MAAoB,EAAE,GAAG,IAAS;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,MAAM,CACnB,KAAqB,EACrB,EAAkB,EAClB,KAA0B,EAC1B,GAAG,IAAkD;QAErD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,mBAAmB,SAAS,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACM,KAAK,CAAC,IAAI,CACjB,KAAqB,EACrB,EAAkB,EAClB,GAAG,IAAkD;QAErD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,KAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,MAAM,CACnB,KAAqB,EACrB,EAAkB,EAClB,KAA0B,EAC1B,GAAG,IAAkD;QAErD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,qBAAqB,SAAS,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,KAAqB,EACrB,EAAkB,EAClB,GAAG,IAAkD;QAErD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,SAAS,QAAQ,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,GAA0B;QAChE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,UAAkB;QAC3B,MAAM,UAAU,GAAG;YACjB,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,oBAAoB;SAC1B,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;gBACxB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAc,CAAC;oBACtC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,OAAO,IAAI,KAAK,CAAE,MAAc,CAAC,IAAI,CAAC,EAAE;oBACtC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ;wBAC/B,QAAQ,IAAI,EAAE,CAAC;4BACb,KAAK,UAAU,CAAC,CAAC,CAAC;gCAChB,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC;gCACnC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gCAC5D,OAAO,KAAK,CAAC;4BACf,CAAC;4BACD,KAAK,aAAa,CAAC,CAAC,CAAC;gCACnB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;gCAC5B,OAAQ,IAAsB,CAAC,iBAAiB,CAC9C,UAAU,EACV,EAAE,CACH,CAAC;4BACJ,CAAC;4BACD,KAAK,WAAW,CAAC,CAAC,CAAC;gCACjB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;gCAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;4BAC7C,CAAC;4BACD,KAAK,aAAa,CAAC,CAAC,CAAC;gCACnB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC;gCAClC,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;4BAC9D,CAAC;4BACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gCAC5B,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC;gCAC/C,MAAM,QAAQ,GAAG,MACf,IACD,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gCAClD,MAAM,OAAO,GAAU,EAAE,CAAC;gCAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;gCACd,IAAI,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gCAC1C,IAAI,OAAO,GAAkB,IAAI,CAAC;gCAElC,OAAO,IAAI,EAAE,CAAC;oCACZ,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oCAElC,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;wCAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;wCAChC,MAAM,WAAW,GAAI,GAAG,CAAC,KAAK,CAAC,KAAa,CAAC,QAAQ,CACnD,MAAM,CACP,CAAC;wCAEF,4CAA4C;wCAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;4CACrB,IAAI,SAAS,KAAK,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;gDACnC,eAAe,GAAG,IAAI,CAAC;4CACzB,CAAC;4CACD,SAAS;wCACX,CAAC;wCAED,OAAO,CAAC,IAAI,CAAC;4CACX,GAAG,EAAE,SAAS;4CACd,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;yCAChC,CAAC,CAAC;wCACH,OAAO,GAAG,SAAS,CAAC;wCACpB,KAAK,EAAE,CAAC;wCAER,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;4CACnB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;4CACvB,OAAO;gDACL,QAAQ,EACN,OAAkD;gDACpD,QAAQ,EAAE;oDACR,mBAAmB,EAAE,OAAO,CAAC,MAAM;oDACnC,QAAQ,EAAE,OAAO;iDAClB;6CACF,CAAC;wCACJ,CAAC;oCACH,CAAC;oCAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;wCACb,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;wCACvB,OAAO;4CACL,QAAQ,EACN,OAAkD;4CACpD,QAAQ,EAAE;gDACR,mBAAmB,EAAE,OAAO,CAAC,MAAM;gDACnC,QAAQ,EAAE,EAAE;6CACb;yCACF,CAAC;oCACJ,CAAC;gCACH,CAAC;4BACH,CAAC;4BACD;gCACE,MAAM,IAAI,6BAAa,CACrB,+BAA+B,MAAM,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;wBACN,CAAC;oBACH,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,QAAQ,CACtB,EAAU,EACV,KAA0B,EAC1B,GAA0B;QAE1B,IAAI,IAAY,CAAC;QAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,IAAI,CAChB,qBAAqB,CAAC,UAAU,CAAC,SAAS,CAAC,KAAc,CAAC,CAC3D,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,kCAAkB,CAC1B,sCAAsC,EAAE,KAAK,CAAC,EAAE,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,UAAU;YAAE,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;;YACtE,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QAE9C,GAAG,CAAC,KAAK,CACP,eAAe,UAAU,CAAC,CAAC,CAAC,OAAO,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CACjF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,GAA0B;QAC9D,IAAI,MAAW,CAAC;QAEhB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,GAAW,CAAC;QAChB,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,UAAU;YACZ,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;;YACrE,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE3D,IAAI,CAAC,GAAG;YACN,MAAM,IAAI,6BAAa,CACrB,kBAAkB,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,CACpF,CAAC;QACJ,GAAG,CAAC,KAAK,CACP,uBAAuB,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,CACtF,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,kCAAkB,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,WAAW,CACzB,IAAmB,EACnB,QAAa,EAEb,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,GAAiC,CAAC;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,UAAU;YACZ,GAAG,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACxC,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzB,CAAC;;YACC,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/D,OAAO,GAAG,CAAC;IACb,CAAC;IAES,KAAK,CAAC,oBAAoB,CAClC,IAAmB,EACnB,QAAa,EACb,QAAgB,GAAG,EACnB,IAAa,EACb,GAAG,IAAW;QAEd,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,GAAqD,CAAC;QAC1D,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,QAAQ,GAAG;gBAClB,GAAG,QAAQ,CAAC,QAAQ;gBACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;aACpD,CAAC;YACF,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAC7C,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzB,CAAC;YACF,GAAG,GAAG;gBACJ,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE;oBACR,mBAAmB,EAAE,KAAK;oBAC1B,QAAQ,EAAE,EAAE;iBACb;aACF,CAAC;QACJ,CAAC;;YACC,GAAG,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAC3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EACxB,KAAK,EACL,IAAI,EAAE,QAAQ,EAAE,CACjB,CAAC;QAEJ,OAAO,GAAG,CAAC;IACb,CAAC;IAES,WAAW,CAAC,OAA8B;QAClD,MAAM,OAAO,GAAG,CAAC,KAA0B,EAAE,EAAE,CAC7C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;YACtE,IAAI,OAAO,GAAG,KAAK,WAAW;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;QAET,IAAI,UAAU,GAAwB,OAAO,CAAC,GAAG,EAAyB,CAAC;QAE3E,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACO,MAAM,CAAC,MAAkB;QACjC,OAAO,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;OASG;IACgB,KAAK,CAAC,KAAK,CAC5B,SAAwB,EACxB,KAAqB,EACrB,KAAmC,EACnC,GAAgC,EAChC,GAAG,IAAW;QAEd,MAAM,SAAS,GAAG;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,KAAK;SAClB,CAAC;QACF,IAAI,GAAG,YAAY,uCAAqB,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvB,QAAQ,EAAE,GAAG,CAAC,cAAc;gBAC5B,MAAM,EAAE,IAAI,wBAAc,CAAC,IAAW,EAAE,SAAS,EAAE,GAAG,CAAC;gBACvD,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,CACxB,SAAS,EACT,KAAK,EACL,SAAgB,EAChB,GAAG,IAAI,CACR,CAAwB,CAAC;QAE1B,OAAO,KAA4B,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,6DAA6D;IACnD,KAAK,CAAI,MAAsB;QACvC,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACO,KAAK,CAAC,cAAc,CAC5B,GAAW,EACX,QAAsC,EACtC,SAAS,GAAG,KAAK;QAEjB,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,GAAG,GAAkC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC5C,IAAI,OAAO,GAAQ,EAAE,CAAC;gBACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5C,IAAI,SAAS,CAAC,0BAA0B,EAAE,CAAC;oBACzC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC9B,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;oBACxC,IAAI,CAAC;wBACH,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC/D,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACf,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBACzD,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACf,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,0BAA0B,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC;QACjE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,qDAAqD;QACvE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,GAAG,CACP,QAAoB;IACpB,6DAA6D;IAC7D,WAAc,IAAS,EACvB,GAAG,IAA2C;QAE9C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QACjC,IAAI,QAAsC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,KAAK,CACP,yCAAyC,KAAK,WAAW,IAAI,EAAE,CAChE,CAAC;YACF,MAAM,QAAQ,GACZ,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAC9B,IAAI,EACJ,QAAQ,EACR,KAAK,IAAI,GAAG,EACX,IAAY,EAAE,QAAQ,EAAE,CAC1B,CAAqD,CAAC;YACzD,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACjC,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAChC,IAAI,EACJ,QAAQ,CACT,CAAiC,CAAC;QACrC,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAM,CAAC;QAChE,GAAG,CAAC,KAAK,CACP,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CACnE,CAAC;QACF,OAAO,OAAc,CAAC;IACxB,CAAC;IAEQ,SAAS;QAChB,OAAO,IAAI,yCAAe,CAAC,IAAW,CAAC,CAAC;IAC1C,CAAC;IAEQ,KAAK,CAAC,SAAS,CACtB,SAAyB,EACzB,EAAoB,EACpB,KAA4B,EAC5B,GAAG,IAA2C;QAE9C,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,MAAM,IAAI,6BAAa,CAAC,0CAA0C,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,4BAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,YAAY,UAAU,QAAQ,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,GAAG,CAChB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,SAAS,CACtB,SAAyB,EACzB,EAAoB,EACpB,KAA4B,EAC5B,GAAG,IAA2C;QAE9C,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,MAAM,IAAI,6BAAa,CAAC,0CAA0C,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,4BAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,YAAY,UAAU,QAAQ,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC,GAAG,CAChB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACM,OAAO,CACd,KAAQ,EACR,GAAG,IAA2C;QAE9C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAkB,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,4BAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAkB,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,4BAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAC/C,CAAC,KAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;YACzC,IAAI,OAAO,GAAG,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC7C,MAAM,UAAU,GAAG,4BAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAU,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC7B,MAAM,IAAI,6BAAa,CAAC,iBAAiB,UAAU,cAAc,CAAC,CAAC;YACrE,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC,EACD,EAAE,CACH,CAAC;QAEF,GAAG,CAAC,KAAK,CACP,wBAAwB,SAAS,kBAAmB,KAAa,CAAC,EAAE,CAAC,EAAE,CACxE,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,MAAM;YACd,EAAE,EAAG,KAAa,CAAC,EAAE,CAAW;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC;IACJ,CAAC;IAEQ,MAAM,CACb,GAAwB,EACxB,KAAqB,EACrB,EAAkB,EAClB,SAA+B,EAC/B,GAAG,IAA2C;QAE9C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAwB,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,4BAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3B,EAAE,CAAC,EAAY,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,CACR,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,4BAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAC9D,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAQ,EAAE,GAAG,EAAE,EAAE;YACpD,KAA6B,CAAC,GAAG,CAAC;gBACjC,GAAG,CAAC,4BAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAU,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,KAAK,CACP,mCAAmC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvE,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBAC/C,IAAI,GAAG,IAAI,MAAM,IAAK,MAAc,CAAC,GAAG,CAAC,KAAK,SAAS;oBACrD,MAAM,IAAI,6BAAa,CACrB,sBAAsB,GAAG,4BAA4B,CAAC,CAAC,WAAW,CAAC,IAAI,wBAAwB,CAChG,CAAC;gBACJ,MAAM,CAAC,GAAc,CAAC,GAAG,GAAG,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,YAAY,CACnB,SAAyB,EACzB,EAAkB,EAClB,KAA0B,EAC1B,GAAG,IAA+C;QAElD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,CAAC,yBAAW,CAAC,KAAK,CAAC,GAAG,4BAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE7B,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAMxC,CAAC;IACJ,CAAC;IAEQ,YAAY,CACnB,SAAyB,EACzB,EAAkB,EAClB,KAA0B,EAC1B,GAAG,IAA+C;QAElD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,CAAC,yBAAW,CAAC,KAAK,CAAC,GAAG,4BAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE7B,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAMxC,CAAC;IACJ,CAAC;IAEkB,eAAe,CAChC,SAAyB,EACzB,GAAqB,EACrB,MAA6B,EAC7B,GAAG,IAAqC;QAExC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAC9B,MAAM,IAAI,6BAAa,CAAC,0CAA0C,CAAC,CAAC;QAEtE,MAAM,GAAG,GAA0B,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,MAAM,CAAC,yBAAW,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAU,CAAC,CAAC;IAC/C,CAAC;IAEkB,eAAe,CAChC,SAAyB,EACzB,GAAqB,EACrB,MAA6B,EAC7B,GAAG,IAAqC;QAExC,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YAC9B,MAAM,IAAI,6BAAa,CAAC,0CAA0C,CAAC,CAAC;QAEtE,MAAM,GAAG,GAA0B,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9C,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,MAAM,CAAC,yBAAW,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAU,CAAC,CAAC;IAC/C,CAAC;IAEQ,UAAU,CACjB,GAAmB,EACnB,MAAe;QAEf,OAAO,qBAAqB,CAAC,UAAU,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;IACzD,CAAC;IAEQ,MAAM,CACb,IAAU,EACV,MAA0C;QAK1C,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAa,CAAQ,CAAC;IAC7E,CAAC;IAkBD,MAAM,CAAU,MAAM,CAEpB,IAAU,EACV,MAA0C;QAK1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,6BAAa,CAAC,qBAAqB,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAA2B,CAAC;QAEhD,IAAI,CAAC,CAAC,GAAG,YAAY,cAAO,CAAC;YAC3B,MAAM,IAAI,6BAAa,CAAC,qBAAqB,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,cAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,CACV,IAAI;YACF,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CACV,CAAC;QACrC,OAAO;YACL,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAqC,CAAC,CAAC,CAAC,GAAG;YACxE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,UAAU,CAAsB,GAAmB;QACjE,OAAO;QACP,qCAAqC;QACrC,kDAAkD;QAClD,MAAM;QACN,IAAI;QACJ,wDAAwD;QACxD,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACxD,IAAI,GAAG,CAAC,QAAQ,CAAC,6BAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,6BAAa,CAAC,GAAG,CAAM,CAAC;QACzE,IAAI,GAAG,CAAC,QAAQ,CAAC,6BAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,6BAAa,CAAC,GAAG,CAAM,CAAC;QACzE,IAAI,GAAG,CAAC,QAAQ,CAAC,+BAAe,CAAC,IAAI,CAAC;YACpC,OAAO,IAAI,+BAAe,CAAC,GAAG,CAAM,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,iBAAU,CAAC,GAAG,CAAM,CAAC;QACnE,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAW,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,kBAAW,CAAC,GAAG,CAAM,CAAC;QACrE,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAgB,CAAC,IAAI,CAAC;YACrC,OAAO,IAAI,uBAAgB,CAAC,GAAG,CAAM,CAAC;QACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAc,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,qBAAc,CAAC,GAAG,CAAM,CAAC;QAC3E,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,oBAAa,CAAC,GAAG,CAAM,CAAC;QACzE,IAAI,GAAG,CAAC,QAAQ,CAAC,yBAAkB,CAAC,IAAI,CAAC;YACvC,OAAO,IAAI,yBAAkB,CAAC,GAAG,CAAM,CAAC;QAC1C,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAc,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,qBAAc,CAAC,GAAG,CAAM,CAAC;QAC3E,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAe,CAAC,IAAI,CAAC;YACpC,OAAO,IAAI,sBAAe,CAAC,GAAG,CAAM,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,kCAAkB,CAAC,IAAI,CAAC;YACvC,OAAO,IAAI,kCAAkB,CAAC,GAAG,CAAM,CAAC;QAC1C,OAAO,IAAI,6BAAa,CAAC,GAAG,CAAM,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAU,UAAU;QACxB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,uBAAU,CAAC,WAAW,CAAC,yBAAa,CAAC;aAClC,GAAG,CAAC,sBAAe,CAAC,UAAU,CAAC;aAC/B,MAAM,CACL,IAAA,wBAAQ,EAAC,6BAA6B,CAAC,EACvC,IAAA,yBAAY,EAAC,sBAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAC7C;aACA,KAAK,EAAE,CAAC;QAEX,uBAAU,CAAC,WAAW,CAAC,yBAAa,CAAC;aAClC,GAAG,CAAC,sBAAe,CAAC,UAAU,CAAC;aAC/B,MAAM,CACL,IAAA,8BAAc,EAAC,6BAA6B,CAAC,EAC7C,IAAA,yBAAY,EAAC,sBAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAC7C;aACA,KAAK,EAAE,CAAC;QACX,EAAE;QACF,wCAAwC;QACxC,oBAAoB;QACpB,cAAc;QACd,iCAAiC;QACjC,kCAAkC;QAClC,8BAA8B;QAC9B,UAAU;QACV,qDAAqD;QACrD,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;QACxB,kEAAkE;QAClE,kEAAkE;QAClE,wBAAwB;QACxB,WAAW;QACX,SAAS;QACT,cAAc;QACd,cAAc;QAEd,uBAAU,CAAC,WAAW,CAAC,yBAAa,CAAC;aAClC,GAAG,CAAC,sBAAe,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,IAAA,8BAAc,GAAE,CAAC;aACxB,KAAK,EAAE,CAAC;QAEX,uBAAU,CAAC,WAAW,CAAC,yBAAa,CAAC;aAClC,GAAG,CAAC,sBAAe,CAAC,KAAK,CAAC;aAC1B,MAAM,CAAC,SAAS,KAAK,CAAC,GAAQ;YAC7B,2BAA2B;YAE3B,qBAAqB;YAErB,OAAO;YACP,yBAAyB;YACzB,4CAA4C;YAC5C,qDAAqD;YAErD,OAAO;YACP,2BAA2B;YAC3B,4DAA4D;YAC5D,iDAAiD;YACjD,gCAAgC;YAChC,8BAA8B;YAE9B,OAAO,IAAA,4BAAY,GAAE,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC;aACD,KAAK,EAAE,CAAC;QAEX,yCAAyC;QACzC,oDAAoD;QACpD,8BAA8B;QAC9B,uBAAuB;QACvB,wCAAwC;QACxC,gBAAgB;QAChB,MAAM;QACN,sCAAsC;QACtC,oBAAoB;QACpB,wBAAwB;QACxB,0BAA0B;QAC1B,OAAO;QACP,yDAAyD;QACzD,4BAA4B;QAC5B,kBAAkB;QAClB,cAAc;QACd,kDAAkD;QAClD,6CAA6C;QAC7C,+CAA+C;QAC/C,+CAA+C;QAC/C,+CAA+C;QAC/C,2BAA2B;QAC3B,qDAAqD;QACrD,OAAO;QACP,IAAI;QACJ,EAAE;QACF,wCAAwC;QACxC,qCAAqC;QACrC,cAAc;QACd,8BAA8B;QAC9B,cAAc;QACd,cAAc;QACd,EAAE;QACF,0CAA0C;QAC1C,oDAAoD;QACpD,8BAA8B;QAC9B,uBAAuB;QACvB,wEAAwE;QACxE,gBAAgB;QAChB,MAAM;QACN,0CAA0C;QAC1C,oBAAoB;QACpB,wBAAwB;QACxB,0BAA0B;QAC1B,OAAO;QACP,2DAA2D;QAC3D,gCAAgC;QAChC,kBAAkB;QAClB,cAAc;QACd,uDAAuD;QACvD,uDAAuD;QACvD,oDAAoD;QACpD,6CAA6C;QAC7C,oDAAoD;QACpD,+BAA+B;QAC/B,0DAA0D;QAC1D,OAAO;QACP,IAAI;QACJ,EAAE;QACF,8CAA8C;QAC9C,cAAc;QACd,+BAA+B;QAC/B,cAAc;QACd,cAAc;IAChB,CAAC;;AAz/BH,sDA0/BC;AAED,qBAAqB,CAAC,UAAU,EAAE,CAAC;AACnC,cAAO,CAAC,UAAU,CAAC,yBAAa,CAAC,CAAC"}
@@ -69,4 +69,4 @@ class FabricContractContext extends core_1.Context {
69
69
  }
70
70
  }
71
71
  exports.FabricContractContext = FabricContractContext;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3RDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9Db250cmFjdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXlDO0FBSXpDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNILE1BQWEscUJBQXNCLFNBQVEsY0FBNEI7SUFDckU7OztPQUdHO0lBQ0g7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBYSxTQUFTO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFUSxRQUFRO1FBQ2YsT0FBTyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBdkNELHNEQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRleHQgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0RmxhZ3MgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ2hhaW5jb2RlU3R1YiwgQ2xpZW50SWRlbnRpdHkgfSBmcm9tIFwiZmFicmljLXNoaW0tYXBpXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnRleHQgY2xhc3MgZm9yIEZhYnJpYyBjaGFpbmNvZGUgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgUHJvdmlkZXMgYWNjZXNzIHRvIEZhYnJpYy1zcGVjaWZpYyBjb250ZXh0IGVsZW1lbnRzIGxpa2Ugc3R1YiwgaWRlbnRpdHksIGFuZCBsb2dnZXIgdG8gYmUgdXNlZCBieSByZXBvc2l0b3JpZXMgYW5kIGFkYXB0ZXJzIGR1cmluZyBjb250cmFjdCBleGVjdXRpb24uXG4gKiBAdGVtcGxhdGUgRiAtIEZsYWdzIHNwZWNpZmljIHRvIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gT3B0aW9uYWwgaW5pdGlhbGl6YXRpb24gYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgYmFzZSBDb250ZXh0XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGEgRmFicmljIGNoYWluY29kZSBjb250cmFjdCBtZXRob2RcbiAqIGNvbnN0IGNvbnRleHQgPSBuZXcgRmFicmljQ29udHJhY3RDb250ZXh0KCk7XG4gKiAvLyBPcHRpb25hbGx5IHNldCB2YWx1ZXMgdmlhIHRoZSBiYXNlIENvbnRleHQgQVBJXG4gKiBjb250ZXh0LnNldCgnc3R1YicsIGN0eC5zdHViKTtcbiAqIGNvbnRleHQuc2V0KCdjbGllbnRJZGVudGl0eScsIGN0eC5jbGllbnRJZGVudGl0eSk7XG4gKiBjb250ZXh0LnNldCgnbG9nZ2VyJywgY29udHJhY3RMb2dnZXIpO1xuICpcbiAqIC8vIEFjY2VzcyBjb250ZXh0IHByb3BlcnRpZXNcbiAqIGNvbnN0IHRpbWVzdGFtcCA9IGNvbnRleHQudGltZXN0YW1wO1xuICogY29uc3QgY3JlYXRvciA9IGNvbnRleHQuaWRlbnRpdHkuZ2V0SUQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBDb250ZXh0XG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBDb250cmFjdC0+PkNvbnRleHQ6IG5ldyBGYWJyaWNDb250cmFjdENvbnRleHQoKVxuICogICBDb250cmFjdC0+PkNvbnRleHQ6IHNldCgnc3R1Yid8J2NsaWVudElkZW50aXR5J3wnbG9nZ2VyJywgLi4uKVxuICogICBDb250ZXh0LS0+PkNvbnRyYWN0OiB0aW1lc3RhbXAsIGlkZW50aXR5LCBsb2dnZXJcbiAqICAgQ29udHJhY3QtPj5MZWRnZXI6IEludGVyYWN0IHZpYSBzdHViXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdENvbnRleHQgZXh0ZW5kcyBDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0NvbnRyYWN0Q29udGV4dCBpbnN0YW5jZVxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgY29udGV4dCB3aXRoIEZhYnJpYy1zcGVjaWZpYyBmbGFnc1xuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY2hhaW5jb2RlIHN0dWJcbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgQ2hhaW5jb2RlU3R1YiBpbnN0YW5jZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgbGVkZ2VyXG4gICAqIEByZXR1cm4ge0NoYWluY29kZVN0dWJ9IFRoZSBjaGFpbmNvZGUgc3R1YlxuICAgKi9cbiAgZ2V0IHN0dWIoKTogQ2hhaW5jb2RlU3R1YiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFwic3R1YlwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgdHJhbnNhY3Rpb24gdGltZXN0YW1wXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcyB0aGUgYmFzZSB0aW1lc3RhbXAgZ2V0dGVyIHRvIHVzZSB0aGUgc3R1YidzIHRpbWVzdGFtcFxuICAgKiBAcmV0dXJuIHtEYXRlfSBUaGUgdHJhbnNhY3Rpb24gdGltZXN0YW1wXG4gICAqL1xuICBvdmVycmlkZSBnZXQgdGltZXN0YW1wKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLnN0dWIuZ2V0RGF0ZVRpbWVzdGFtcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSBjbGllbnQgaWRlbnRpdHlcbiAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgQ2xpZW50SWRlbnRpdHkgaW5zdGFuY2UgZm9yIHRoZSB0cmFuc2FjdGlvbiBzdWJtaXR0ZXJcbiAgICogQHJldHVybiB7Q2xpZW50SWRlbnRpdHl9IFRoZSBjbGllbnQgaWRlbnRpdHlcbiAgICovXG4gIGdldCBpZGVudGl0eSgpOiBDbGllbnRJZGVudGl0eSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0KFwiaWRlbnRpdHlcIik7XG4gIH1cblxuICBvdmVycmlkZSB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gYGZhYnJpYyBjdHgke3RoaXMuc3R1YiA/IFwiIHdpdGggc3R1YlwiIDogXCJ3aXRob3V0IHN0dWJcIn1gO1xuICB9XG59XG4iXX0=
72
+ //# sourceMappingURL=ContractContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractContext.js","sourceRoot":"","sources":["../../src/contracts/ContractContext.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAIzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,qBAAsB,SAAQ,cAA4B;IACrE;;;OAGG;IACH;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;;OAIG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAa,SAAS;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAEQ,QAAQ;QACf,OAAO,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IAClE,CAAC;CACF;AAvCD,sDAuCC"}
@@ -423,4 +423,4 @@
423
423
  // return results;
424
424
  // }
425
425
  // }
426
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3RQcml2YXRlRGF0YUFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL0NvbnRyYWN0UHJpdmF0ZURhdGFBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4RUFBOEU7QUFDOUUsNkRBQTZEO0FBQzdELFdBQVc7QUFDWCxlQUFlO0FBQ2YsbUJBQW1CO0FBQ25CLHdCQUF3QjtBQUN4QixvQ0FBb0M7QUFDcEMsMERBQTBEO0FBQzFELFdBQVc7QUFDWCxnQ0FBZ0M7QUFDaEMsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQiwyQkFBMkI7QUFDM0Isb0VBQW9FO0FBQ3BFLDhEQUE4RDtBQUM5RCw2REFBNkQ7QUFDN0QsbUVBQW1FO0FBQ25FLEVBQUU7QUFDRixnRkFBZ0Y7QUFDaEYsUUFBUTtBQUNSLGlFQUFpRTtBQUNqRSxzRkFBc0Y7QUFDdEYsc0RBQXNEO0FBQ3RELHlFQUF5RTtBQUN6RSxRQUFRO0FBQ1IsaUJBQWlCO0FBQ2pCLG1CQUFtQjtBQUNuQixzQkFBc0I7QUFDdEIsOENBQThDO0FBQzlDLFFBQVE7QUFDUiwyQkFBMkI7QUFDM0IsNENBQTRDO0FBQzVDLE1BQU07QUFDTixFQUFFO0FBQ0YsUUFBUTtBQUNSLDJEQUEyRDtBQUMzRCxtRkFBbUY7QUFDbkYsb0VBQW9FO0FBQ3BFLDJEQUEyRDtBQUMzRCw4RkFBOEY7QUFDOUYsd0ZBQXdGO0FBQ3hGLFFBQVE7QUFDUix5QkFBeUI7QUFDekIseUJBQXlCO0FBQ3pCLDJCQUEyQjtBQUMzQixxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCLHNDQUFzQztBQUN0QywyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLEVBQUU7QUFDRixzQ0FBc0M7QUFDdEMsWUFBWTtBQUNaLDhDQUE4QztBQUM5QyxnQkFBZ0I7QUFDaEIscUJBQXFCO0FBQ3JCLHlCQUF5QjtBQUN6QixtQkFBbUI7QUFDbkIsV0FBVztBQUNYLEVBQUU7QUFDRixrQ0FB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QXNHO0FBQ3RHLDhGQUE4RjtBQUM5RixtRUFBbUU7QUFDbkUsZ0JBQWdCO0FBQ2hCLHVCQUF1QjtBQUN2Qiw0QkFBNEI7QUFDNUIsMkNBQTJDO0FBQzNDLDBCQUEwQjtBQUMxQiw2QkFBNkI7QUFDN0IsT0FBTztBQUNQLHNFQUFzRTtBQUN0RSwrRUFBK0U7QUFDL0UsNkJBQTZCO0FBQzdCLDBGQUEwRjtBQUMxRixpQ0FBaUM7QUFDakMsK0RBQStEO0FBQy9ELGFBQWE7QUFDYix1Q0FBdUM7QUFDdkMsbUNBQW1DO0FBQ25DLGlEQUFpRDtBQUNqRCxzRkFBc0Y7QUFDdEYsa0RBQWtEO0FBQ2xELFFBQVE7QUFDUiwyQkFBMkI7QUFDM0IsNEJBQTRCO0FBQzVCLHlCQUF5QjtBQUN6QixxQkFBcUI7QUFDckIsb0JBQW9CO0FBQ3BCLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsd0NBQXdDO0FBQ3hDLHFDQUFxQztBQUNyQyxrREFBa0Q7QUFDbEQsMkJBQTJCO0FBQzNCLGtDQUFrQztBQUNsQyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLDBFQUEwRTtBQUMxRSxXQUFXO0FBQ1gsMkVBQTJFO0FBQzNFLDRDQUE0QztBQUM1QyxrQkFBa0I7QUFDbEIsc0JBQXNCO0FBQ3RCLDBCQUEwQjtBQUMxQix1Q0FBdUM7QUFDdkMscUJBQXFCO0FBQ3JCLGtFQUFrRTtBQUNsRSxzQ0FBc0M7QUFDdEMsZUFBZTtBQUNmLDBDQUEwQztBQUMxQyw0Q0FBNEM7QUFDNUMsZ0JBQWdCO0FBQ2hCLG9CQUFvQjtBQUNwQixtQkFBbUI7QUFDbkIsNENBQTRDO0FBQzVDLFFBQVE7QUFDUixzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSxpQkFBaUI7QUFDakIsaUNBQWlDO0FBQ2pDLHlEQUF5RDtBQUN6RCxTQUFTO0FBQ1Qsc0JBQXNCO0FBQ3RCLE1BQU07QUFDTixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgQ2hhaW5jb2RlU3R1YiwgSXRlcmF0b3JzLCBTdGF0ZVF1ZXJ5UmVzcG9uc2UgfSBmcm9tIFwiZmFicmljLXNoaW1cIjtcbi8vIGltcG9ydCB7IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB9IGZyb20gXCIuL0NvbnRyYWN0QWRhcHRlclwiO1xuLy8gaW1wb3J0IHtcbi8vICAgQmFzZUVycm9yLFxuLy8gICBOb3RGb3VuZEVycm9yLFxuLy8gICBTZXJpYWxpemF0aW9uRXJyb3IsXG4vLyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuLy8gaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG4vLyBpbXBvcnQge1xuLy8gICBNSVNTSU5HX1BSSVZBVEVfREFUQV9SRUdFWCxcbi8vICAgbW9kZWxUb1ByaXZhdGUsXG4vLyAgIHByb2Nlc3NNb2RlbCxcbi8vIH0gZnJvbSBcIi4vcHJpdmF0ZS1kYXRhXCI7XG4vLyBpbXBvcnQgeyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyB9IGZyb20gXCIuLi9zaGFyZWQvZXJyb3JzXCI7XG4vLyBpbXBvcnQgeyBTZXF1ZW5jZSwgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4vLyBpbXBvcnQgeyBGYWJyaWNDb250cmFjdENvbnRleHQgfSBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcbi8vIGltcG9ydCB7IENvdWNoREJLZXlzLCBNYW5nb1F1ZXJ5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuLy9cbi8vIGV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdFByaXZhdGVEYXRhQWRhcHRlciBleHRlbmRzIEZhYnJpY0NvbnRyYWN0QWRhcHRlciB7XG4vLyAgIC8qKlxuLy8gICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgaW5zdGFuY2Vcbi8vICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYW4gYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlXG4vLyAgICAqIEBwYXJhbSB7dm9pZH0gc2NvcGUgLSBOb3QgdXNlZCBpbiB0aGlzIGFkYXB0ZXJcbi8vICAgICogQHBhcmFtIHtzdHJpbmd9IFthbGlhc10gLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2Vcbi8vICAgICovXG4vLyAgIGNvbnN0cnVjdG9yKFxuLy8gICAgIHNjb3BlOiB2b2lkLFxuLy8gICAgIGFsaWFzPzogc3RyaW5nLFxuLy8gICAgIHByaXZhdGUgcmVhZG9ubHkgY29sbGVjdGlvbnM/OiBzdHJpbmdbXVxuLy8gICApIHtcbi8vICAgICBzdXBlcihzY29wZSwgYWxpYXMpO1xuLy8gICAgIHRoaXMuY29sbGVjdGlvbnMgPSBjb2xsZWN0aW9ucyB8fCBbXTtcbi8vICAgfVxuLy9cbi8vICAgLyoqXG4vLyAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuLy8gICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYW5kIGRlc2VyaWFsaXplcyBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2Vcbi8vICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4vLyAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuLy8gICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuLy8gICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIHJlY29yZFxuLy8gICAgKi9cbi8vICAgb3ZlcnJpZGUgYXN5bmMgcmVhZChcbi8vICAgICB0YWJsZU5hbWU6IHN0cmluZyxcbi8vICAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuLy8gICAgIGluc3RhbmNlOiBhbnksXG4vLyAgICAgLi4uYXJnczogYW55W11cbi8vICAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4vLyAgICAgY29uc3QgeyBzdHViLCBsb2dnZXIgfSA9IGFyZ3MucG9wKCk7XG4vLyAgICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcih0aGlzLnJlYWQpO1xuLy9cbi8vICAgICBsZXQgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT47XG4vLyAgICAgdHJ5IHtcbi8vICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLnJlYWRTdGF0ZShcbi8vICAgICAgICAgc3R1Yixcbi8vICAgICAgICAgdGFibGVOYW1lLFxuLy8gICAgICAgICBpZC50b1N0cmluZygpLFxuLy8gICAgICAgICBpbnN0YW5jZVxuLy8gICAgICAgKTtcbi8vXG4vLyAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggPCAxKSB7XG4vLyAgICAgICAgIGxvZy5kZWJ1ZyhgTm8gcmVjb3JkIGZvdW5kIGZvciBpZCAke2lkfSBpbiAke3RhYmxlTmFtZX0gdGFibGVgKTtcbi8vICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4vLyAgICAgICAgICAgYE5vIHJlY29yZCBmb3VuZCBmb3IgaWQgJHtpZH0gaW4gJHt0YWJsZU5hbWV9IHRhYmxlYFxuLy8gICAgICAgICApO1xuLy8gICAgICAgfSBlbHNlIGlmIChyZXN1bHRzLmxlbmd0aCA8IDIpIHtcbi8vICAgICAgICAgbG9nLmRlYnVnKGBObyByZWNvcmQgZm91bmQgZm9yIGlkICR7aWR9IGluICR7dGFibGVOYW1lfSB0YWJsZWApO1xuLy8gICAgICAgICBtb2RlbCA9IHJlc3VsdHMucG9wKCkgYXMgUmVjb3JkPHN0cmluZywgYW55Pjtcbi8vICAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgIG1vZGVsID0gdGhpcy5tZXJnZU1vZGVscyhyZXN1bHRzKTtcbi8vICAgICAgIH1cbi8vICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4vLyAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4vLyAgICAgfVxuLy9cbi8vICAgICByZXR1cm4gbW9kZWw7XG4vLyAgIH1cbi8vXG4vLyAgIC8qKlxuLy8gICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuLy8gICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSByZWNvcmQgYW5kIHRoZW4gcmVtb3ZlcyBpdCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2Vcbi8vICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4vLyAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllciB0byBkZWxldGVcbi8vICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbi8vICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4vLyAgICAqL1xuLy8gICBvdmVycmlkZSBhc3luYyBkZWxldGUoXG4vLyAgICAgdGFibGVOYW1lOiBzdHJpbmcsXG4vLyAgICAgaWQ6IHN0cmluZyB8IG51bWJlcixcbi8vICAgICBpbnN0YW5jZTogYW55LFxuLy8gICAgIC4uLmFyZ3M6IGFueVtdXG4vLyAgICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuLy8gICAgIGNvbnN0IGN0eCA9IGFyZ3MucG9wKCk7XG4vLyAgICAgY29uc3QgeyBzdHViLCBsb2dnZXIgfSA9IGN0eDtcbi8vICAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKHRoaXMuZGVsZXRlKTtcbi8vXG4vLyAgICAgYXJncy5wdXNoKGN0eCk7XG4vL1xuLy8gICAgIGxldCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55Pjtcbi8vICAgICB0cnkge1xuLy8gICAgICAgbW9kZWwgPSBhd2FpdCB0aGlzLnJlYWQodGFibGVOYW1lLCBpZCwgaW5zdGFuY2UsIC4uLmFyZ3MpO1xuLy8gICAgICAgbG9nLnZlcmJvc2UoYGRlbGV0aW5nIGVudHJ5IHdpdGggcGsgJHtpZH0gZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbi8vICAgICAgIHRoaXMuZGVsZXRlU3RhdGUoc3R1YiwgdGFibGVOYW1lLCBpZC50b1N0cmluZygpLCBpbnN0YW5jZSk7XG4vLyAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuLy8gICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuLy8gICAgIH1cbi8vXG4vLyAgICAgcmV0dXJuIG1vZGVsO1xuLy8gICB9XG4vLyAgIG92ZXJyaWRlIHByZXBhcmU8TSBleHRlbmRzIE1vZGVsPihcbi8vICAgICBtb2RlbDogTSxcbi8vICAgICBwazoga2V5b2YgTSxcbi8vICAgICAuLi5hcmdzOiBhbnlbXVxuLy8gICApOiB7XG4vLyAgICAgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuLy8gICAgIGlkOiBzdHJpbmc7XG4vLyAgICAgdHJhbnNpZW50PzogUmVjb3JkPHN0cmluZywgYW55Pjtcbi8vICAgfSB7XG4vLyAgICAgY29uc3QgeyBzdHViLCBsb2dnZXIgfSA9IGFyZ3MucG9wKCk7XG4vLyAgICAgY29uc3QgdGFibGVOYW1lID0gYXJncy5zaGlmdCgpO1xuLy8gICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IodGhpcy5wcmVwYXJlKTtcbi8vXG4vLyAgICAgY29uc3Qgc3BsaXQgPSBwcm9jZXNzTW9kZWwodGhpcywgbW9kZWwpO1xuLy8gICAgIC8vIGlmICgobW9kZWwgYXMgYW55KVtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdKSB7XG4vLyAgICAgLy8gICBsb2cuc2lsbHkoXG4vLyAgICAgLy8gICAgIGBQYXNzaW5nIGFsb25nIHBlcnNpc3RlbmNlIG1ldGFkYXRhIGZvciAkeyhtb2RlbCBhcyBhbnkpW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV19YFxuLy8gICAgIC8vICAgKTtcbi8vICAgICAvLyAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzcGxpdC5yZXN1bHQsIFBlcnNpc3RlbmNlS2V5cy5NRVRBREFUQSwge1xuLy8gICAgIC8vICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbi8vICAgICAvLyAgICAgd3JpdGFibGU6IGZhbHNlLFxuLy8gICAgIC8vICAgICBjb25maWd1cmFibGU6IHRydWUsXG4vLyAgICAgLy8gICAgIHZhbHVlOiAobW9kZWwgYXMgYW55KVtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdLFxuLy8gICAgIC8vICAgfSk7XG4vLyAgICAgLy8gfVxuLy9cbi8vICAgICBsb2cuaW5mbyhgUHJlcGFyaW5nIHJlY29yZCBmb3IgJHt0YWJsZU5hbWV9IHRhYmxlIHdpdGggcGsgJHttb2RlbFtwa119YCk7XG4vL1xuLy8gICAgIHJldHVybiB7XG4vLyAgICAgICByZWNvcmQ6IHNwbGl0LnByaXZhdGVEYXRhIGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4vLyAgICAgICBpZDogc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbU3RyaW5nKG1vZGVsW3BrXSldKSxcbi8vICAgICAgIHRyYW5zaWVudDogc3BsaXQudHJhbnNpZW50LFxuLy8gICAgIH07XG4vLyAgIH1cbi8vXG4vLyAgIG92ZXJyaWRlIGNyZWF0ZVByZWZpeChcbi8vICAgICB0YWJsZU5hbWU6IHN0cmluZyxcbi8vICAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuLy8gICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuLy8gICAgIC4uLmFyZ3M6IGFueVtdXG4vLyAgICkge1xuLy8gICAgIGNvbnN0IGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0ID0gYXJncy5wb3AoKTtcbi8vICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IE9iamVjdC5rZXlzKG1vZGVsKTtcbi8vICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbi8vICAgICAgIG1vZGVsW2NvbGxlY3Rpb25dW0NvdWNoREJLZXlzLlRBQkxFXSA9IHRhYmxlTmFtZTtcbi8vICAgICB9XG4vL1xuLy8gICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55PiA9IG1vZGVsO1xuLy9cbi8vICAgICByZXR1cm4gW3RhYmxlTmFtZSwgaWQsIHJlY29yZCwgY3R4XTtcbi8vICAgfVxuLy9cbi8vICAgb3ZlcnJpZGUgdXBkYXRlUHJlZml4KFxuLy8gICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuLy8gICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4vLyAgICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4vLyAgICAgLi4uYXJnczogYW55W11cbi8vICAgKTogKHN0cmluZyB8IG51bWJlciB8IFJlY29yZDxzdHJpbmcsIGFueT4pW10ge1xuLy8gICAgIGNvbnN0IGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0ID0gYXJncy5wb3AoKTtcbi8vICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IE9iamVjdC5rZXlzKG1vZGVsKTtcbi8vXG4vLyAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4vLyAgICAgICBtb2RlbFtjb2xsZWN0aW9uXVtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4vLyAgICAgfVxuLy9cbi8vICAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBtb2RlbDtcbi8vXG4vLyAgICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkLCByZWNvcmQsIGN0eF07XG4vLyAgIH1cbi8vICAgb3ZlcnJpZGUgYXN5bmMgcHV0U3RhdGUoXG4vLyAgICAgc3R1YjogQ2hhaW5jb2RlU3R1Yixcbi8vICAgICBpZDogc3RyaW5nLFxuLy8gICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuLy8gICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbi8vICAgICAuLi5hcmdzOiBhbnlbXVxuLy8gICApIHtcbi8vICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IE9iamVjdC5rZXlzKG1vZGVsKTtcbi8vICAgICBsZXQgcmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4vLyAgICAgbGV0IGRhdGE6IEJ1ZmZlcjtcbi8vXG4vLyAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4vLyAgICAgICByZXMgPSBtb2RlbCFbY29sbGVjdGlvbl07XG4vLyAgICAgICB0cnkge1xuLy8gICAgICAgICBkYXRhID0gQnVmZmVyLmZyb20oXG4vLyAgICAgICAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuc2VyaWFsaXplKFxuLy8gICAgICAgICAgICAgbW9kZWwhW2NvbGxlY3Rpb25dIGFzIE1vZGVsXG4vLyAgICAgICAgICAgKVxuLy8gICAgICAgICApO1xuLy8gICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuLy8gICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuLy8gICAgICAgICAgIGBGYWlsZWQgdG8gc2VyaWFsaXplIHJlY29yZCB3aXRoIGlkICR7aWR9OiAke2V9YFxuLy8gICAgICAgICApO1xuLy8gICAgICAgfVxuLy8gICAgICAgYXdhaXQgc3R1Yi5wdXRQcml2YXRlRGF0YShjb2xsZWN0aW9uLCBpZC50b1N0cmluZygpLCBkYXRhKTtcbi8vICAgICB9XG4vL1xuLy8gICAgIHJldHVybiByZXM7XG4vLyAgIH1cbi8vXG4vLyAgIG92ZXJyaWRlIGFzeW5jIHJlYWRTdGF0ZShcbi8vICAgICBzdHViOiBDaGFpbmNvZGVTdHViLFxuLy8gICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuLy8gICAgIGlkOiBzdHJpbmcsXG4vLyAgICAgaW5zdGFuY2U6IGFueSxcbi8vICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4vLyAgICAgLi4uYXJnczogYW55W11cbi8vICAgKSB7XG4vLyAgICAgY29uc3QgY29tcG9zZWRLZXkgPSBzdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoaWQpXSk7XG4vLyAgICAgY29uc3QgbW9kZWwgPSBtb2RlbFRvUHJpdmF0ZShpbnN0YW5jZSk7XG4vLyAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBPYmplY3Qua2V5cyhtb2RlbC5wcml2YXRlISk7XG4vLyAgICAgY29uc3QgcmVzdWx0czogYW55W10gPSBbXTtcbi8vXG4vLyAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4vLyAgICAgICB0cnkge1xuLy8gICAgICAgICBsZXQgcmVzOiBCdWZmZXIgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gYXdhaXQgc3R1Yi5nZXRQcml2YXRlRGF0YShcbi8vICAgICAgICAgICBjb2xsZWN0aW9uLFxuLy8gICAgICAgICAgIGNvbXBvc2VkS2V5XG4vLyAgICAgICAgICk7XG4vLyAgICAgICAgIGlmIChyZXMudG9TdHJpbmcoKSA9PT0gXCJcIikge1xuLy8gICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBFbnRyeSB3aXRoIGlkICR7aWR9IGRvZXNuJ3QgZXhpc3QuLi5gKTtcbi8vICAgICAgICAgfVxuLy8gICAgICAgICB0cnkge1xuLy8gICAgICAgICAgIHJlcyA9IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5zZXJpYWxpemVyLmRlc2VyaWFsaXplKFxuLy8gICAgICAgICAgICAgcmVzLnRvU3RyaW5nKClcbi8vICAgICAgICAgICAgIC8vIG1vZGVsLmNvbnN0cnVjdG9yLm5hbWVcbi8vICAgICAgICAgICApO1xuLy8gICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4vLyAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHByaXZhdGUgZGF0YTogJHtlfWApO1xuLy8gICAgICAgICB9XG4vLyAgICAgICAgIHJlc3VsdHMucHVzaChyZXMpO1xuLy8gICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuLy8gICAgICAgICBpZiAoTUlTU0lOR19QUklWQVRFX0RBVEFfUkVHRVgudGVzdCgoZSBhcyBCYXNlRXJyb3IpLm1lc3NhZ2UpKVxuLy8gICAgICAgICAgIHRocm93IG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlIGFzIEJhc2VFcnJvcik7XG4vLyAgICAgICAgIHRocm93IGU7XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy9cbi8vICAgICByZXR1cm4gcmVzdWx0cztcbi8vICAgfVxuLy9cbi8vICAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlU3RhdGUoXG4vLyAgICAgc3R1YjogQ2hhaW5jb2RlU3R1Yixcbi8vICAgICB0YWJsZU5hbWU6IHN0cmluZyxcbi8vICAgICBpZDogc3RyaW5nLFxuLy8gICAgIGluc3RhbmNlOiBhbnksXG4vLyAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuLy8gICAgIC4uLmFyZ3M6IGFueVtdXG4vLyAgICkge1xuLy8gICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbU3RyaW5nKGlkKV0pO1xuLy8gICAgIGNvbnN0IG1vZGVsID0gbW9kZWxUb1ByaXZhdGUoaW5zdGFuY2UpO1xuLy8gICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gT2JqZWN0LmtleXMobW9kZWwucHJpdmF0ZSEpO1xuLy9cbi8vICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbi8vICAgICAgIGF3YWl0IHN0dWIuZGVsZXRlUHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgY29tcG9zZWRLZXkpO1xuLy8gICAgIH1cbi8vICAgfVxuLy9cbi8vICAgb3ZlcnJpZGUgYXN5bmMgcXVlcnlSZXN1bHQoXG4vLyAgICAgc3R1YjogQ2hhaW5jb2RlU3R1Yixcbi8vICAgICByYXdJbnB1dDogYW55LFxuLy8gICAgIGluc3RhbmNlOiBhbnlcbi8vICAgKTogUHJvbWlzZTxJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yPiB7XG4vLyAgICAgY29uc3QgcHJpdmF0ZURhdGEgPSBtb2RlbFRvUHJpdmF0ZShpbnN0YW5jZSkucHJpdmF0ZSE7XG4vLyAgICAgY29uc3QgY29sbGVjdGlvbiA9IE9iamVjdC5rZXlzKHByaXZhdGVEYXRhKVswXSB8fCBcIlwiO1xuLy9cbi8vICAgICBjb25zdCByZXN1bHQgPSAoYXdhaXQgc3R1Yi5nZXRQcml2YXRlRGF0YVF1ZXJ5UmVzdWx0KFxuLy8gICAgICAgY29sbGVjdGlvbixcbi8vICAgICAgIEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KVxuLy8gICAgICkpIGFzIGFueTtcbi8vXG4vLyAgICAgY29uc3QgaXRlcmF0b3IgPSByZXN1bHQuaXRlcmF0b3IgYXMgSXRlcmF0b3JzLlN0YXRlUXVlcnlJdGVyYXRvcjtcbi8vXG4vLyAgICAgcmV0dXJuIGl0ZXJhdG9yO1xuLy8gICB9XG4vL1xuLy8gICBvdmVycmlkZSBhc3luYyBxdWVyeVJlc3VsdFBhZ2luYXRlZChcbi8vICAgICBzdHViOiBDaGFpbmNvZGVTdHViLFxuLy8gICAgIHJhd0lucHV0OiBhbnksXG4vLyAgICAgbGltaXQ6IG51bWJlciA9IDI1MCxcbi8vICAgICBza2lwOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4vLyAgICAgaW5zdGFuY2U6IGFueVxuLy8gICApOiBQcm9taXNlPFN0YXRlUXVlcnlSZXNwb25zZTxJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yPj4ge1xuLy8gICAgIGNvbnN0IHByaXZhdGVEYXRhID0gbW9kZWxUb1ByaXZhdGUoaW5zdGFuY2UpLnByaXZhdGUhO1xuLy8gICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBPYmplY3Qua2V5cyhwcml2YXRlRGF0YSlbMF0gfHwgXCJcIjtcbi8vXG4vLyAgICAgY29uc3QgaXRlcmF0b3IgPSBhd2FpdCBzdHViLmdldFByaXZhdGVEYXRhUXVlcnlSZXN1bHQoXG4vLyAgICAgICBjb2xsZWN0aW9uLFxuLy8gICAgICAgSlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpXG4vLyAgICAgKTtcbi8vXG4vLyAgICAgY29uc3QgcmVzdWx0czogYW55W10gPSBbXTtcbi8vICAgICBsZXQgY291bnQgPSAwO1xuLy8gICAgIGxldCByZWFjaGVkQm9va21hcmsgPSBza2lwID8gZmFsc2UgOiB0cnVlO1xuLy8gICAgIGxldCBsYXN0S2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbi8vXG4vLyAgICAgd2hpbGUgKHRydWUpIHtcbi8vICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbi8vXG4vLyAgICAgICBpZiAocmVzLnZhbHVlICYmIHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZygpKSB7XG4vLyAgICAgICAgIGNvbnN0IHJlY29yZEtleSA9IHJlcy52YWx1ZS5rZXk7XG4vLyAgICAgICAgIGNvbnN0IHJlY29yZFZhbHVlID0gKHJlcy52YWx1ZS52YWx1ZSBhcyBhbnkpLnRvU3RyaW5nKFwidXRmOFwiKTtcbi8vXG4vLyAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBza2lwLCBza2lwIHVudGlsIHdlIHJlYWNoIGl0XG4vLyAgICAgICAgIGlmICghcmVhY2hlZEJvb2ttYXJrKSB7XG4vLyAgICAgICAgICAgaWYgKHJlY29yZEtleSA9PT0gc2tpcD8udG9TdHJpbmcoKSkge1xuLy8gICAgICAgICAgICAgcmVhY2hlZEJvb2ttYXJrID0gdHJ1ZTtcbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgICAgY29udGludWU7XG4vLyAgICAgICAgIH1cbi8vXG4vLyAgICAgICAgIHJlc3VsdHMucHVzaCh7IEtleTogcmVjb3JkS2V5LCBSZWNvcmQ6IEpTT04ucGFyc2UocmVjb3JkVmFsdWUpIH0pO1xuLy8gICAgICAgICBsYXN0S2V5ID0gcmVjb3JkS2V5O1xuLy8gICAgICAgICBjb3VudCsrO1xuLy9cbi8vICAgICAgICAgaWYgKGNvdW50ID49IGxpbWl0KSB7XG4vLyAgICAgICAgICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbi8vICAgICAgICAgICByZXR1cm4ge1xuLy8gICAgICAgICAgICAgaXRlcmF0b3I6IHJlc3VsdHMgYXMgdW5rbm93biBhcyBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yLFxuLy8gICAgICAgICAgICAgbWV0YWRhdGE6IHtcbi8vICAgICAgICAgICAgICAgZmV0Y2hlZFJlY29yZHNDb3VudDogcmVzdWx0cy5sZW5ndGgsXG4vLyAgICAgICAgICAgICAgIGJvb2ttYXJrOiBsYXN0S2V5LFxuLy8gICAgICAgICAgICAgfSxcbi8vICAgICAgICAgICB9O1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vL1xuLy8gICAgICAgaWYgKHJlcy5kb25lKSB7XG4vLyAgICAgICAgIGF3YWl0IGl0ZXJhdG9yLmNsb3NlKCk7XG4vLyAgICAgICAgIHJldHVybiB7XG4vLyAgICAgICAgICAgaXRlcmF0b3I6IHJlc3VsdHMgYXMgdW5rbm93biBhcyBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yLFxuLy8gICAgICAgICAgIG1ldGFkYXRhOiB7XG4vLyAgICAgICAgICAgICBmZXRjaGVkUmVjb3Jkc0NvdW50OiByZXN1bHRzLmxlbmd0aCxcbi8vICAgICAgICAgICAgIGJvb2ttYXJrOiBcIlwiLFxuLy8gICAgICAgICAgIH0sXG4vLyAgICAgICAgIH07XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICAgIC8vIHJldHVybiAoYXdhaXQgc3R1Yi5nZXRRdWVyeVJlc3VsdFdpdGhQYWdpbmF0aW9uKFxuLy8gICAgIC8vICAgSlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpLFxuLy8gICAgIC8vICAgbGltaXQsXG4vLyAgICAgLy8gICBza2lwPy50b1N0cmluZygpXG4vLyAgICAgLy8gKSkgYXMgU3RhdGVRdWVyeVJlc3BvbnNlPEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I+O1xuLy8gICB9XG4vL1xuLy8gICAvKipcbi8vICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIHN0YXRlIGRhdGFiYXNlXG4vLyAgICAqIEBzdW1tYXJ5IFBlcmZvcm1zIGEgcmljaCBxdWVyeSB1c2luZyBDb3VjaERCIHN5bnRheCBhZ2FpbnN0IHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2Vcbi8vICAgICogQHRlbXBsYXRlIFIgLSBUaGUgcmV0dXJuIHR5cGVcbi8vICAgICogQHBhcmFtIHtNYW5nb1F1ZXJ5fSByYXdJbnB1dCAtIFRoZSBNYW5nbyBRdWVyeSB0byBleGVjdXRlXG4vLyAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9jc09ubHkgLSBXaGV0aGVyIHRvIHJldHVybiBvbmx5IGRvY3VtZW50cyAobm90IHVzZWQgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbilcbi8vICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbi8vICAgICogQHJldHVybiB7UHJvbWlzZTxSPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHF1ZXJ5IHJlc3VsdHNcbi8vICAgICogQG1lcm1haWRcbi8vICAgICogc2VxdWVuY2VEaWFncmFtXG4vLyAgICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4vLyAgICAqICAgcGFydGljaXBhbnQgRmFicmljQ29udHJhY3RBZGFwdGVyXG4vLyAgICAqICAgcGFydGljaXBhbnQgU3R1YlxuLy8gICAgKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbi8vICAgICpcbi8vICAgICogICBDYWxsZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IHJhdyhyYXdJbnB1dCwgZG9jc09ubHksIGN0eClcbi8vICAgICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IEV4dHJhY3QgbGltaXQgYW5kIHNraXBcbi8vICAgICogICBhbHQgV2l0aCBwYWdpbmF0aW9uXG4vLyAgICAqICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBnZXRRdWVyeVJlc3VsdFdpdGhQYWdpbmF0aW9uKHF1ZXJ5LCBsaW1pdCwgc2tpcClcbi8vICAgICogICBlbHNlIFdpdGhvdXQgcGFnaW5hdGlvblxuLy8gICAgKiAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+U3R1YjogZ2V0UXVlcnlSZXN1bHQocXVlcnkpXG4vLyAgICAqICAgZW5kXG4vLyAgICAqICAgU3R1Yi0+PlN0YXRlREI6IEV4ZWN1dGUgcXVlcnlcbi8vICAgICogICBTdGF0ZURCLS0+PlN0dWI6IEl0ZXJhdG9yXG4vLyAgICAqICAgU3R1Yi0tPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IEl0ZXJhdG9yXG4vLyAgICAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiByZXN1bHRJdGVyYXRvcihsb2csIGl0ZXJhdG9yKVxuLy8gICAgKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0tPj5DYWxsZXI6IHJlc3VsdHNcbi8vICAgICovXG4vLyAgIG92ZXJyaWRlIGFzeW5jIHJhdzxSPihcbi8vICAgICByYXdJbnB1dDogTWFuZ29RdWVyeSxcbi8vICAgICBkb2NzT25seTogYm9vbGVhbixcbi8vICAgICAuLi5hcmdzOiBhbnlbXVxuLy8gICApOiBQcm9taXNlPFI+IHtcbi8vICAgICBjb25zdCB7IHN0dWIsIGxvZ2dlciB9ID0gYXJncy5wb3AoKTtcbi8vICAgICBjb25zdCBsb2cgPSBsb2dnZXIuZm9yKHRoaXMucmF3KTtcbi8vICAgICBjb25zdCB7IHNraXAsIGxpbWl0IH0gPSByYXdJbnB1dDtcbi8vICAgICBjb25zdCBpbnN0YW5jZSA9IGFyZ3Muc2hpZnQoKTtcbi8vICAgICBsZXQgaXRlcmF0b3I6IEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I7XG4vLyAgICAgaWYgKGxpbWl0IHx8IHNraXApIHtcbi8vICAgICAgIGRlbGV0ZSByYXdJbnB1dFtcImxpbWl0XCJdO1xuLy8gICAgICAgZGVsZXRlIHJhd0lucHV0W1wic2tpcFwiXTtcbi8vICAgICAgIGxvZy5kZWJ1Zyhcbi8vICAgICAgICAgYFJldHJpZXZpbmcgcGFnaW5hdGVkIGl0ZXJhdG9yOiBsaW1pdDogJHtsaW1pdH0vIHNraXA6ICR7c2tpcH1gXG4vLyAgICAgICApO1xuLy8gICAgICAgY29uc3QgcmVzcG9uc2U6IFN0YXRlUXVlcnlSZXNwb25zZTxJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yPiA9XG4vLyAgICAgICAgIChhd2FpdCB0aGlzLnF1ZXJ5UmVzdWx0UGFnaW5hdGVkKFxuLy8gICAgICAgICAgIHN0dWIsXG4vLyAgICAgICAgICAgcmF3SW5wdXQsXG4vLyAgICAgICAgICAgbGltaXQgfHwgMjUwLFxuLy8gICAgICAgICAgIChza2lwIGFzIGFueSk/LnRvU3RyaW5nKCksXG4vLyAgICAgICAgICAgaW5zdGFuY2Vcbi8vICAgICAgICAgKSkgYXMgU3RhdGVRdWVyeVJlc3BvbnNlPEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I+O1xuLy8gICAgICAgaXRlcmF0b3IgPSByZXNwb25zZS5pdGVyYXRvcjtcbi8vICAgICB9IGVsc2Uge1xuLy8gICAgICAgbG9nLmRlYnVnKFwiUmV0cmlldmluZyBpdGVyYXRvclwiKTtcbi8vICAgICAgIGl0ZXJhdG9yID0gKGF3YWl0IHRoaXMucXVlcnlSZXN1bHQoXG4vLyAgICAgICAgIHN0dWIsXG4vLyAgICAgICAgIHJhd0lucHV0LFxuLy8gICAgICAgICBpbnN0YW5jZVxuLy8gICAgICAgKSkgYXMgSXRlcmF0b3JzLlN0YXRlUXVlcnlJdGVyYXRvcjtcbi8vICAgICB9XG4vLyAgICAgbG9nLmRlYnVnKFwiSXRlcmF0b3IgYWNxdWlyZWRcIik7XG4vL1xuLy8gICAgIGNvbnN0IHJlc3VsdHMgPSAoYXdhaXQgdGhpcy5yZXN1bHRJdGVyYXRvcihsb2csIGl0ZXJhdG9yKSkgYXMgUjtcbi8vICAgICBsb2cuZGVidWcoXG4vLyAgICAgICBgcmV0dXJuaW5nIHswfSByZXN1bHRzYCxcbi8vICAgICAgIGAke0FycmF5LmlzQXJyYXkocmVzdWx0cykgPyByZXN1bHRzLmxlbmd0aCA6IDF9YFxuLy8gICAgICk7XG4vLyAgICAgcmV0dXJuIHJlc3VsdHM7XG4vLyAgIH1cbi8vIH1cbiJdfQ==
426
+ //# sourceMappingURL=ContractPrivateDataAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContractPrivateDataAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractPrivateDataAdapter.ts"],"names":[],"mappings":"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"}
@@ -438,4 +438,4 @@ async function populate(context, data, key, model) {
438
438
  const res = await fetchPopulateValues(context, model, key, isArr ? nested : [nested], this.adapter.alias);
439
439
  model[key] = isArr ? res : res[0];
440
440
  }
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29uc3RydWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9GYWJyaWNDb25zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpRUEsNENBcUNDO0FBaURELDRDQXlDQztBQTJDRCw0Q0FrQ0M7QUF3REQsOENBd0NDO0FBa0RELDhDQXNDQztBQXdERCw0QkFvREM7QUFqakJELHlDQVN3QjtBQUN4Qix5RUFBdUQ7QUFDdkQsMkRBQTZFO0FBSTdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaURHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQU1wQyxPQUE4QixFQUM5QixJQUFPLEVBQ1AsR0FBWSxFQUNaLEtBQVE7SUFFUixNQUFNLGFBQWEsR0FBUSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLGFBQWE7UUFBRSxPQUFPO0lBRTNCLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBQSxpQ0FBMEIsRUFDMUMsS0FBSyxFQUNMLEdBQUcsRUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDbkIsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUQsTUFBTSxJQUFBLDRCQUFxQixFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxLQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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dCI6WyJpbXBvcnQge1xuICBjYWNoZU1vZGVsRm9yUG9wdWxhdGUsXG4gIENhc2NhZGUsXG4gIGNyZWF0ZU9yVXBkYXRlLFxuICBnZXRQb3B1bGF0ZUtleSxcbiAgUmVsYXRpb25zTWV0YWRhdGEsXG4gIFJlcG8sXG4gIFJlcG9zaXRvcnksXG4gIHJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29udGV4dE9mUmVwb3NpdG9yeSwgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5IH0gZnJvbSBcIi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdENvbnRleHQgfSBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBvbmUtdG8tb25lIHJlbGF0aW9uc2hpcCBjcmVhdGlvblxuICogQHN1bW1hcnkgUHJvY2Vzc2VzIGEgb25lLXRvLW9uZSByZWxhdGlvbnNoaXAgd2hlbiBjcmVhdGluZyBhIG1vZGVsLCBlaXRoZXIgYnkgcmVmZXJlbmNpbmcgYW4gZXhpc3RpbmcgbW9kZWwgb3IgY3JlYXRpbmcgYSBuZXcgb25lXG4gKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGV4dGVuZGluZyBNb2RlbFxuICogQHRlbXBsYXRlIFIgLSBUaGUgcmVwb3NpdG9yeSB0eXBlIGV4dGVuZGluZyBSZXBvPE0sIEYsIEM+XG4gKiBAdGVtcGxhdGUgViAtIFRoZSByZWxhdGlvbnMgbWV0YWRhdGEgdHlwZSBleHRlbmRpbmcgUmVsYXRpb25zTWV0YWRhdGFcbiAqIEB0ZW1wbGF0ZSBGIC0gVGhlIHJlcG9zaXRvcnkgZmxhZ3MgdHlwZVxuICogQHRlbXBsYXRlIEMgLSBUaGUgY29udGV4dCB0eXBlIGV4dGVuZGluZyBDb250ZXh0PEY+XG4gKiBAcGFyYW0ge1J9IHRoaXMgLSBUaGUgcmVwb3NpdG9yeSBpbnN0YW5jZVxuICogQHBhcmFtIHtDb250ZXh0PEY+fSBjb250ZXh0IC0gVGhlIGNvbnRleHQgZm9yIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSB7Vn0gZGF0YSAtIFRoZSByZWxhdGlvbnMgbWV0YWRhdGFcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgcHJvcGVydHkga2V5IG9mIHRoZSByZWxhdGlvbnNoaXBcbiAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2VcbiAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZVxuICogQGZ1bmN0aW9uIG9uZVRvT25lT25DcmVhdGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgb25lVG9PbmVPbkNyZWF0ZVxuICogICBwYXJ0aWNpcGFudCByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCBSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IGNhY2hlTW9kZWxGb3JQb3B1bGF0ZVxuICpcbiAqICAgQ2FsbGVyLT4+b25lVG9PbmVPbkNyZWF0ZTogdGhpcywgY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbFxuICogICBvbmVUb09uZU9uQ3JlYXRlLT4+b25lVG9PbmVPbkNyZWF0ZTogY2hlY2sgaWYgcHJvcGVydHlWYWx1ZSBleGlzdHNcbiAqXG4gKiAgIGFsdCBwcm9wZXJ0eVZhbHVlIGlzIG5vdCBhbiBvYmplY3RcbiAqICAgICBvbmVUb09uZU9uQ3JlYXRlLT4+cmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGE6IG1vZGVsLCBrZXlcbiAqICAgICByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YS0tPj5vbmVUb09uZU9uQ3JlYXRlOiBpbm5lclJlcG9cbiAqICAgICBvbmVUb09uZU9uQ3JlYXRlLT4+aW5uZXJSZXBvOiByZWFkKHByb3BlcnR5VmFsdWUpXG4gKiAgICAgaW5uZXJSZXBvLS0+Pm9uZVRvT25lT25DcmVhdGU6IHJlYWRcbiAqICAgICBvbmVUb09uZU9uQ3JlYXRlLT4+Y2FjaGVNb2RlbEZvclBvcHVsYXRlOiBjb250ZXh0LCBtb2RlbCwga2V5LCBwcm9wZXJ0eVZhbHVlLCByZWFkXG4gKiAgICAgb25lVG9PbmVPbkNyZWF0ZS0+Pm9uZVRvT25lT25DcmVhdGU6IHNldCBtb2RlbFtrZXldID0gcHJvcGVydHlWYWx1ZVxuICogICBlbHNlIHByb3BlcnR5VmFsdWUgaXMgYW4gb2JqZWN0XG4gKiAgICAgb25lVG9PbmVPbkNyZWF0ZS0+Pk1vZGVsOiBnZXQoZGF0YS5jbGFzcylcbiAqICAgICBNb2RlbC0tPj5vbmVUb09uZU9uQ3JlYXRlOiBjb25zdHJ1Y3RvclxuICogICAgIG9uZVRvT25lT25DcmVhdGUtPj5SZXBvc2l0b3J5OiBmb3JNb2RlbChjb25zdHJ1Y3RvcilcbiAqICAgICBSZXBvc2l0b3J5LS0+Pm9uZVRvT25lT25DcmVhdGU6IHJlcG9cbiAqICAgICBvbmVUb09uZU9uQ3JlYXRlLT4+cmVwbzogY3JlYXRlKHByb3BlcnR5VmFsdWUpXG4gKiAgICAgcmVwby0tPj5vbmVUb09uZU9uQ3JlYXRlOiBjcmVhdGVkXG4gKiAgICAgb25lVG9PbmVPbkNyZWF0ZS0+PmZpbmRQcmltYXJ5S2V5OiBjcmVhdGVkXG4gKiAgICAgZmluZFByaW1hcnlLZXktLT4+b25lVG9PbmVPbkNyZWF0ZTogcGtcbiAqICAgICBvbmVUb09uZU9uQ3JlYXRlLT4+Y2FjaGVNb2RlbEZvclBvcHVsYXRlOiBjb250ZXh0LCBtb2RlbCwga2V5LCBjcmVhdGVkW3BrXSwgY3JlYXRlZFxuICogICAgIG9uZVRvT25lT25DcmVhdGUtPj5vbmVUb09uZU9uQ3JlYXRlOiBzZXQgbW9kZWxba2V5XSA9IGNyZWF0ZWRbcGtdXG4gKiAgIGVuZFxuICpcbiAqICAgb25lVG9PbmVPbkNyZWF0ZS0tPj5DYWxsZXI6IHZvaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uZVRvT25lT25DcmVhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxNPixcbiAgViBleHRlbmRzIFJlbGF0aW9uc01ldGFkYXRhLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJvcGVydHlWYWx1ZTogYW55ID0gbW9kZWxba2V5XTtcbiAgaWYgKCFwcm9wZXJ0eVZhbHVlKSByZXR1cm47XG5cbiAgaWYgKHR5cGVvZiBwcm9wZXJ0eVZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgaW5uZXJSZXBvID0gcmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGEoXG4gICAgICBtb2RlbCxcbiAgICAgIGtleSxcbiAgICAgIHRoaXMuYWRhcHRlci5hbGlhc1xuICAgICk7XG4gICAgY29uc3QgcmVhZCA9IGF3YWl0IGlubmVyUmVwby5yZWFkKHByb3BlcnR5VmFsdWUsIGNvbnRleHQpO1xuICAgIGF3YWl0IGNhY2hlTW9kZWxGb3JQb3B1bGF0ZShjb250ZXh0LCBtb2RlbCwga2V5LCBwcm9wZXJ0eVZhbHVlLCByZWFkKTtcbiAgICAobW9kZWwgYXMgYW55KVtrZXldID0gcHJvcGVydHlWYWx1ZTtcbiAgICByZXR1cm47XG4gIH1cblxuICBkYXRhLmNsYXNzID1cbiAgICB0eXBlb2YgZGF0YS5jbGFzcyA9PT0gXCJzdHJpbmdcIiA/IGRhdGEuY2xhc3MgOiAoZGF0YS5jbGFzcyBhcyBhbnkpKCkubmFtZTtcblxuICBjb25zdCBjb25zdHJ1Y3RvciA9IE1vZGVsLmdldChkYXRhLmNsYXNzIGFzIHVua25vd24gYXMgc3RyaW5nKTtcbiAgaWYgKCFjb25zdHJ1Y3RvcilcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgQ291bGQgbm90IGZpbmQgbW9kZWwgJHtkYXRhLmNsYXNzfWApO1xuICBjb25zdCByZXBvOiBSZXBvPGFueT4gPSBSZXBvc2l0b3J5LmZvck1vZGVsKGNvbnN0cnVjdG9yLCB0aGlzLmFkYXB0ZXIuYWxpYXMpO1xuICBjb25zdCBjcmVhdGVkID0gYXdhaXQgcmVwby5jcmVhdGUocHJvcGVydHlWYWx1ZSwgY29udGV4dCk7XG4gIGNvbnN0IHBrID0gTW9kZWwucGsoY3JlYXRlZCk7XG4gIGF3YWl0IGNhY2hlTW9kZWxGb3JQb3B1bGF0ZShjb250ZXh0LCBtb2RlbCwga2V5LCBjcmVhdGVkW3BrXSwgY3JlYXRlZCk7XG4gIChtb2RlbCBhcyBhbnkpW2tleV0gPSBjcmVhdGVkW3BrXTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBvbmUtdG8tb25lIHJlbGF0aW9uc2hpcCB1cGRhdGVzXG4gKiBAc3VtbWFyeSBQcm9jZXNzZXMgYSBvbmUtdG8tb25lIHJlbGF0aW9uc2hpcCB3aGVuIHVwZGF0aW5nIGEgbW9kZWwsIGVpdGhlciBieSByZWZlcmVuY2luZyBhbiBleGlzdGluZyBtb2RlbCBvciB1cGRhdGluZyB0aGUgcmVsYXRlZCBtb2RlbFxuICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHJlcG9zaXRvcnkgdHlwZSBleHRlbmRpbmcgUmVwbzxNLCBGLCBDPlxuICogQHRlbXBsYXRlIFYgLSBUaGUgcmVsYXRpb25zIG1ldGFkYXRhIHR5cGUgZXh0ZW5kaW5nIFJlbGF0aW9uc01ldGFkYXRhXG4gKiBAdGVtcGxhdGUgRiAtIFRoZSByZXBvc2l0b3J5IGZsYWdzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBDIC0gVGhlIGNvbnRleHQgdHlwZSBleHRlbmRpbmcgQ29udGV4dDxGPlxuICogQHBhcmFtIHtSfSB0aGlzIC0gVGhlIHJlcG9zaXRvcnkgaW5zdGFuY2VcbiAqIEBwYXJhbSB7Q29udGV4dDxGPn0gY29udGV4dCAtIFRoZSBjb250ZXh0IGZvciB0aGUgb3BlcmF0aW9uXG4gKiBAcGFyYW0ge1Z9IGRhdGEgLSBUaGUgcmVsYXRpb25zIG1ldGFkYXRhXG4gKiBAcGFyYW0ga2V5IC0gVGhlIHByb3BlcnR5IGtleSBvZiB0aGUgcmVsYXRpb25zaGlwXG4gKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAqIEBmdW5jdGlvbiBvbmVUb09uZU9uVXBkYXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IG9uZVRvT25lT25VcGRhdGVcbiAqICAgcGFydGljaXBhbnQgcmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGFcbiAqICAgcGFydGljaXBhbnQgY3JlYXRlT3JVcGRhdGVcbiAqICAgcGFydGljaXBhbnQgZmluZFByaW1hcnlLZXlcbiAqICAgcGFydGljaXBhbnQgY2FjaGVNb2RlbEZvclBvcHVsYXRlXG4gKlxuICogICBDYWxsZXItPj5vbmVUb09uZU9uVXBkYXRlOiB0aGlzLCBjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsXG4gKiAgIG9uZVRvT25lT25VcGRhdGUtPj5vbmVUb09uZU9uVXBkYXRlOiBjaGVjayBpZiBwcm9wZXJ0eVZhbHVlIGV4aXN0c1xuICogICBvbmVUb09uZU9uVXBkYXRlLT4+b25lVG9PbmVPblVwZGF0ZTogY2hlY2sgaWYgY2FzY2FkZS51cGRhdGUgaXMgQ0FTQ0FERVxuICpcbiAqICAgYWx0IHByb3BlcnR5VmFsdWUgaXMgbm90IGFuIG9iamVjdFxuICogICAgIG9uZVRvT25lT25VcGRhdGUtPj5yZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YTogbW9kZWwsIGtleVxuICogICAgIHJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhLS0+Pm9uZVRvT25lT25VcGRhdGU6IGlubmVyUmVwb1xuICogICAgIG9uZVRvT25lT25VcGRhdGUtPj5pbm5lclJlcG86IHJlYWQocHJvcGVydHlWYWx1ZSlcbiAqICAgICBpbm5lclJlcG8tLT4+b25lVG9PbmVPblVwZGF0ZTogcmVhZFxuICogICAgIG9uZVRvT25lT25VcGRhdGUtPj5jYWNoZU1vZGVsRm9yUG9wdWxhdGU6IGNvbnRleHQsIG1vZGVsLCBrZXksIHByb3BlcnR5VmFsdWUsIHJlYWRcbiAqICAgICBvbmVUb09uZU9uVXBkYXRlLT4+b25lVG9PbmVPblVwZGF0ZTogc2V0IG1vZGVsW2tleV0gPSBwcm9wZXJ0eVZhbHVlXG4gKiAgIGVsc2UgcHJvcGVydHlWYWx1ZSBpcyBhbiBvYmplY3RcbiAqICAgICBvbmVUb09uZU9uVXBkYXRlLT4+Y3JlYXRlT3JVcGRhdGU6IG1vZGVsW2tleV0sIGNvbnRleHRcbiAqICAgICBjcmVhdGVPclVwZGF0ZS0tPj5vbmVUb09uZU9uVXBkYXRlOiB1cGRhdGVkXG4gKiAgICAgb25lVG9PbmVPblVwZGF0ZS0+PmZpbmRQcmltYXJ5S2V5OiB1cGRhdGVkXG4gKiAgICAgZmluZFByaW1hcnlLZXktLT4+b25lVG9PbmVPblVwZGF0ZTogcGtcbiAqICAgICBvbmVUb09uZU9uVXBkYXRlLT4+Y2FjaGVNb2RlbEZvclBvcHVsYXRlOiBjb250ZXh0LCBtb2RlbCwga2V5LCB1cGRhdGVkW3BrXSwgdXBkYXRlZFxuICogICAgIG9uZVRvT25lT25VcGRhdGUtPj5vbmVUb09uZU9uVXBkYXRlOiBzZXQgbW9kZWxba2V5XSA9IHVwZGF0ZWRbcGtdXG4gKiAgIGVuZFxuICpcbiAqICAgb25lVG9PbmVPblVwZGF0ZS0tPj5DYWxsZXI6IHZvaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uZVRvT25lT25VcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxNPixcbiAgViBleHRlbmRzIFJlbGF0aW9uc01ldGFkYXRhLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJvcGVydHlWYWx1ZTogYW55ID0gbW9kZWxba2V5XTtcbiAgaWYgKCFwcm9wZXJ0eVZhbHVlKSByZXR1cm47XG4gIGlmIChkYXRhLmNhc2NhZGUudXBkYXRlICE9PSBDYXNjYWRlLkNBU0NBREUpIHJldHVybjtcblxuICBpZiAodHlwZW9mIHByb3BlcnR5VmFsdWUgIT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBpbm5lclJlcG8gPSByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YShcbiAgICAgIG1vZGVsLFxuICAgICAga2V5LFxuICAgICAgdGhpcy5hZGFwdGVyLmFsaWFzXG4gICAgKTtcbiAgICBjb25zdCByZWFkID0gYXdhaXQgaW5uZXJSZXBvLnJlYWQocHJvcGVydHlWYWx1ZSwgY29udGV4dCk7XG4gICAgYXdhaXQgY2FjaGVNb2RlbEZvclBvcHVsYXRlKGNvbnRleHQsIG1vZGVsLCBrZXksIHByb3BlcnR5VmFsdWUsIHJlYWQpO1xuICAgIChtb2RlbCBhcyBhbnkpW2tleV0gPSBwcm9wZXJ0eVZhbHVlO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWQ6IGFueSA9IGF3YWl0IGNyZWF0ZU9yVXBkYXRlKFxuICAgIG1vZGVsW2tleV0gYXMgTSxcbiAgICBjb250ZXh0LFxuICAgIHRoaXMuYWRhcHRlci5hbGlhc1xuICApO1xuICBjb25zdCBwayA9IE1vZGVsLnBrKHVwZGF0ZWQpO1xuICBhd2FpdCBjYWNoZU1vZGVsRm9yUG9wdWxhdGUoXG4gICAgY29udGV4dCxcbiAgICBtb2RlbCxcbiAgICBrZXksXG4gICAgdXBkYXRlZFtwa10gYXMgc3RyaW5nLFxuICAgIHVwZGF0ZWRcbiAgKTtcbiAgbW9kZWxba2V5XSA9IHVwZGF0ZWRbcGtdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIG9uZS10by1vbmUgcmVsYXRpb25zaGlwIGRlbGV0aW9uXG4gKiBAc3VtbWFyeSBQcm9jZXNzZXMgYSBvbmUtdG8tb25lIHJlbGF0aW9uc2hpcCB3aGVuIGRlbGV0aW5nIGEgbW9kZWwsIGRlbGV0aW5nIHRoZSByZWxhdGVkIG1vZGVsIGlmIGNhc2NhZGUgaXMgZW5hYmxlZFxuICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHJlcG9zaXRvcnkgdHlwZSBleHRlbmRpbmcgUmVwbzxNLCBGLCBDPlxuICogQHRlbXBsYXRlIFYgLSBUaGUgcmVsYXRpb25zIG1ldGFkYXRhIHR5cGUgZXh0ZW5kaW5nIFJlbGF0aW9uc01ldGFkYXRhXG4gKiBAdGVtcGxhdGUgRiAtIFRoZSByZXBvc2l0b3J5IGZsYWdzIHR5cGVcbiAqIEB0ZW1wbGF0ZSBDIC0gVGhlIGNvbnRleHQgdHlwZSBleHRlbmRpbmcgQ29udGV4dDxGPlxuICogQHBhcmFtIHtSfSB0aGlzIC0gVGhlIHJlcG9zaXRvcnkgaW5zdGFuY2VcbiAqIEBwYXJhbSB7Q29udGV4dDxGPn0gY29udGV4dCAtIFRoZSBjb250ZXh0IGZvciB0aGUgb3BlcmF0aW9uXG4gKiBAcGFyYW0ge1Z9IGRhdGEgLSBUaGUgcmVsYXRpb25zIG1ldGFkYXRhXG4gKiBAcGFyYW0ga2V5IC0gVGhlIHByb3BlcnR5IGtleSBvZiB0aGUgcmVsYXRpb25zaGlwXG4gKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlXG4gKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGVcbiAqIEBmdW5jdGlvbiBvbmVUb09uZU9uRGVsZXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IG9uZVRvT25lT25EZWxldGVcbiAqICAgcGFydGljaXBhbnQgcmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGFcbiAqICAgcGFydGljaXBhbnQgY2FjaGVNb2RlbEZvclBvcHVsYXRlXG4gKlxuICogICBDYWxsZXItPj5vbmVUb09uZU9uRGVsZXRlOiB0aGlzLCBjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsXG4gKiAgIG9uZVRvT25lT25EZWxldGUtPj5vbmVUb09uZU9uRGVsZXRlOiBjaGVjayBpZiBwcm9wZXJ0eVZhbHVlIGV4aXN0c1xuICogICBvbmVUb09uZU9uRGVsZXRlLT4+b25lVG9PbmVPbkRlbGV0ZTogY2hlY2sgaWYgY2FzY2FkZS51cGRhdGUgaXMgQ0FTQ0FERVxuICpcbiAqICAgb25lVG9PbmVPbkRlbGV0ZS0+PnJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhOiBtb2RlbCwga2V5XG4gKiAgIHJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhLS0+Pm9uZVRvT25lT25EZWxldGU6IGlubmVyUmVwb1xuICpcbiAqICAgYWx0IHByb3BlcnR5VmFsdWUgaXMgbm90IGEgTW9kZWwgaW5zdGFuY2VcbiAqICAgICBvbmVUb09uZU9uRGVsZXRlLT4+aW5uZXJSZXBvOiBkZWxldGUobW9kZWxba2V5XSwgY29udGV4dClcbiAqICAgICBpbm5lclJlcG8tLT4+b25lVG9PbmVPbkRlbGV0ZTogZGVsZXRlZFxuICogICBlbHNlIHByb3BlcnR5VmFsdWUgaXMgYSBNb2RlbCBpbnN0YW5jZVxuICogICAgIG9uZVRvT25lT25EZWxldGUtPj5pbm5lclJlcG86IGRlbGV0ZShtb2RlbFtrZXldW2lubmVyUmVwby5wa10sIGNvbnRleHQpXG4gKiAgICAgaW5uZXJSZXBvLS0+Pm9uZVRvT25lT25EZWxldGU6IGRlbGV0ZWRcbiAqICAgZW5kXG4gKlxuICogICBvbmVUb09uZU9uRGVsZXRlLT4+Y2FjaGVNb2RlbEZvclBvcHVsYXRlOiBjb250ZXh0LCBtb2RlbCwga2V5LCBkZWxldGVkW2lubmVyUmVwby5wa10sIGRlbGV0ZWRcbiAqICAgb25lVG9PbmVPbkRlbGV0ZS0tPj5DYWxsZXI6IHZvaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uZVRvT25lT25EZWxldGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxNPixcbiAgViBleHRlbmRzIFJlbGF0aW9uc01ldGFkYXRhLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcHJvcGVydHlWYWx1ZTogYW55ID0gbW9kZWxba2V5XTtcbiAgaWYgKCFwcm9wZXJ0eVZhbHVlKSByZXR1cm47XG4gIGlmIChkYXRhLmNhc2NhZGUudXBkYXRlICE9PSBDYXNjYWRlLkNBU0NBREUpIHJldHVybjtcbiAgY29uc3QgaW5uZXJSZXBvOiBSZXBvPE0+ID0gcmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGEoXG4gICAgbW9kZWwsXG4gICAga2V5LFxuICAgIHRoaXMuYWRhcHRlci5hbGlhc1xuICApO1xuICBsZXQgZGVsZXRlZDogTTtcbiAgaWYgKCEocHJvcGVydHlWYWx1ZSBpbnN0YW5jZW9mIE1vZGVsKSlcbiAgICBkZWxldGVkID0gYXdhaXQgaW5uZXJSZXBvLmRlbGV0ZShtb2RlbFtrZXldIGFzIHN0cmluZywgY29udGV4dCk7XG4gIGVsc2VcbiAgICBkZWxldGVkID0gYXdhaXQgaW5uZXJSZXBvLmRlbGV0ZShcbiAgICAgIChtb2RlbFtrZXldIGFzIE0pW01vZGVsLnBrKGlubmVyUmVwby5jbGFzcykgYXMga2V5b2YgTV0gYXMgc3RyaW5nLFxuICAgICAgY29udGV4dFxuICAgICk7XG4gIGF3YWl0IGNhY2hlTW9kZWxGb3JQb3B1bGF0ZShcbiAgICBjb250ZXh0LFxuICAgIG1vZGVsLFxuICAgIGtleSxcbiAgICBkZWxldGVkW01vZGVsLnBrKGlubmVyUmVwby5jbGFzcyldIGFzIHN0cmluZyxcbiAgICBkZWxldGVkXG4gICk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwIGNyZWF0aW9uXG4gKiBAc3VtbWFyeSBQcm9jZXNzZXMgYSBvbmUtdG8tbWFueSByZWxhdGlvbnNoaXAgd2hlbiBjcmVhdGluZyBhIG1vZGVsLCBlaXRoZXIgYnkgcmVmZXJlbmNpbmcgZXhpc3RpbmcgbW9kZWxzIG9yIGNyZWF0aW5nIG5ldyBvbmVzXG4gKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGV4dGVuZGluZyBNb2RlbFxuICogQHRlbXBsYXRlIFIgLSBUaGUgcmVwb3NpdG9yeSB0eXBlIGV4dGVuZGluZyBSZXBvPE0sIEYsIEM+XG4gKiBAdGVtcGxhdGUgViAtIFRoZSByZWxhdGlvbnMgbWV0YWRhdGEgdHlwZSBleHRlbmRpbmcgUmVsYXRpb25zTWV0YWRhdGFcbiAqIEB0ZW1wbGF0ZSBGIC0gVGhlIHJlcG9zaXRvcnkgZmxhZ3MgdHlwZVxuICogQHRlbXBsYXRlIEMgLSBUaGUgY29udGV4dCB0eXBlIGV4dGVuZGluZyBDb250ZXh0PEY+XG4gKiBAcGFyYW0ge1J9IHRoaXMgLSBUaGUgcmVwb3NpdG9yeSBpbnN0YW5jZVxuICogQHBhcmFtIHtDb250ZXh0PEY+fSBjb250ZXh0IC0gVGhlIGNvbnRleHQgZm9yIHRoZSBvcGVyYXRpb25cbiAqIEBwYXJhbSB7Vn0gZGF0YSAtIFRoZSByZWxhdGlvbnMgbWV0YWRhdGFcbiAqIEBwYXJhbSBrZXkgLSBUaGUgcHJvcGVydHkga2V5IG9mIHRoZSByZWxhdGlvbnNoaXBcbiAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2VcbiAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZVxuICogQGZ1bmN0aW9uIG9uZVRvTWFueU9uQ3JlYXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IG9uZVRvTWFueU9uQ3JlYXRlXG4gKiAgIHBhcnRpY2lwYW50IHJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhXG4gKiAgIHBhcnRpY2lwYW50IGNyZWF0ZU9yVXBkYXRlXG4gKiAgIHBhcnRpY2lwYW50IGZpbmRQcmltYXJ5S2V5XG4gKiAgIHBhcnRpY2lwYW50IGNhY2hlTW9kZWxGb3JQb3B1bGF0ZVxuICpcbiAqICAgQ2FsbGVyLT4+b25lVG9NYW55T25DcmVhdGU6IHRoaXMsIGNvbnRleHQsIGRhdGEsIGtleSwgbW9kZWxcbiAqICAgb25lVG9NYW55T25DcmVhdGUtPj5vbmVUb01hbnlPbkNyZWF0ZTogY2hlY2sgaWYgcHJvcGVydHlWYWx1ZXMgZXhpc3RzIGFuZCBoYXMgbGVuZ3RoXG4gKiAgIG9uZVRvTWFueU9uQ3JlYXRlLT4+b25lVG9NYW55T25DcmVhdGU6IGNoZWNrIGlmIGFsbCBlbGVtZW50cyBoYXZlIHNhbWUgdHlwZVxuICogICBvbmVUb01hbnlPbkNyZWF0ZS0+Pm9uZVRvTWFueU9uQ3JlYXRlOiBjcmVhdGUgdW5pcXVlVmFsdWVzIHNldFxuICpcbiAqICAgYWx0IGFycmF5VHlwZSBpcyBub3QgXCJvYmplY3RcIlxuICogICAgIG9uZVRvTWFueU9uQ3JlYXRlLT4+cmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGE6IG1vZGVsLCBrZXlcbiAqICAgICByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YS0tPj5vbmVUb01hbnlPbkNyZWF0ZTogcmVwb1xuICogICAgIGxvb3AgZm9yIGVhY2ggaWQgaW4gdW5pcXVlVmFsdWVzXG4gKiAgICAgICBvbmVUb01hbnlPbkNyZWF0ZS0+PnJlcG86IHJlYWQoaWQpXG4gKiAgICAgICByZXBvLS0+Pm9uZVRvTWFueU9uQ3JlYXRlOiByZWFkXG4gKiAgICAgICBvbmVUb01hbnlPbkNyZWF0ZS0+PmNhY2hlTW9kZWxGb3JQb3B1bGF0ZTogY29udGV4dCwgbW9kZWwsIGtleSwgaWQsIHJlYWRcbiAqICAgICBlbmRcbiAqICAgICBvbmVUb01hbnlPbkNyZWF0ZS0+Pm9uZVRvTWFueU9uQ3JlYXRlOiBzZXQgbW9kZWxba2V5XSA9IFsuLi51bmlxdWVWYWx1ZXNdXG4gKiAgIGVsc2UgYXJyYXlUeXBlIGlzIFwib2JqZWN0XCJcbiAqICAgICBvbmVUb01hbnlPbkNyZWF0ZS0+PmZpbmRQcmltYXJ5S2V5OiBwcm9wZXJ0eVZhbHVlc1swXVxuICogICAgIGZpbmRQcmltYXJ5S2V5LS0+Pm9uZVRvTWFueU9uQ3JlYXRlOiBwa05hbWVcbiAqICAgICBvbmVUb01hbnlPbkNyZWF0ZS0+Pm9uZVRvTWFueU9uQ3JlYXRlOiBjcmVhdGUgcmVzdWx0IHNldFxuICogICAgIGxvb3AgZm9yIGVhY2ggbSBpbiBwcm9wZXJ0eVZhbHVlc1xuICogICAgICAgb25lVG9NYW55T25DcmVhdGUtPj5jcmVhdGVPclVwZGF0ZTogbSwgY29udGV4dFxuICogICAgICAgY3JlYXRlT3JVcGRhdGUtLT4+b25lVG9NYW55T25DcmVhdGU6IHJlY29yZFxuICogICAgICAgb25lVG9NYW55T25DcmVhdGUtPj5jYWNoZU1vZGVsRm9yUG9wdWxhdGU6IGNvbnRleHQsIG1vZGVsLCBrZXksIHJlY29yZFtwa05hbWVdLCByZWNvcmRcbiAqICAgICAgIG9uZVRvTWFueU9uQ3JlYXRlLT4+b25lVG9NYW55T25DcmVhdGU6IGFkZCByZWNvcmRbcGtOYW1lXSB0byByZXN1bHRcbiAqICAgICBlbmRcbiAqICAgICBvbmVUb01hbnlPbkNyZWF0ZS0+Pm9uZVRvTWFueU9uQ3JlYXRlOiBzZXQgbW9kZWxba2V5XSA9IFsuLi5yZXN1bHRdXG4gKiAgIGVuZFxuICpcbiAqICAgb25lVG9NYW55T25DcmVhdGUtLT4+Q2FsbGVyOiB2b2lkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvbmVUb01hbnlPbkNyZWF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5PE0+LFxuICBWIGV4dGVuZHMgUmVsYXRpb25zTWV0YWRhdGEsXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwcm9wZXJ0eVZhbHVlczogYW55ID0gbW9kZWxba2V5XTtcbiAgaWYgKCFwcm9wZXJ0eVZhbHVlcyB8fCAhcHJvcGVydHlWYWx1ZXMubGVuZ3RoKSByZXR1cm47XG4gIGNvbnN0IGFycmF5VHlwZSA9IHR5cGVvZiBwcm9wZXJ0eVZhbHVlc1swXTtcbiAgaWYgKCFwcm9wZXJ0eVZhbHVlcy5ldmVyeSgoaXRlbTogYW55KSA9PiB0eXBlb2YgaXRlbSA9PT0gYXJyYXlUeXBlKSlcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBJbnZhbGlkIG9wZXJhdGlvbi4gQWxsIGVsZW1lbnRzIG9mIHByb3BlcnR5ICR7a2V5IGFzIHN0cmluZ30gbXVzdCBtYXRjaCB0aGUgc2FtZSB0eXBlLmBcbiAgICApO1xuICBjb25zdCB1bmlxdWVWYWx1ZXMgPSBuZXcgU2V0KFsuLi5wcm9wZXJ0eVZhbHVlc10pO1xuICBpZiAoYXJyYXlUeXBlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcmVwbyA9IHJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhKG1vZGVsLCBrZXksIHRoaXMuYWRhcHRlci5hbGlhcyk7XG4gICAgZm9yIChjb25zdCBpZCBvZiB1bmlxdWVWYWx1ZXMpIHtcbiAgICAgIGNvbnN0IHJlYWQgPSBhd2FpdCByZXBvLnJlYWQoaWQsIGNvbnRleHQpO1xuICAgICAgYXdhaXQgY2FjaGVNb2RlbEZvclBvcHVsYXRlKGNvbnRleHQsIG1vZGVsLCBrZXksIGlkLCByZWFkKTtcbiAgICB9XG4gICAgKG1vZGVsIGFzIGFueSlba2V5XSA9IFsuLi51bmlxdWVWYWx1ZXNdO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBrTmFtZSA9IE1vZGVsLnBrKHByb3BlcnR5VmFsdWVzWzBdKTtcblxuICBjb25zdCByZXN1bHQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIGZvciAoY29uc3QgbSBvZiBwcm9wZXJ0eVZhbHVlcykge1xuICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IGNyZWF0ZU9yVXBkYXRlKG0sIGNvbnRleHQsIHRoaXMuYWRhcHRlci5hbGlhcyk7XG4gICAgYXdhaXQgY2FjaGVNb2RlbEZvclBvcHVsYXRlKGNvbnRleHQsIG1vZGVsLCBrZXksIHJlY29yZFtwa05hbWVdLCByZWNvcmQpO1xuICAgIHJlc3VsdC5hZGQocmVjb3JkW3BrTmFtZV0pO1xuICB9XG5cbiAgKG1vZGVsIGFzIGFueSlba2V5XSA9IFsuLi5yZXN1bHRdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcCBkZWxldGlvblxuICogQHN1bW1hcnkgUHJvY2Vzc2VzIGEgb25lLXRvLW1hbnkgcmVsYXRpb25zaGlwIHdoZW4gZGVsZXRpbmcgYSBtb2RlbCwgZGVsZXRpbmcgYWxsIHJlbGF0ZWQgbW9kZWxzIGlmIGNhc2NhZGUgZGVsZXRlIGlzIGVuYWJsZWRcbiAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgUiAtIFRoZSByZXBvc2l0b3J5IHR5cGUgZXh0ZW5kaW5nIFJlcG88TSwgRiwgQz5cbiAqIEB0ZW1wbGF0ZSBWIC0gVGhlIHJlbGF0aW9ucyBtZXRhZGF0YSB0eXBlIGV4dGVuZGluZyBSZWxhdGlvbnNNZXRhZGF0YVxuICogQHRlbXBsYXRlIEYgLSBUaGUgcmVwb3NpdG9yeSBmbGFncyB0eXBlXG4gKiBAdGVtcGxhdGUgQyAtIFRoZSBjb250ZXh0IHR5cGUgZXh0ZW5kaW5nIENvbnRleHQ8Rj5cbiAqIEBwYXJhbSB7Un0gdGhpcyAtIFRoZSByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiBAcGFyYW0ge0NvbnRleHQ8Rj59IGNvbnRleHQgLSBUaGUgY29udGV4dCBmb3IgdGhlIG9wZXJhdGlvblxuICogQHBhcmFtIHtWfSBkYXRhIC0gVGhlIHJlbGF0aW9ucyBtZXRhZGF0YVxuICogQHBhcmFtIGtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgb2YgdGhlIHJlbGF0aW9uc2hpcFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZVxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gKiBAZnVuY3Rpb24gb25lVG9NYW55T25EZWxldGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgb25lVG9NYW55T25EZWxldGVcbiAqICAgcGFydGljaXBhbnQgUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YVxuICogICBwYXJ0aWNpcGFudCBjYWNoZU1vZGVsRm9yUG9wdWxhdGVcbiAqXG4gKiAgIENhbGxlci0+Pm9uZVRvTWFueU9uRGVsZXRlOiB0aGlzLCBjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsXG4gKiAgIG9uZVRvTWFueU9uRGVsZXRlLT4+b25lVG9NYW55T25EZWxldGU6IGNoZWNrIGlmIGNhc2NhZGUuZGVsZXRlIGlzIENBU0NBREVcbiAqICAgb25lVG9NYW55T25EZWxldGUtPj5vbmVUb01hbnlPbkRlbGV0ZTogY2hlY2sgaWYgdmFsdWVzIGV4aXN0cyBhbmQgaGFzIGxlbmd0aFxuICogICBvbmVUb01hbnlPbkRlbGV0ZS0+Pm9uZVRvTWFueU9uRGVsZXRlOiBjaGVjayBpZiBhbGwgZWxlbWVudHMgaGF2ZSBzYW1lIHR5cGVcbiAqXG4gKiAgIGFsdCBpc0luc3RhbnRpYXRlZCAoYXJyYXlUeXBlIGlzIFwib2JqZWN0XCIpXG4gKiAgICAgb25lVG9NYW55T25EZWxldGUtPj5SZXBvc2l0b3J5OiBmb3JNb2RlbCh2YWx1ZXNbMF0pXG4gKiAgICAgUmVwb3NpdG9yeS0tPj5vbmVUb01hbnlPbkRlbGV0ZTogcmVwb1xuICogICBlbHNlIG5vdCBpbnN0YW50aWF0ZWRcbiAqICAgICBvbmVUb01hbnlPbkRlbGV0ZS0+PnJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhOiBtb2RlbCwga2V5XG4gKiAgICAgcmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGEtLT4+b25lVG9NYW55T25EZWxldGU6IHJlcG9cbiAqICAgZW5kXG4gKlxuICogICBvbmVUb01hbnlPbkRlbGV0ZS0+Pm9uZVRvTWFueU9uRGVsZXRlOiBjcmVhdGUgdW5pcXVlVmFsdWVzIHNldFxuICpcbiAqICAgbG9vcCBmb3IgZWFjaCBpZCBpbiB1bmlxdWVWYWx1ZXNcbiAqICAgICBvbmVUb01hbnlPbkRlbGV0ZS0+PnJlcG86IGRlbGV0ZShpZCwgY29udGV4dClcbiAqICAgICByZXBvLS0+Pm9uZVRvTWFueU9uRGVsZXRlOiBkZWxldGVkXG4gKiAgICAgb25lVG9NYW55T25EZWxldGUtPj5jYWNoZU1vZGVsRm9yUG9wdWxhdGU6IGNvbnRleHQsIG1vZGVsLCBrZXksIGlkLCBkZWxldGVkXG4gKiAgIGVuZFxuICpcbiAqICAgb25lVG9NYW55T25EZWxldGUtPj5vbmVUb01hbnlPbkRlbGV0ZTogc2V0IG1vZGVsW2tleV0gPSBbLi4udW5pcXVlVmFsdWVzXVxuICogICBvbmVUb01hbnlPbkRlbGV0ZS0tPj5DYWxsZXI6IHZvaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uZVRvTWFueU9uRGVsZXRlPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8TT4sXG4gIFYgZXh0ZW5kcyBSZWxhdGlvbnNNZXRhZGF0YSxcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChkYXRhLmNhc2NhZGUuZGVsZXRlICE9PSBDYXNjYWRlLkNBU0NBREUpIHJldHVybjtcbiAgY29uc3QgdmFsdWVzID0gbW9kZWxba2V5XSBhcyBhbnk7XG4gIGlmICghdmFsdWVzIHx8ICF2YWx1ZXMubGVuZ3RoKSByZXR1cm47XG4gIGNvbnN0IGFycmF5VHlwZSA9IHR5cGVvZiB2YWx1ZXNbMF07XG4gIGNvbnN0IGFyZUFsbFNhbWVUeXBlID0gdmFsdWVzLmV2ZXJ5KChpdGVtOiBhbnkpID0+IHR5cGVvZiBpdGVtID09PSBhcnJheVR5cGUpO1xuICBpZiAoIWFyZUFsbFNhbWVUeXBlKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYEludmFsaWQgb3BlcmF0aW9uLiBBbGwgZWxlbWVudHMgb2YgcHJvcGVydHkgJHtrZXkgYXMgc3RyaW5nfSBtdXN0IG1hdGNoIHRoZSBzYW1lIHR5cGUuYFxuICAgICk7XG4gIGNvbnN0IGlzSW5zdGFudGlhdGVkID0gYXJyYXlUeXBlID09PSBcIm9iamVjdFwiO1xuICBjb25zdCByZXBvID0gaXNJbnN0YW50aWF0ZWRcbiAgICA/IFJlcG9zaXRvcnkuZm9yTW9kZWwodmFsdWVzWzBdLCB0aGlzLmFkYXB0ZXIuYWxpYXMpXG4gICAgOiByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YShtb2RlbCwga2V5LCB0aGlzLmFkYXB0ZXIuYWxpYXMpO1xuXG4gIGNvbnN0IHVuaXF1ZVZhbHVlcyA9IG5ldyBTZXQoW1xuICAgIC4uLihpc0luc3RhbnRpYXRlZFxuICAgICAgPyB2YWx1ZXMubWFwKFxuICAgICAgICAgICh2OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2W01vZGVsLnBrKHRoaXMuY2xhc3MpIGFzIHN0cmluZ11cbiAgICAgICAgKVxuICAgICAgOiB2YWx1ZXMpLFxuICBdKTtcblxuICBmb3IgKGNvbnN0IGlkIG9mIHVuaXF1ZVZhbHVlcy52YWx1ZXMoKSkge1xuICAgIGNvbnN0IGRlbGV0ZWQgPSBhd2FpdCByZXBvLmRlbGV0ZShpZCwgY29udGV4dCk7XG4gICAgYXdhaXQgY2FjaGVNb2RlbEZvclBvcHVsYXRlKGNvbnRleHQsIG1vZGVsLCBrZXksIGlkLCBkZWxldGVkKTtcbiAgfVxuICAobW9kZWwgYXMgYW55KVtrZXldID0gWy4uLnVuaXF1ZVZhbHVlc107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBvcHVsYXRlcyBhIG1vZGVsJ3MgcmVsYXRpb25zaGlwXG4gKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYW5kIGF0dGFjaGVzIHJlbGF0ZWQgbW9kZWxzIHRvIGEgbW9kZWwncyByZWxhdGlvbnNoaXAgcHJvcGVydHlcbiAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAdGVtcGxhdGUgUiAtIFRoZSByZXBvc2l0b3J5IHR5cGUgZXh0ZW5kaW5nIFJlcG88TSwgRiwgQz5cbiAqIEB0ZW1wbGF0ZSBWIC0gVGhlIHJlbGF0aW9ucyBtZXRhZGF0YSB0eXBlIGV4dGVuZGluZyBSZWxhdGlvbnNNZXRhZGF0YVxuICogQHRlbXBsYXRlIEYgLSBUaGUgcmVwb3NpdG9yeSBmbGFncyB0eXBlXG4gKiBAdGVtcGxhdGUgQyAtIFRoZSBjb250ZXh0IHR5cGUgZXh0ZW5kaW5nIENvbnRleHQ8Rj5cbiAqIEBwYXJhbSB7Un0gdGhpcyAtIFRoZSByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiBAcGFyYW0ge0NvbnRleHQ8Rj59IGNvbnRleHQgLSBUaGUgY29udGV4dCBmb3IgdGhlIG9wZXJhdGlvblxuICogQHBhcmFtIHtWfSBkYXRhIC0gVGhlIHJlbGF0aW9ucyBtZXRhZGF0YVxuICogQHBhcmFtIGtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgb2YgdGhlIHJlbGF0aW9uc2hpcFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZVxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gKiBAZnVuY3Rpb24gcG9wdWxhdGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgcG9wdWxhdGVcbiAqICAgcGFydGljaXBhbnQgZmV0Y2hQb3B1bGF0ZVZhbHVlc1xuICogICBwYXJ0aWNpcGFudCBnZXRQb3B1bGF0ZUtleVxuICogICBwYXJ0aWNpcGFudCBDb250ZXh0XG4gKiAgIHBhcnRpY2lwYW50IHJlcG9zaXRvcnlGcm9tVHlwZU1ldGFkYXRhXG4gKlxuICogICBDYWxsZXItPj5wb3B1bGF0ZTogdGhpcywgY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbFxuICogICBwb3B1bGF0ZS0+PnBvcHVsYXRlOiBjaGVjayBpZiBkYXRhLnBvcHVsYXRlIGlzIHRydWVcbiAqICAgcG9wdWxhdGUtPj5wb3B1bGF0ZTogZ2V0IG5lc3RlZCB2YWx1ZSBhbmQgY2hlY2sgaWYgaXQgZXhpc3RzXG4gKlxuICogICBwb3B1bGF0ZS0+PmZldGNoUG9wdWxhdGVWYWx1ZXM6IGNvbnRleHQsIG1vZGVsLCBrZXksIGlzQXJyID8gbmVzdGVkIDogW25lc3RlZF1cbiAqXG4gKiAgIGZldGNoUG9wdWxhdGVWYWx1ZXMtPj5mZXRjaFBvcHVsYXRlVmFsdWVzOiBpbml0aWFsaXplIHZhcmlhYmxlc1xuICpcbiAqICAgbG9vcCBmb3IgZWFjaCBwcm9LZXlWYWx1ZSBpbiBwcm9wS2V5VmFsdWVzXG4gKiAgICAgZmV0Y2hQb3B1bGF0ZVZhbHVlcy0+PmdldFBvcHVsYXRlS2V5OiBtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lLCBwcm9wTmFtZSwgcHJvS2V5VmFsdWVcbiAqICAgICBnZXRQb3B1bGF0ZUtleS0tPj5mZXRjaFBvcHVsYXRlVmFsdWVzOiBjYWNoZUtleVxuICpcbiAqICAgICBhbHQgdHJ5IHRvIGdldCBmcm9tIGNhY2hlXG4gKiAgICAgICBmZXRjaFBvcHVsYXRlVmFsdWVzLT4+Q29udGV4dDogZ2V0KGNhY2hlS2V5KVxuICogICAgICAgQ29udGV4dC0tPj5mZXRjaFBvcHVsYXRlVmFsdWVzOiB2YWxcbiAqICAgICBlbHNlIGNhdGNoIGVycm9yXG4gKiAgICAgICBmZXRjaFBvcHVsYXRlVmFsdWVzLT4+cmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGE6IG1vZGVsLCBwcm9wTmFtZVxuICogICAgICAgcmVwb3NpdG9yeUZyb21UeXBlTWV0YWRhdGEtLT4+ZmV0Y2hQb3B1bGF0ZVZhbHVlczogcmVwb1xuICogICAgICAgZmV0Y2hQb3B1bGF0ZVZhbHVlcy0+PnJlcG86IHJlYWQocHJvS2V5VmFsdWUpXG4gKiAgICAgICByZXBvLS0+PmZldGNoUG9wdWxhdGVWYWx1ZXM6IHZhbFxuICogICAgIGVuZFxuICpcbiAqICAgICBmZXRjaFBvcHVsYXRlVmFsdWVzLT4+ZmV0Y2hQb3B1bGF0ZVZhbHVlczogYWRkIHZhbCB0byByZXN1bHRzXG4gKiAgIGVuZFxuICpcbiAqICAgZmV0Y2hQb3B1bGF0ZVZhbHVlcy0tPj5wb3B1bGF0ZTogcmVzdWx0c1xuICogICBwb3B1bGF0ZS0+PnBvcHVsYXRlOiBzZXQgbW9kZWxba2V5XSA9IGlzQXJyID8gcmVzIDogcmVzWzBdXG4gKiAgIHBvcHVsYXRlLS0+PkNhbGxlcjogdm9pZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9wdWxhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG88TT4sXG4gIFYgZXh0ZW5kcyBSZWxhdGlvbnNNZXRhZGF0YSxcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHRPZlJlcG9zaXRvcnk8Uj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIWRhdGEucG9wdWxhdGUpIHJldHVybjtcbiAgY29uc3QgbmVzdGVkOiBhbnkgPSBtb2RlbFtrZXldO1xuICBjb25zdCBpc0FyciA9IEFycmF5LmlzQXJyYXkobmVzdGVkKTtcbiAgaWYgKHR5cGVvZiBuZXN0ZWQgPT09IFwidW5kZWZpbmVkXCIgfHwgKGlzQXJyICYmIG5lc3RlZC5sZW5ndGggPT09IDApKSByZXR1cm47XG5cbiAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hQb3B1bGF0ZVZhbHVlcyhcbiAgICBjOiBDb250ZXh0T2ZSZXBvc2l0b3J5PFI+LFxuICAgIG1vZGVsOiBNLFxuICAgIHByb3BOYW1lOiBzdHJpbmcsXG4gICAgcHJvcEtleVZhbHVlczogYW55W10sXG4gICAgYWxpYXM/OiBzdHJpbmdcbiAgKSB7XG4gICAgbGV0IGNhY2hlS2V5OiBzdHJpbmc7XG4gICAgbGV0IHZhbDogYW55O1xuICAgIGNvbnN0IHJlc3VsdHM6IE1bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHJvS2V5VmFsdWUgb2YgcHJvcEtleVZhbHVlcykge1xuICAgICAgY2FjaGVLZXkgPSBnZXRQb3B1bGF0ZUtleShtb2RlbC5jb25zdHJ1Y3Rvci5uYW1lLCBwcm9wTmFtZSwgcHJvS2V5VmFsdWUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFsID0gYXdhaXQgYy5nZXQoY2FjaGVLZXkgYXMgYW55KTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGNvbnN0IHJlcG8gPSByZXBvc2l0b3J5RnJvbVR5cGVNZXRhZGF0YShcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICBwcm9wTmFtZSBhcyBrZXlvZiBNLFxuICAgICAgICAgIGFsaWFzXG4gICAgICAgICk7XG4gICAgICAgIGlmICghcmVwbykgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJDb3VsZCBub3QgZmluZCByZXBvXCIpO1xuICAgICAgICB2YWwgPSBhd2FpdCByZXBvLnJlYWQocHJvS2V5VmFsdWUsIGNvbnRleHQpO1xuICAgICAgfVxuICAgICAgcmVzdWx0cy5wdXNoKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoUG9wdWxhdGVWYWx1ZXMoXG4gICAgY29udGV4dCxcbiAgICBtb2RlbCxcbiAgICBrZXkgYXMgc3RyaW5nLFxuICAgIGlzQXJyID8gbmVzdGVkIDogW25lc3RlZF0sXG4gICAgdGhpcy5hZGFwdGVyLmFsaWFzXG4gICk7XG4gIChtb2RlbCBhcyBhbnkpW2tleV0gPSBpc0FyciA/IHJlcyA6IHJlc1swXTtcbn1cbiJdfQ==
441
+ //# sourceMappingURL=FabricConstruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricConstruction.js","sourceRoot":"","sources":["../../src/contracts/FabricConstruction.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,13 @@ class FabricContractRepository extends core_1.Repository {
71
71
  constructor(adapter, clazz, trackedEvents) {
72
72
  super(adapter, clazz);
73
73
  this.trackedEvents = trackedEvents;
74
+ this._overrides = Object.assign({}, super["_overrides"], {
75
+ ignoreValidation: false,
76
+ ignoreHandlers: false,
77
+ allowRawStatements: true,
78
+ forcePrepareSimpleQueries: false,
79
+ forcePrepareComplexQueries: false,
80
+ });
74
81
  }
75
82
  /**
76
83
  * @description Gets the observer handler for this repository
@@ -96,4 +103,4 @@ class FabricContractRepository extends core_1.Repository {
96
103
  }
97
104
  }
98
105
  exports.FabricContractRepository = FabricContractRepository;
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBS3dCO0FBR3hCLCtHQUF3RztBQUt4Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0RHO0FBQ0gsTUFBYSx3QkFBMEMsU0FBUSxpQkFHOUQ7SUFDQyxZQUNFLE9BQStCLEVBQy9CLEtBQXNCLEVBQ1osYUFBa0U7UUFFNUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZaLGtCQUFhLEdBQWIsYUFBYSxDQUFxRDtJQUc5RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNNLGVBQWU7UUFDdEIsT0FBTyxJQUFJLHFGQUF5QyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNNLEtBQUssQ0FBQyxlQUFlLENBQzVCLEtBQThCLEVBQzlCLEtBQXFELEVBQ3JELEVBQVksRUFDWixHQUFHLElBQTJDO1FBRTlDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRSxPQUFPLE1BQU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQXhDRCw0REF3Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZXBvc2l0b3J5LFxuICBPYnNlcnZlckhhbmRsZXIsXG4gIEV2ZW50SWRzLFxuICBDb250ZXh0dWFsQXJncyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdENvbnRleHQgfSBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlclwiO1xuaW1wb3J0IHsgQnVsa0NydWRPcGVyYXRpb25LZXlzLCBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgfSBmcm9tIFwiLi9Db250cmFjdEFkYXB0ZXJcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBtb2RlbHNcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIENSVUQgb3BlcmF0aW9ucyBmb3IgbW9kZWxzIHdpdGhpbiBGYWJyaWMgY2hhaW5jb2RlIGNvbnRyYWN0c1xuICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICogQHRlbXBsYXRlIE1hbmdvUXVlcnkgLSBRdWVyeSB0eXBlIGZvciBDb3VjaERCLWxpa2UgcXVlcmllc1xuICogQHRlbXBsYXRlIEZhYnJpY0NvbnRyYWN0QWRhcHRlciAtIEFkYXB0ZXIgdHlwZSBmb3IgRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNDb250cmFjdEZsYWdzIC0gRmxhZ3Mgc3BlY2lmaWMgdG8gRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNDb250cmFjdENvbnRleHQgLSBDb250ZXh0IHR5cGUgZm9yIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKlxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdEFkYXB0ZXJ9IFthZGFwdGVyXSAtIFRoZSBhZGFwdGVyIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gW2NsYXp6XSAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtBcnJheTxPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nPn0gW3RyYWNrZWRFdmVudHNdIC0gRXZlbnRzIHRvIHRyYWNrIGZvciBvYnNlcnZlciBub3RpZmljYXRpb25zXG4gKlxuICogQGNsYXNzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGEgRmFicmljIGNoYWluY29kZSBjb250cmFjdCBjbGFzc1xuICogaW1wb3J0IHsgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LCBGYWJyaWNDb250cmFjdEFkYXB0ZXIgfSBmcm9tICdAZGVjYWYtdHMvZm9yLWZhYnJpYyc7XG4gKlxuICogQHRhYmxlKCdhc3NldHMnKVxuICogY2xhc3MgQXNzZXQgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBpZCgpXG4gKiAgIGlkOiBzdHJpbmc7XG4gKlxuICogICBAcHJvcGVydHkoKVxuICogICBkYXRhOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIHByaXZhdGUgYWRhcHRlciA9IG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIoKTtcbiAqICAgcHJpdmF0ZSByZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8QXNzZXQ+O1xuICpcbiAqICAgY29uc3RydWN0b3IoKSB7XG4gKiAgICAgc3VwZXIoJ015Q29udHJhY3QnKTtcbiAqICAgICB0aGlzLnJlcG9zaXRvcnkgPSBuZXcgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5PEFzc2V0Pih0aGlzLmFkYXB0ZXIsIEFzc2V0KTtcbiAqICAgfVxuICpcbiAqICAgQFRyYW5zYWN0aW9uKClcbiAqICAgYXN5bmMgY3JlYXRlQXNzZXQoY3R4OiBDb250ZXh0LCBpZDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAqICAgICBjb25zdCBhc3NldCA9IG5ldyBBc3NldCgpO1xuICogICAgIGFzc2V0LmlkID0gaWQ7XG4gKiAgICAgYXNzZXQuZGF0YSA9IGRhdGE7XG4gKlxuICogICAgIGF3YWl0IHRoaXMucmVwb3NpdG9yeS5jcmVhdGUoYXNzZXQsIHsgc3R1YjogY3R4LnN0dWIgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IEFkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgU3RhdGVEQlxuICpcbiAqICAgQ29udHJhY3QtPj5SZXBvc2l0b3J5OiBjcmVhdGUobW9kZWwsIGN0eClcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IHByZXBhcmUobW9kZWwsIHBrKVxuICogICBSZXBvc2l0b3J5LT4+QWRhcHRlcjogY3JlYXRlKHRhYmxlTmFtZSwgaWQsIHJlY29yZCwgdHJhbnNpZW50LCBjdHgpXG4gKiAgIEFkYXB0ZXItPj5TdGF0ZURCOiBwdXRTdGF0ZShpZCwgc2VyaWFsaXplZERhdGEpXG4gKiAgIFN0YXRlREItLT4+QWRhcHRlcjogU3VjY2Vzc1xuICogICBBZGFwdGVyLS0+PlJlcG9zaXRvcnk6IHJlY29yZFxuICogICBSZXBvc2l0b3J5LT4+QWRhcHRlcjogcmV2ZXJ0KHJlY29yZCwgY2xhc3MsIHBrLCBpZCwgdHJhbnNpZW50KVxuICogICBBZGFwdGVyLS0+PlJlcG9zaXRvcnk6IG1vZGVsXG4gKiAgIFJlcG9zaXRvcnktLT4+Q29udHJhY3Q6IG1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIFJlcG9zaXRvcnk8XG4gIE0sXG4gIEZhYnJpY0NvbnRyYWN0QWRhcHRlclxuPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGFkYXB0ZXI/OiBGYWJyaWNDb250cmFjdEFkYXB0ZXIsXG4gICAgY2xheno/OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBwcm90ZWN0ZWQgdHJhY2tlZEV2ZW50cz86IChPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nKVtdXG4gICkge1xuICAgIHN1cGVyKGFkYXB0ZXIsIGNsYXp6KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgb2JzZXJ2ZXIgaGFuZGxlciBmb3IgdGhpcyByZXBvc2l0b3J5XG4gICAqIEBzdW1tYXJ5IFJldHVybnMgYSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlciBpbnN0YW5jZVxuICAgKiBAcmV0dXJuIHtPYnNlcnZlckhhbmRsZXJ9IFRoZSBvYnNlcnZlciBoYW5kbGVyXG4gICAqL1xuICBvdmVycmlkZSBPYnNlcnZlckhhbmRsZXIoKTogT2JzZXJ2ZXJIYW5kbGVyIHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgb2JzZXJ2ZXJzIGJhc2VkIG9uIHRyYWNrZWQgZXZlbnRzXG4gICAqIEBzdW1tYXJ5IEZpbHRlcnMgZXZlbnRzIGJhc2VkIG9uIHRyYWNrZWRFdmVudHMgYW5kIGRlbGVnYXRlcyB0byB0aGUgcGFyZW50IG1ldGhvZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUvY29sbGVjdGlvbiBuYW1lXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQgdHlwZVxuICAgKiBAcGFyYW0ge0V2ZW50SWRzfSBpZCAtIFRoZSBldmVudCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RDb250ZXh0fSBjdHggLSBUaGUgRmFicmljIGNvbnRyYWN0IGNvbnRleHRcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIG9ic2VydmVycyBhcmUgdXBkYXRlZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlT2JzZXJ2ZXJzKFxuICAgIHRhYmxlOiBDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZyxcbiAgICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMudHJhY2tlZEV2ZW50cyB8fCB0aGlzLnRyYWNrZWRFdmVudHMuaW5kZXhPZihldmVudCkgIT09IC0xKVxuICAgICAgcmV0dXJuIGF3YWl0IHN1cGVyLnVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIGlkLCAuLi5hcmdzKTtcbiAgfVxufVxuIl19
106
+ //# sourceMappingURL=FabricContractRepository.js.map
@@ -70,6 +70,18 @@ import type { FabricContractAdapter } from "./ContractAdapter";
70
70
  */
71
71
  export declare class FabricContractRepository<M extends Model> extends Repository<M, FabricContractAdapter> {
72
72
  protected trackedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined;
73
+ protected _overrides: (Partial<import("@decaf-ts/core").AdapterFlags | (import("@decaf-ts/db-decorators").RepositoryFlags<import("@decaf-ts/logging").Logger> & {
74
+ allowGenerationOverride: boolean;
75
+ allowRawStatements: boolean;
76
+ forcePrepareSimpleQueries: boolean;
77
+ forcePrepareComplexQueries: boolean;
78
+ })> & Partial<import("@decaf-ts/db-decorators").RepositoryFlags<any>>) & {
79
+ ignoreValidation: boolean;
80
+ ignoreHandlers: boolean;
81
+ allowRawStatements: boolean;
82
+ forcePrepareSimpleQueries: boolean;
83
+ forcePrepareComplexQueries: boolean;
84
+ };
73
85
  constructor(adapter?: FabricContractAdapter, clazz?: Constructor<M>, trackedEvents?: (OperationKeys | BulkCrudOperationKeys | string)[] | undefined);
74
86
  /**
75
87
  * @description Gets the observer handler for this repository
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricContractRepository.js","sourceRoot":"","sources":["../../src/contracts/FabricContractRepository.ts"],"names":[],"mappings":";;;AAAA,yCAKwB;AAGxB,+GAAwG;AAKxG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,MAAa,wBAA0C,SAAQ,iBAG9D;IASC,YACE,OAA+B,EAC/B,KAAsB,EACZ,aAAkE;QAE5E,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAFZ,kBAAa,GAAb,aAAa,CAAqD;QAX3D,eAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE;YACrE,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;YACrB,kBAAkB,EAAE,IAAI;YACxB,yBAAyB,EAAE,KAAK;YAChC,0BAA0B,EAAE,KAAK;SAClC,CAAC,CAAC;IAQH,CAAC;IAED;;;;OAIG;IACM,eAAe;QACtB,OAAO,IAAI,qFAAyC,EAAE,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACM,KAAK,CAAC,eAAe,CAC5B,KAA8B,EAC9B,KAAqD,EACrD,EAAY,EACZ,GAAG,IAA2C;QAE9C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjE,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,CAAC;CACF;AAhDD,4DAgDC"}
@@ -85,4 +85,4 @@ class FabricContractRepositoryObservableHandler extends core_1.ObserverHandler {
85
85
  }
86
86
  }
87
87
  exports.FabricContractRepositoryObservableHandler = FabricContractRepositoryObservableHandler;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUErRTtBQUMvRSx5Q0FLd0I7QUFDeEIsbURBQTJEO0FBSTNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBYSx5Q0FBMEMsU0FBUSxzQkFBZTtJQUM1RTs7OztPQUlHO0lBQ0gsWUFDVSxrQkFJRjtRQUNKLDZCQUFhLENBQUMsTUFBTTtRQUNwQiw2QkFBYSxDQUFDLE1BQU07UUFDcEIsNkJBQWEsQ0FBQyxNQUFNO1FBQ3BCLHFDQUFxQixDQUFDLFVBQVU7UUFDaEMscUNBQXFCLENBQUMsVUFBVTtRQUNoQyxxQ0FBcUIsQ0FBQyxVQUFVO0tBQ2pDO1FBRUQsS0FBSyxFQUFFLENBQUM7UUFiQSxvQkFBZSxHQUFmLGVBQWUsQ0FXdEI7SUFHSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ00sS0FBSyxDQUFDLGVBQWUsQ0FDNUIsS0FBZ0MsRUFDaEMsS0FBcUQsRUFDckQsRUFBWSxFQUNaLEdBQUcsSUFBMkM7UUFFOUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxjQUFPLENBQUMsTUFBTSxDQUNqQyxJQUFJLEVBQ0osSUFBSSxDQUFDLGVBQWUsQ0FDckIsQ0FBQztRQUNGLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDckIsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUEsZ0NBQXVCLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6REQsOEZBeURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVsa0NydWRPcGVyYXRpb25LZXlzLCBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQge1xuICBBZGFwdGVyLFxuICBDb250ZXh0dWFsQXJncyxcbiAgRXZlbnRJZHMsXG4gIE9ic2VydmVySGFuZGxlcixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUZhYnJpY0V2ZW50TmFtZSB9IGZyb20gXCIuLi9zaGFyZWQvZXZlbnRzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdENvbnRleHQgfSBmcm9tIFwiLi9Db250cmFjdENvbnRleHRcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9ic2VydmVyIGhhbmRsZXIgZm9yIEZhYnJpYyBjaGFpbmNvZGUgZXZlbnRzXG4gKiBAc3VtbWFyeSBFbWl0cyBldmVudHMgb24gdGhlIEZhYnJpYyBsZWRnZXIgd2hlbiByZXBvc2l0b3J5IG9wZXJhdGlvbnMgb2NjdXJcbiAqIEBjbGFzcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlclxuICogQGV4dGVuZHMge09ic2VydmVySGFuZGxlcn1cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3RcbiAqIGltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIH0gZnJvbSAnQGRlY2FmLXRzL2Zvci1mYWJyaWMnO1xuICpcbiAqIC8vIENyZWF0ZSBhIGhhbmRsZXIgd2l0aCBkZWZhdWx0IHN1cHBvcnRlZCBldmVudHNcbiAqIGNvbnN0IGhhbmRsZXIgPSBuZXcgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIoKTtcbiAqXG4gKiAvLyBFbWl0IGFuIGV2ZW50XG4gKiBhd2FpdCBoYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAqICAgbG9nZ2VyLFxuICogICAnYXNzZXRzJyxcbiAqICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gKiAgICdhc3NldDEnLFxuICogICBjb250ZXh0XG4gKiApO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgT2JzZXJ2YWJsZUhhbmRsZXJcbiAqICAgcGFydGljaXBhbnQgU3R1YlxuICogICBwYXJ0aWNpcGFudCBMZWRnZXJcbiAqXG4gKiAgIFJlcG9zaXRvcnktPj5PYnNlcnZhYmxlSGFuZGxlcjogdXBkYXRlT2JzZXJ2ZXJzKGxvZywgdGFibGUsIGV2ZW50LCBpZCwgY3R4KVxuICogICBPYnNlcnZhYmxlSGFuZGxlci0+Pk9ic2VydmFibGVIYW5kbGVyOiBDaGVjayBpZiBldmVudCBpcyBzdXBwb3J0ZWRcbiAqICAgT2JzZXJ2YWJsZUhhbmRsZXItPj5PYnNlcnZhYmxlSGFuZGxlcjogZ2VuZXJhdGVGYWJyaWNFdmVudE5hbWUodGFibGUsIGV2ZW50LCBvd25lcilcbiAqICAgT2JzZXJ2YWJsZUhhbmRsZXItPj5TdHViOiBzZXRFdmVudChldmVudE5hbWUsIHBheWxvYWQpXG4gKiAgIFN0dWItPj5MZWRnZXI6IFJlY29yZCBldmVudFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIgZXh0ZW5kcyBPYnNlcnZlckhhbmRsZXIge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgdGhlIGhhbmRsZXIgd2l0aCBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGV2ZW50c1xuICAgKiBAcGFyYW0ge0FycmF5PE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmc+fSBbc3VwcG9ydGVkRXZlbnRzXSAtIEV2ZW50cyB0aGF0IHdpbGwgdHJpZ2dlciBGYWJyaWMgZXZlbnRzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN1cHBvcnRlZEV2ZW50czogKFxuICAgICAgfCBPcGVyYXRpb25LZXlzXG4gICAgICB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5c1xuICAgICAgfCBzdHJpbmdcbiAgICApW10gPSBbXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgXVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBieSBlbWl0dGluZyBGYWJyaWMgZXZlbnRzXG4gICAqIEBzdW1tYXJ5IEVtaXRzIGV2ZW50cyBvbiB0aGUgRmFicmljIGxlZGdlciBmb3Igc3VwcG9ydGVkIGV2ZW50IHR5cGVzXG4gICAqIEBwYXJhbSB7TG9nZ2VyfSBsb2cgLSBMb2dnZXIgaW5zdGFuY2UgZm9yIGRlYnVnZ2luZ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUvY29sbGVjdGlvbiBuYW1lXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQgdHlwZVxuICAgKiBAcGFyYW0ge0V2ZW50SWRzfSBpZCAtIFRoZSBldmVudCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RDb250ZXh0fSBjdHggLSBUaGUgRmFicmljIGNvbnRyYWN0IGNvbnRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvd25lcl0gLSBPcHRpb25hbCBvd25lciBpZGVudGlmaWVyIGZvciB0aGUgZXZlbnRcbiAgICogQHBhcmFtIHtvYmplY3QgfCBzdHJpbmcgfCB1bmRlZmluZWR9IFtvd25lcl0gLSBPcHRpb25hbCBwYXlsb2FkIGZvciB0aGUgZXZlbnRcbiAgICpcbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGV2ZW50IGlzIGVtaXR0ZWRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhcbiAgICBjbGF6ejogc3RyaW5nIHwgQ29uc3RydWN0b3I8YW55PixcbiAgICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBBZGFwdGVyLmxvZ0N0eDxGYWJyaWNDb250cmFjdENvbnRleHQ+KFxuICAgICAgYXJncyxcbiAgICAgIHRoaXMudXBkYXRlT2JzZXJ2ZXJzXG4gICAgKTtcbiAgICBjb25zdCB7IHN0dWIgfSA9IGN0eDtcbiAgICBjb25zdCBbb3duZXIsIHBheWxvYWRdID0gYXJncztcbiAgICBjb25zdCB0YWJsZSA9IHR5cGVvZiBjbGF6eiA9PT0gXCJzdHJpbmdcIiA/IGNsYXp6IDogY2xhenoubmFtZTtcbiAgICBpZiAodGhpcy5zdXBwb3J0ZWRFdmVudHMuaW5kZXhPZihldmVudCkgIT09IC0xKSB7XG4gICAgICBsb2cuZGVidWcoYEVtaXR0aW5nICR7ZXZlbnR9IGV2ZW50YCk7XG4gICAgICBjb25zdCBldmVudE5hbWUgPSBnZW5lcmF0ZUZhYnJpY0V2ZW50TmFtZSh0YWJsZSwgZXZlbnQsIG93bmVyKTtcbiAgICAgIHN0dWIuc2V0RXZlbnQoZXZlbnROYW1lLCBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeSh7IGlkOiBpZCB9KSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHViLnNldEV2ZW50KGV2ZW50LCBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShwYXlsb2FkKSkpO1xuICAgIH1cbiAgfVxufVxuIl19
88
+ //# sourceMappingURL=FabricContractRepositoryObservableHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricContractRepositoryObservableHandler.js","sourceRoot":"","sources":["../../src/contracts/FabricContractRepositoryObservableHandler.ts"],"names":[],"mappings":";;;AAAA,2DAA+E;AAC/E,yCAKwB;AACxB,mDAA2D;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAa,yCAA0C,SAAQ,sBAAe;IAC5E;;;;OAIG;IACH,YACU,kBAIF;QACJ,6BAAa,CAAC,MAAM;QACpB,6BAAa,CAAC,MAAM;QACpB,6BAAa,CAAC,MAAM;QACpB,qCAAqB,CAAC,UAAU;QAChC,qCAAqB,CAAC,UAAU;QAChC,qCAAqB,CAAC,UAAU;KACjC;QAED,KAAK,EAAE,CAAC;QAbA,oBAAe,GAAf,eAAe,CAWtB;IAGH,CAAC;IAED;;;;;;;;;;;;OAYG;IACM,KAAK,CAAC,eAAe,CAC5B,KAAgC,EAChC,KAAqD,EACrD,EAAY,EACZ,GAAG,IAA2C;QAE9C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAO,CAAC,MAAM,CACjC,IAAI,EACJ,IAAI,CAAC,eAAe,CACrB,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,IAAA,gCAAuB,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAzDD,8FAyDC"}
@@ -118,4 +118,4 @@ class FabricStatement extends for_couchdb_2.CouchDBStatement {
118
118
  }
119
119
  }
120
120
  exports.FabricStatement = FabricStatement;
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTdGF0ZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL0ZhYnJpY0NvbnRyYWN0U3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUF1RDtBQUN2RCx1REFRK0I7QUFFL0IsdURBQXlEO0FBQ3pELHlDQUEyRDtBQUMzRCxxREFBZ0Q7QUFDaEQsMkRBQWlEO0FBRWpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQWEsZUFBb0MsU0FBUSw4QkFJeEQ7SUFDQyxZQUFZLE9BQXlEO1FBQ25FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRVEsS0FBSyxDQUFDLEdBQUcsQ0FBSSxRQUFvQixFQUFFLEdBQUcsSUFBVztRQUN4RCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sT0FBTyxHQUFVLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVuRSxNQUFNLE1BQU0sR0FBRyw0QkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0MsTUFBTSxJQUFJLEdBQUcscUJBQVEsQ0FBQyxHQUFHLENBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQ2pCLHFCQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFNLENBQUMsRUFBRSxFQUFFLE1BQWdCLENBQUMsQ0FDMUMsRUFBRSxJQUFJLENBQUM7UUFFUixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFNLENBQUM7UUFDM0UsT0FBTyxPQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVRLEtBQUs7UUFDWixNQUFNLFNBQVMsR0FBa0IsRUFBRSxDQUFDO1FBQ3BDLFNBQVMsQ0FBQyx5QkFBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxTQUFTLENBQUMseUJBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyw0QkFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQTBCLENBQUM7UUFFeEUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsTUFBTSxTQUFTLEdBQWtCLElBQUksQ0FBQyxjQUFjLENBQ2xELGdCQUFTLENBQUMsR0FBRyxDQUNYLElBQUksQ0FBQyxjQUFjLEVBQ25CLGdCQUFTLENBQUMsU0FBUyxDQUFJLHlCQUFXLENBQUMsS0FBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FDckQsS0FBSyxDQUFDLFFBQVEsQ0FBQyx5QkFBVyxDQUFDLEtBQUssQ0FBQyxDQUNsQyxDQUNGLENBQ0YsQ0FBQyxRQUFRLENBQUM7WUFDWCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBb0IsQ0FBQztZQUMvRCxJQUNFLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQ0FBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRW5FLFFBQVEsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLEtBQUssa0NBQW9CLENBQUMsR0FBRzt3QkFDM0IsU0FBUyxDQUFDLGtDQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHOzRCQUNwQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2QsU0FBUyxDQUFDLGtDQUFvQixDQUFDLEdBQUcsQ0FBa0IsQ0FDckQsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFzQixFQUFFLEdBQVEsRUFBRSxFQUFFO2dDQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dDQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztvQ0FDbkIsTUFBTSxJQUFJLEtBQUssQ0FDYixnREFBZ0QsQ0FDakQsQ0FBQztnQ0FDSixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ2xCLElBQUksQ0FBQyxLQUFLLGtDQUFvQixDQUFDLEdBQUc7b0NBQ2hDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFXLENBQUMsQ0FBQzs7b0NBQzlCLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0NBQ3JCLE9BQU8sS0FBSyxDQUFDOzRCQUNmLENBQUMsRUFBRSxFQUFFLENBQUM7eUJBQ1AsQ0FBQzt3QkFDRixLQUFLLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQzt3QkFDM0IsTUFBTTtvQkFDUixLQUFLLGtDQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzdCLE1BQU0sQ0FBQyxHQUFxQixFQUFFLENBQUM7d0JBQy9CLENBQUMsQ0FBQyxrQ0FBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRzs0QkFDNUIsU0FBUzs0QkFDVCxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0NBQ25ELE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7Z0NBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7Z0NBQ2xCLE9BQU8sTUFBTSxDQUFDOzRCQUNoQixDQUFDLENBQUM7eUJBQ0gsQ0FBQzt3QkFDRixLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQzt3QkFDbkIsTUFBTTtvQkFDUixDQUFDO29CQUNEO3dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDakQsQ0FBQztpQkFDRSxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtvQkFDL0MsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQzt3QkFDckIsT0FBTyxDQUFDLElBQUksQ0FDVixLQUFLLEdBQUcsMkNBQTJDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQ25GLENBQUM7b0JBQ0osS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSyxFQUFvQixDQUFDO1lBQ3pELE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBRzlCLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7WUFDcEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLENBQUMsSUFBYyxDQUFDLElBQUksQ0FBQyxHQUFVLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM5QixLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQW1CLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFtQixDQUFDLDZCQUFlLENBQUMsTUFBTSxDQUFDO29CQUNqRSxJQUFJLENBQUM7WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFekQsSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUxRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQXBIRCwwQ0FvSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIENvdWNoREJBZGFwdGVyLFxuICBDb3VjaERCR3JvdXBPcGVyYXRvcixcbiAgQ291Y2hEQktleXMsXG4gIENvdWNoREJPcGVyYXRvcixcbiAgTWFuZ29PcGVyYXRvcixcbiAgTWFuZ29RdWVyeSxcbiAgTWFuZ29TZWxlY3Rvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0XCI7XG5pbXBvcnQgeyBDb3VjaERCU3RhdGVtZW50IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uLCBPcmRlckRpcmVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IERCS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGF0ZW1lbnQgd3JhcHBlciBmb3IgZXhlY3V0aW5nIE1hbmdvIHF1ZXJpZXMgd2l0aGluIEZhYnJpYyBjb250cmFjdHNcbiAqIEBzdW1tYXJ5IEJyaWRnZXMgQ291Y2hEQi1zdHlsZSBxdWVyaWVzIHRvIEZhYnJpYyB2aWEgdGhlIEZhYnJpY0NvbnRyYWN0QWRhcHRlciwgaGFuZGxpbmcgaWRlbnRpdHkgYW5kIHByaW1hcnkga2V5IHByb2plY3Rpb24gd2hlbiBuZWVkZWQuXG4gKiBAdGVtcGxhdGUgTSAtIE1vZGVsIHR5cGUgdGhpcyBzdGF0ZW1lbnQgb3BlcmF0ZXMgb25cbiAqIEB0ZW1wbGF0ZSBSIC0gUmVzdWx0IHR5cGUgcmV0dXJuZWQgYnkgdGhlIHN0YXRlbWVudFxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdEFkYXB0ZXJ9IGFkYXB0ZXIgLSBUaGUgRmFicmljIGNvbnRyYWN0IGFkYXB0ZXIgdXNlZCBmb3IgcmF3IGV4ZWN1dGlvblxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdENvbnRleHR9IGN0eCAtIFRoZSBGYWJyaWMgY29udHJhY3QgY29udGV4dCBjYXJyeWluZyBzdHViIGFuZCBpZGVudGl0eVxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNTdGF0ZW1lbnRcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzdG10ID0gbmV3IEZhYnJpY1N0YXRlbWVudDxNeU1vZGVsLCBNeU1vZGVsW10+KGFkYXB0ZXIsIGN0eCk7XG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG10LnJhdzxNeU1vZGVsW10+KHsgc2VsZWN0b3I6IHsgdHlwZTogJ015TW9kZWwnIH0gfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBTdGF0ZW1lbnRcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBMZWRnZXJcbiAqICAgQXBwLT4+U3RhdGVtZW50OiByYXcoeyBzZWxlY3RvciB9KVxuICogICBTdGF0ZW1lbnQtPj5BZGFwdGVyOiBhZGFwdGVyLnJhdyhtYW5nbywgdHJ1ZSwgY3R4KVxuICogICBBZGFwdGVyLT4+TGVkZ2VyOiBFdmFsdWF0ZSBxdWVyeVxuICogICBBZGFwdGVyLS0+PlN0YXRlbWVudDogcm93c1xuICogICBTdGF0ZW1lbnQtLT4+QXBwOiBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY1N0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgQ291Y2hEQlN0YXRlbWVudDxcbiAgTSxcbiAgQ291Y2hEQkFkYXB0ZXI8YW55LCB2b2lkLCBGYWJyaWNDb250cmFjdENvbnRleHQ+LFxuICBSXG4+IHtcbiAgY29uc3RydWN0b3IoYWRhcHRlcjogQ291Y2hEQkFkYXB0ZXI8YW55LCB2b2lkLCBGYWJyaWNDb250cmFjdENvbnRleHQ+KSB7XG4gICAgc3VwZXIoYWRhcHRlcik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByYXc8Uj4ocmF3SW5wdXQ6IE1hbmdvUXVlcnksIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxSPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmF3KTtcblxuICAgIGNvbnN0IHJlc3VsdHM6IGFueVtdID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJhdyhyYXdJbnB1dCwgdHJ1ZSwgY3R4KTtcblxuICAgIGNvbnN0IHBrQXR0ciA9IE1vZGVsLnBrKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCB0eXBlID0gTWV0YWRhdGEuZ2V0KFxuICAgICAgdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICBNZXRhZGF0YS5rZXkoREJLZXlzLklELCBwa0F0dHIgYXMgc3RyaW5nKVxuICAgICk/LnR5cGU7XG5cbiAgICBpZiAoIXRoaXMuc2VsZWN0U2VsZWN0b3IpXG4gICAgICByZXR1cm4gcmVzdWx0cy5tYXAoKHIpID0+IHRoaXMucHJvY2Vzc1JlY29yZChyLCBwa0F0dHIsIHR5cGUsIGN0eCkpIGFzIFI7XG4gICAgcmV0dXJuIHJlc3VsdHMgYXMgUjtcbiAgfVxuXG4gIG92ZXJyaWRlIGJ1aWxkKCk6IE1hbmdvUXVlcnkge1xuICAgIGNvbnN0IHNlbGVjdG9yczogTWFuZ29TZWxlY3RvciA9IHt9O1xuICAgIHNlbGVjdG9yc1tDb3VjaERCS2V5cy5UQUJMRV0gPSB7fTtcbiAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCBxdWVyeTogTWFuZ29RdWVyeSA9IHsgc2VsZWN0b3I6IHNlbGVjdG9ycyB9O1xuICAgIGlmICh0aGlzLnNlbGVjdFNlbGVjdG9yKSBxdWVyeS5maWVsZHMgPSB0aGlzLnNlbGVjdFNlbGVjdG9yIGFzIHN0cmluZ1tdO1xuXG4gICAgaWYgKHRoaXMud2hlcmVDb25kaXRpb24pIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbjogTWFuZ29TZWxlY3RvciA9IHRoaXMucGFyc2VDb25kaXRpb24oXG4gICAgICAgIENvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgdGhpcy53aGVyZUNvbmRpdGlvbixcbiAgICAgICAgICBDb25kaXRpb24uYXR0cmlidXRlPE0+KENvdWNoREJLZXlzLlRBQkxFIGFzIGtleW9mIE0pLmVxKFxuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLnNlbGVjdG9yO1xuICAgICAgY29uc3Qgc2VsZWN0b3JLZXlzID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKSBhcyBNYW5nb09wZXJhdG9yW107XG4gICAgICBpZiAoXG4gICAgICAgIHNlbGVjdG9yS2V5cy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhDb3VjaERCR3JvdXBPcGVyYXRvcikuaW5kZXhPZihzZWxlY3RvcktleXNbMF0pICE9PSAtMVxuICAgICAgKVxuICAgICAgICBzd2l0Y2ggKHNlbGVjdG9yS2V5c1swXSkge1xuICAgICAgICAgIGNhc2UgQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EOlxuICAgICAgICAgICAgY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gYXMgTWFuZ29TZWxlY3RvclxuICAgICAgICAgICAgICApLnJlZHVjZSgoYWNjdW06IE1hbmdvU2VsZWN0b3JbXSwgdmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiVG9vIG1hbnkga2V5cyBpbiBxdWVyeSBzZWxlY3Rvci4gc2hvdWxkIGJlIG9uZVwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCR3JvdXBPcGVyYXRvci5BTkQpXG4gICAgICAgICAgICAgICAgICBhY2N1bS5wdXNoKC4uLih2YWxba10gYXMgYW55W10pKTtcbiAgICAgICAgICAgICAgICBlbHNlIGFjY3VtLnB1c2godmFsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICAgIH0sIFtdKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IGNvbmRpdGlvbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgQ291Y2hEQkdyb3VwT3BlcmF0b3IuT1I6IHtcbiAgICAgICAgICAgIGNvbnN0IHM6IFJlY29yZDxhbnksIGFueT4gPSB7fTtcbiAgICAgICAgICAgIHNbQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EXSA9IFtcbiAgICAgICAgICAgICAgY29uZGl0aW9uLFxuICAgICAgICAgICAgICAuLi5PYmplY3QuZW50cmllcyhxdWVyeS5zZWxlY3RvcikubWFwKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8YW55LCBhbnk+ID0ge307XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoY29uZGl0aW9uKS5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgaWYgKHF1ZXJ5LnNlbGVjdG9yW2tleV0pXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBBICR7a2V5fSBxdWVyeSBwYXJhbSBpcyBhYm91dCB0byBiZSBvdmVycmlkZGVuOiAke3F1ZXJ5LnNlbGVjdG9yW2tleV19IGJ5ICR7dmFsfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcXVlcnkuc2VsZWN0b3Jba2V5XSA9IHZhbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3JkZXJCeVNlbGVjdG9yKSB7XG4gICAgICBxdWVyeS5zb3J0ID0gcXVlcnkuc29ydCB8fCBbXTtcbiAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcXVlcnkuc2VsZWN0b3IgfHwgKHt9IGFzIE1hbmdvU2VsZWN0b3IpO1xuICAgICAgY29uc3QgW3NlbGVjdG9yLCB2YWx1ZV0gPSB0aGlzLm9yZGVyQnlTZWxlY3RvciBhcyBbXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgT3JkZXJEaXJlY3Rpb24sXG4gICAgICBdO1xuICAgICAgY29uc3QgcmVjOiBhbnkgPSB7fTtcbiAgICAgIHJlY1tzZWxlY3Rvcl0gPSB2YWx1ZTtcbiAgICAgIChxdWVyeS5zb3J0IGFzIGFueVtdKS5wdXNoKHJlYyBhcyBhbnkpO1xuICAgICAgaWYgKCFxdWVyeS5zZWxlY3RvcltzZWxlY3Rvcl0pIHtcbiAgICAgICAgcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgICAgKHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSBhcyBNYW5nb1NlbGVjdG9yKVtDb3VjaERCT3BlcmF0b3IuQklHR0VSXSA9XG4gICAgICAgICAgbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW1pdFNlbGVjdG9yKSBxdWVyeS5saW1pdCA9IHRoaXMubGltaXRTZWxlY3RvcjtcblxuICAgIGlmICh0aGlzLm9mZnNldFNlbGVjdG9yKSBxdWVyeS5za2lwID0gdGhpcy5vZmZzZXRTZWxlY3RvcjtcblxuICAgIHJldHVybiBxdWVyeTtcbiAgfVxufVxuIl19
121
+ //# sourceMappingURL=FabricContractStatement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["../../src/contracts/FabricContractStatement.ts"],"names":[],"mappings":"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"}
@@ -33,4 +33,4 @@ exports.CustomizableSequence = CustomizableSequence = __decorate([
33
33
  (0, decorator_validation_1.model)(),
34
34
  __metadata("design:paramtypes", [Object])
35
35
  ], CustomizableSequence);
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZVNlcXVlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0cy9Qcml2YXRlU2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQTZEO0FBQzdELHlFQUFnRjtBQUNoRix1REFBb0Q7QUFJN0MsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBcUIsU0FBUSxnQkFBUztJQWdCakQsWUFBWSxHQUFvQztRQUM5QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQTtBQW5CWSxvREFBb0I7QUFNL0I7SUFEQyxJQUFBLFNBQUUsR0FBRTs7Z0RBQ087QUFRWjtJQUZDLElBQUEsK0JBQVEsR0FBRTtJQUNWLElBQUEsWUFBSyxHQUFFOztxREFDa0I7K0JBZGYsb0JBQW9CO0lBRmhDLElBQUEsWUFBSyxFQUFDLHlCQUFXLENBQUMsUUFBUSxDQUFDO0lBQzNCLElBQUEsNEJBQUssR0FBRTs7R0FDSyxvQkFBb0IsQ0FtQmhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBpbmRleCwgcGssIHRhYmxlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBtb2RlbCwgdHlwZSBNb2RlbEFyZywgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb3VjaERCS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcblxuQHRhYmxlKENvdWNoREJLZXlzLlNFUVVFTkNFKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBDdXN0b21pemFibGVTZXF1ZW5jZSBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2VxdWVuY2VcbiAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgZm9yIHRoZSBzZXF1ZW5jZSByZWNvcmRcbiAgICovXG4gIEBwaygpXG4gIGlkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlcXVlbmNlXG4gICAqIEBzdW1tYXJ5IEN1cnJlbnQgc2VxdWVuY2UgdmFsdWUgdGhhdCBjYW4gYmUgaW5jcmVtZW50ZWRcbiAgICovXG4gIEByZXF1aXJlZCgpXG4gIEBpbmRleCgpXG4gIGN1cnJlbnQhOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Ioc2VxPzogTW9kZWxBcmc8Q3VzdG9taXphYmxlU2VxdWVuY2U+KSB7XG4gICAgc3VwZXIoc2VxKTtcbiAgfVxufVxuIl19
36
+ //# sourceMappingURL=PrivateSequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrivateSequence.js","sourceRoot":"","sources":["../../src/contracts/PrivateSequence.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAA6D;AAC7D,yEAAgF;AAChF,uDAAoD;AAI7C,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,gBAAS;IAgBjD,YAAY,GAAoC;QAC9C,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAnBY,oDAAoB;AAM/B;IADC,IAAA,SAAE,GAAE;;gDACO;AAQZ;IAFC,IAAA,+BAAQ,GAAE;IACV,IAAA,YAAK,GAAE;;qDACkB;+BAdf,oBAAoB;IAFhC,IAAA,YAAK,EAAC,yBAAW,CAAC,QAAQ,CAAC;IAC3B,IAAA,4BAAK,GAAE;;GACK,oBAAoB,CAmBhC"}
@@ -231,8 +231,6 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
231
231
  */
232
232
  async raw(ctx, rawInput, docsOnly, ...args) {
233
233
  const { ctxArgs } = await this.logCtx([...args, ctx], this.raw);
234
- if (typeof rawInput === "string")
235
- rawInput = JSON.parse(rawInput);
236
234
  return FabricCrudContract.adapter.raw(rawInput, docsOnly, ...ctxArgs);
237
235
  }
238
236
  serialize(model) {
@@ -261,13 +259,13 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
261
259
  * @return {Promise<M[]>} Promise resolving to the created models
262
260
  */
263
261
  async createAll(ctx, models, ...args) {
264
- const { log } = await this.logCtx([...args, ctx], this.createAll);
262
+ const { log, ctxArgs } = await this.logCtx([...args, ctx], this.createAll);
265
263
  if (typeof models === "string")
266
264
  models = JSON.parse(models)
267
265
  .map((m) => this.deserialize(m))
268
266
  .map((m) => new this.clazz(m));
269
267
  log.info(`adding ${models.length} entries to the table`);
270
- return this.repo.createAll(models, ctx, ...args);
268
+ return this.repo.createAll(models, ...ctxArgs);
271
269
  }
272
270
  async logCtx(args, method) {
273
271
  return FabricCrudContract.logCtx.bind(this)(args, method);
@@ -320,4 +318,4 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
320
318
  }
321
319
  }
322
320
  exports.FabricCrudContract = FabricCrudContract;
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvY3J1ZC9jcnVkLWNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUEyRDtBQUMzRCw2REFBK0Q7QUFDL0QseUVBQW1FO0FBQ25FLHlDQU93QjtBQUV4Qix3RkFBK0U7QUFJL0UsOERBQTJEO0FBQzNELDJEQUtpQztBQUdqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFzQixrQkFDcEIsU0FBUSw4QkFBUTtJQUdoQjs7T0FFRzthQUNjLFlBQU8sR0FBMEIsSUFBSSx1Q0FBcUIsRUFBRSxBQUFyRCxDQUFzRDthQUlwRCxlQUFVLEdBQUcsSUFBSSxpREFBdUIsRUFBRSxBQUFoQyxDQUFpQztJQUlyRTs7Ozs7T0FLRztJQUNILFlBQ0UsSUFBWSxFQUNPLEtBQXFCO1FBRXhDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUZPLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBVmhDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBYXJDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQ1YsR0FBZ0MsRUFDaEMsR0FBcUIsRUFDckIsS0FBYSxFQUNiLEdBQUcsSUFBVztRQUVkLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDckIsR0FBYyxFQUNkLEtBQXVCLEVBQ3ZCLEdBQUcsT0FBTyxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FDZCxHQUFnQyxFQUNoQyxHQUFxQixFQUNyQixLQUFhLEVBQ2IsSUFBWSxFQUNaLEdBQUcsSUFBVztRQUVkLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFjLEVBQUUsS0FBWSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUNiLEdBQWdDLEVBQ2hDLEdBQXFCLEVBQ3JCLEtBQVUsRUFDVixHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUNiLEdBQWdDLEVBQ2hDLE1BQWMsRUFDZCxHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLEdBQWdDLEVBQ2hDLEtBQWlCLEVBQ2pCLEdBQUcsSUFBVztRQUVkLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFeEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUksS0FBSyxDQUFNLENBQUM7UUFFdkUsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN0QyxLQUFLLEdBQUcsNEJBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFNLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxJQUFJLENBQ1IsR0FBZ0MsRUFDaEMsR0FBNEIsRUFDNUIsR0FBRyxJQUFXO1FBRWQsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEUsR0FBRyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUUxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxHQUFnQztRQUN6RCxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdDLElBQUksU0FBUyxHQUFRLEVBQUUsQ0FBQztRQUV4QixJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUUsSUFBSSxDQUFDLElBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ25ELFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNuQixZQUFZLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBQyxJQUFZLENBQUMsU0FBUyxDQUFZLEVBQUUsUUFBUSxDQUNsRSxNQUFNLENBQ0csQ0FDWixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FDVixHQUFnQyxFQUNoQyxLQUFpQixFQUNqQixHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBSSxLQUFLLENBQU0sQ0FBQztRQUV2RSxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3RDLEtBQUssR0FBRyw0QkFBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQU0sQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FDVixHQUFnQyxFQUNoQyxHQUE0QixFQUM1QixHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RSxHQUFHLENBQUMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUNiLEdBQWdDLEVBQ2hDLElBQStCLEVBQy9CLEdBQUcsSUFBVztRQUVkLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFhLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQ1gsR0FBZ0MsRUFDaEMsSUFBK0IsRUFDL0IsR0FBRyxJQUFXO1FBRWQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQWEsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLFNBQVMsQ0FDYixHQUFnQyxFQUNoQyxNQUFvQixFQUNwQixHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7WUFDNUIsTUFBTSxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFRO2lCQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7UUFFMUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixDQUFDLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUF3QixFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQ1QsT0FBb0MsRUFDcEMsU0FBZ0MsRUFDaEMsT0FBeUIsRUFDekIsUUFBaUMscUJBQWMsQ0FBQyxHQUFHLEVBQ25ELEtBQWMsRUFDZCxJQUFhLEVBQ2IsR0FBRyxJQUFXO1FBRWQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUNwQixTQUF5QixFQUN6QixPQUFrQixFQUNsQixLQUF1QixFQUN2QixLQUFLLEVBQ0wsSUFBSSxFQUNKLEdBQUcsT0FBTyxDQUNYLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUNQLEdBQWdDLEVBQ2hDLFFBQTZCLEVBQzdCLFFBQWlCLEVBQ2pCLEdBQUcsSUFBVztRQUVkLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRO1lBQzlCLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBZSxDQUFDO1FBQ2hELE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFRO1FBQzFCLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRVMsV0FBVyxDQUFrQixHQUFXO1FBQ2hELE9BQ0Usa0JBQWtCLENBQUMsVUFDcEIsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVTLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBZ0M7UUFDbkQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNmLEdBQWdDO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUM7UUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUNiLEdBQWdDLEVBQ2hDLE1BQW9CLEVBQ3BCLEdBQUcsSUFBVztRQUVkLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEUsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQzVCLE1BQU0sR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBUTtpQkFDaEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMvQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDO1FBRTFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBd0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FDVixJQUFVLEVBQ1YsTUFBMEM7UUFPMUMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFhLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBc0JTLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUUzQixJQUFVLEVBQ1YsTUFBMEM7UUFPMUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksNkJBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQXFDLENBQUM7UUFDMUQsSUFBSSxHQUFHLFlBQVksdUNBQXFCO1lBQ3RDLE9BQU87Z0JBQ0wsR0FBRztnQkFDSCxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztnQkFDN0MsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDO2dCQUN2QixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO2FBQ3ZCLENBQUM7UUFFSixJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksNkJBQUcsQ0FBQztZQUN2QixNQUFNLElBQUksNkJBQWEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRXZELFNBQVMsS0FBSztZQUNaLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUM5QyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyw2QkFBYSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsS0FBSyw2QkFBYSxDQUFDLElBQUksQ0FBQztnQkFDeEIsS0FBSyw2QkFBYSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsS0FBSyw2QkFBYSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsS0FBSyxxQ0FBcUIsQ0FBQyxVQUFVLENBQUM7Z0JBQ3RDLEtBQUsscUNBQXFCLENBQUMsUUFBUSxDQUFDO2dCQUNwQyxLQUFLLHFDQUFxQixDQUFDLFVBQVUsQ0FBQztnQkFDdEMsS0FBSyxxQ0FBcUIsQ0FBQyxVQUFVO29CQUNuQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCO29CQUNFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHO1lBQ2hCLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtTQUNsQyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUN0RCxLQUFLLEVBQUUsRUFDUCxTQUFnQixFQUNoQixJQUFJLENBQUMsS0FBSyxFQUNWLEdBQUcsQ0FDSixDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsQ0FDVixJQUFJO1lBQ0YsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDdEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FDZCxDQUFDO1FBQ3JDLE9BQU87WUFDTCxHQUFHLEVBQUUsT0FBTztZQUNaLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtZQUMxQixPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxPQUFPLENBQUM7U0FDNUIsQ0FBQztJQUNKLENBQUM7O0FBbGJILGdEQW1iQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB9IGZyb20gXCIuLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7IENvbnRyYWN0LCBDb250ZXh0IGFzIEN0eCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBNb2RlbCwgU2VyaWFsaXplciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIENvbmRpdGlvbixcbiAgQ29udGV4dCxcbiAgQ29udGV4dHVhbGl6ZWRBcmdzLFxuICBMb2dnZXJPZixcbiAgT3JkZXJEaXJlY3Rpb24sXG4gIFJlcG9zaXRvcnksXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeVwiO1xuaW1wb3J0IHsgRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXIgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL0RldGVybWluaXN0aWNTZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBNYW5nb1F1ZXJ5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgQ2hlY2thYmxlLCBoZWFsdGhjaGVjayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvaW50ZXJmYWNlcy9DaGVja2FibGVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdENvbnRleHQgfSBmcm9tIFwiLi4vQ29udHJhY3RDb250ZXh0XCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENoYWluY29kZVN0dWIsIENsaWVudElkZW50aXR5IH0gZnJvbSBcImZhYnJpYy1zaGltLWFwaVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGNvbnRyYWN0IGNsYXNzIGZvciBDUlVEIG9wZXJhdGlvbnMgaW4gRmFicmljIGNoYWluY29kZVxuICogQHN1bW1hcnkgUHJvdmlkZXMgc3RhbmRhcmQgY3JlYXRlLCByZWFkLCB1cGRhdGUsIGFuZCBkZWxldGUgb3BlcmF0aW9ucyBmb3IgbW9kZWxzIGluIEZhYnJpYyBjaGFpbmNvZGVcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEBjbGFzcyBGYWJyaWNDcnVkQ29udHJhY3RcbiAqIEBleHRlbmRzIHtDb250cmFjdH1cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBEZWZpbmUgYSBtb2RlbFxuICogQHRhYmxlKCdhc3NldHMnKVxuICogY2xhc3MgQXNzZXQgZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBpZCgpXG4gKiAgIGlkOiBzdHJpbmc7XG4gKlxuICogICBAcHJvcGVydHkoKVxuICogICBkYXRhOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogLy8gQ3JlYXRlIGEgY29udHJhY3QgdGhhdCBleHRlbmRzIEZhYnJpY0NydWRDb250cmFjdFxuICogZXhwb3J0IGNsYXNzIEFzc2V0Q29udHJhY3QgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3Q8QXNzZXQ+IHtcbiAqICAgY29uc3RydWN0b3IoKSB7XG4gKiAgICAgc3VwZXIoJ0Fzc2V0Q29udHJhY3QnLCBBc3NldCk7XG4gKiAgIH1cbiAqXG4gKiAgIC8vIEFkZCBjdXN0b20gbWV0aG9kcyBhcyBuZWVkZWRcbiAqICAgYXN5bmMgZ2V0QXNzZXRIaXN0b3J5KGN0eDogQ29udGV4dCwgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55W10+IHtcbiAqICAgICAvLyBDdXN0b20gaW1wbGVtZW50YXRpb25cbiAqICAgfVxuICogfVxuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IEFkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgU3RhdGVEQlxuICpcbiAqICAgQ2xpZW50LT4+Q29udHJhY3Q6IGNyZWF0ZShjdHgsIG1vZGVsKVxuICogICBDb250cmFjdC0+PlJlcG9zaXRvcnk6IHJlcG9zaXRvcnkoY3R4KVxuICogICBDb250cmFjdC0+PlJlcG9zaXRvcnk6IGNyZWF0ZShtb2RlbCwgY3R4KVxuICogICBSZXBvc2l0b3J5LT4+QWRhcHRlcjogY3JlYXRlKHRhYmxlTmFtZSwgaWQsIHJlY29yZCwgdHJhbnNpZW50LCBjdHgpXG4gKiAgIEFkYXB0ZXItPj5TdGF0ZURCOiBwdXRTdGF0ZShpZCwgc2VyaWFsaXplZERhdGEpXG4gKiAgIFN0YXRlREItLT4+QWRhcHRlcjogU3VjY2Vzc1xuICogICBBZGFwdGVyLS0+PlJlcG9zaXRvcnk6IHJlY29yZFxuICogICBSZXBvc2l0b3J5LS0+PkNvbnRyYWN0OiBtb2RlbFxuICogICBDb250cmFjdC0tPj5DbGllbnQ6IG1vZGVsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGYWJyaWNDcnVkQ29udHJhY3Q8TSBleHRlbmRzIE1vZGVsPlxuICBleHRlbmRzIENvbnRyYWN0XG4gIGltcGxlbWVudHMgQ2hlY2thYmxlXG57XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2hhcmVkIGFkYXB0ZXIgaW5zdGFuY2UgZm9yIGFsbCBjb250cmFjdCBpbnN0YW5jZXNcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgYWRhcHRlcjogRmFicmljQ29udHJhY3RBZGFwdGVyID0gbmV3IEZhYnJpY0NvbnRyYWN0QWRhcHRlcigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXBvOiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8TT47XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBzZXJpYWxpemVyID0gbmV3IERldGVybWluaXN0aWNTZXJpYWxpemVyKCk7XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0NydWRDb250cmFjdCBpbnN0YW5jZVxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyBhIGNvbnRyYWN0IHdpdGggYSBuYW1lIGFuZCBtb2RlbCBjbGFzc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjb250cmFjdFxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBjbGF6eiAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvclxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xheno6IENvbnN0cnVjdG9yPE0+XG4gICkge1xuICAgIHN1cGVyKG5hbWUpO1xuICAgIHRoaXMucmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoY2xhenopO1xuICB9XG5cbiAgYXN5bmMgbGlzdEJ5KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICBvcmRlcjogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMubGlzdEJ5KTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmxpc3RCeShcbiAgICAgIGtleSBhcyBrZXlvZiBNLFxuICAgICAgb3JkZXIgYXMgT3JkZXJEaXJlY3Rpb24sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHBhZ2luYXRlQnkoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5OiBzdHJpbmcgfCBrZXlvZiBNLFxuICAgIG9yZGVyOiBzdHJpbmcsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMucGFnaW5hdGVCeSk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5wYWdpbmF0ZUJ5KGtleSBhcyBrZXlvZiBNLCBvcmRlciBhcyBhbnksIHNpemUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZUJ5KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICB2YWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMuZmluZE9uZUJ5KTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXkgYXMga2V5b2YgTSwgdmFsdWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc3RhdGVtZW50KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICkge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMuc3RhdGVtZW50KTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnN0YXRlbWVudChtZXRob2QsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgc2luZ2xlIG1vZGVsIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBjcmVhdGUgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIG1vZGVsOiBzdHJpbmcgfCBNLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8c3RyaW5nIHwgTT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgdGhpcy5jcmVhdGUpO1xuICAgIGxvZy5pbmZvKGBDT05UUkFDVCBDUkVBVEUsICR7Y3R4QXJnc31gKTtcblxuICAgIGlmICh0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIpIG1vZGVsID0gdGhpcy5kZXNlcmlhbGl6ZTxNPihtb2RlbCkgYXMgTTtcblxuICAgIGxvZy5pbmZvKGBDcmVhdGluZyBtb2RlbDogJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9YCk7XG5cbiAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLmdldFRyYW5zaWVudERhdGEoY3R4KTtcblxuICAgIGxvZy5pbmZvKGBNZXJnaW5nIHRyYW5zaWVudCBkYXRhLi4uYCk7XG4gICAgbW9kZWwgPSBNb2RlbC5tZXJnZShtb2RlbCwgdHJhbnNpZW50LCB0aGlzLmNsYXp6KSBhcyBNO1xuXG4gICAgcmV0dXJuIHRoaXMucmVwby5jcmVhdGUobW9kZWwsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHNpbmdsZSBtb2RlbCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyByZWFkIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUgbW9kZWwgdG8gcmVhZFxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgcmVhZChcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IFByaW1hcnlLZXlUeXBlIHwgc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8TSB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgdGhpcy5yZWFkKTtcblxuICAgIGxvZy5pbmZvKGByZWFkaW5nIGVudHJ5IHdpdGggcGsgJHtrZXl9IGApO1xuXG4gICAgcmV0dXJuIHRoaXMucmVwby5yZWFkKGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJhbnNpZW50RGF0YShjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCk6IGFueSB7XG4gICAgY29uc3QgdHJhbnNpZW50TWFwID0gY3R4LnN0dWIuZ2V0VHJhbnNpZW50KCk7XG4gICAgbGV0IHRyYW5zaWVudDogYW55ID0ge307XG5cbiAgICBpZiAodHJhbnNpZW50TWFwLmhhcygodGhpcy5yZXBvIGFzIGFueSkudGFibGVOYW1lKSkge1xuICAgICAgdHJhbnNpZW50ID0gSlNPTi5wYXJzZShcbiAgICAgICAgKHRyYW5zaWVudE1hcC5nZXQoKHRoaXMucmVwbyBhcyBhbnkpLnRhYmxlTmFtZSkgYXMgQnVmZmVyKT8udG9TdHJpbmcoXG4gICAgICAgICAgXCJ1dGY4XCJcbiAgICAgICAgKSBhcyBzdHJpbmdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zaWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSBtb2RlbCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgdXBkYXRlIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgbW9kZWxcbiAgICovXG4gIGFzeW5jIHVwZGF0ZShcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBtb2RlbDogc3RyaW5nIHwgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZyB8IE0+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMudXBkYXRlKTtcblxuICAgIGlmICh0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIpIG1vZGVsID0gdGhpcy5kZXNlcmlhbGl6ZTxNPihtb2RlbCkgYXMgTTtcblxuICAgIGxvZy5pbmZvKGBVcGRhdGluZyBtb2RlbDogJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9YCk7XG5cbiAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLmdldFRyYW5zaWVudERhdGEoY3R4KTtcblxuICAgIGxvZy5pbmZvKGBNZXJnaW5nIHRyYW5zaWVudCBkYXRhLi4uYCk7XG4gICAgbW9kZWwgPSBNb2RlbC5tZXJnZShtb2RlbCwgdHJhbnNpZW50LCB0aGlzLmNsYXp6KSBhcyBNO1xuICAgIHJldHVybiB0aGlzLnJlcG8udXBkYXRlKG1vZGVsLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHNpbmdsZSBtb2RlbCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBkZWxldGUgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBtb2RlbCB0byBkZWxldGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIG1vZGVsXG4gICAqL1xuICBhc3luYyBkZWxldGUoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5OiBQcmltYXJ5S2V5VHlwZSB8IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE0gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMuZGVsZXRlKTtcbiAgICBsb2cuaW5mbyhgZGVsZXRpbmcgZW50cnkgd2l0aCBwayAke2tleX0gYCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5kZWxldGUoU3RyaW5nKGtleSksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIG11bHRpcGxlIG1vZGVscyBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBkZWxldGVBbGwgbWV0aG9kXG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0ga2V5cyAtIFRoZSBrZXlzIG9mIHRoZSBtb2RlbHMgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIG1vZGVsc1xuICAgKi9cbiAgYXN5bmMgZGVsZXRlQWxsKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleXM6IFByaW1hcnlLZXlUeXBlW10gfCBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNW10gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCB0aGlzLnJlYWRBbGwpO1xuICAgIGlmICh0eXBlb2Yga2V5cyA9PT0gXCJzdHJpbmdcIikga2V5cyA9IEpTT04ucGFyc2Uoa2V5cykgYXMgc3RyaW5nW107XG4gICAgcmV0dXJuIHRoaXMucmVwby5kZWxldGVBbGwoa2V5cywgLi4uY3R4QXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIG11bHRpcGxlIG1vZGVscyBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyByZWFkQWxsIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgbnVtYmVyW119IGtleXMgLSBUaGUga2V5cyBvZiB0aGUgbW9kZWxzIHRvIHJlYWRcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCBtb2RlbHNcbiAgICovXG4gIGFzeW5jIHJlYWRBbGwoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5czogUHJpbWFyeUtleVR5cGVbXSB8IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1bXSB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIHRoaXMucmVhZEFsbCk7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSBcInN0cmluZ1wiKSBrZXlzID0gSlNPTi5wYXJzZShrZXlzKSBhcyBzdHJpbmdbXTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnJlYWRBbGwoa2V5cywgLi4uY3R4QXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgbXVsdGlwbGUgbW9kZWxzIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyB1cGRhdGVBbGwgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7TVtdfSBtb2RlbHMgLSBUaGUgbW9kZWxzIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCBtb2RlbHNcbiAgICovXG4gIGFzeW5jIHVwZGF0ZUFsbChcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBtb2RlbHM6IHN0cmluZyB8IE1bXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZyB8IE1bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgdGhpcy51cGRhdGVBbGwpO1xuICAgIGlmICh0eXBlb2YgbW9kZWxzID09PSBcInN0cmluZ1wiKVxuICAgICAgbW9kZWxzID0gKEpTT04ucGFyc2UobW9kZWxzKSBhcyBbXSlcbiAgICAgICAgLm1hcCgobSkgPT4gdGhpcy5kZXNlcmlhbGl6ZShtKSlcbiAgICAgICAgLm1hcCgobSkgPT4gbmV3IHRoaXMuY2xhenoobSkpIGFzIGFueTtcblxuICAgIGxvZy5pbmZvKGB1cGRhdGluZyAke21vZGVscy5sZW5ndGh9IGVudHJpZXMgdG8gdGhlIHRhYmxlYCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby51cGRhdGVBbGwobW9kZWxzIGFzIHVua25vd24gYXMgTVtdLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBxdWVyeSB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZGl0aW9ucyBhbmQgb3B0aW9ucy5cbiAgICogQHN1bW1hcnkgUHJvdmlkZXMgYSBzaW1wbGlmaWVkIHdheSB0byBxdWVyeSB0aGUgZGF0YWJhc2Ugd2l0aCBjb21tb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtDb25kaXRpb248TT59IGNvbmRpdGlvbiAtIFRoZSBjb25kaXRpb24gdG8gZmlsdGVyIHJlY29yZHMuXG4gICAqIEBwYXJhbSBvcmRlckJ5IC0gVGhlIGZpZWxkIHRvIG9yZGVyIHJlc3VsdHMgYnkuXG4gICAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcj1PcmRlckRpcmVjdGlvbi5BU0NdIC0gVGhlIHNvcnQgZGlyZWN0aW9uLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW2xpbWl0XSAtIE9wdGlvbmFsIG1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NraXBdIC0gT3B0aW9uYWwgbnVtYmVyIG9mIHJlc3VsdHMgdG8gc2tpcC5cbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBUaGUgcXVlcnkgcmVzdWx0cyBhcyBtb2RlbCBpbnN0YW5jZXMuXG4gICAqL1xuICBhc3luYyBxdWVyeShcbiAgICBjb250ZXh0OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgY29uZGl0aW9uOiBDb25kaXRpb248TT4gfCBzdHJpbmcsXG4gICAgb3JkZXJCeTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24gfCBzdHJpbmcgPSBPcmRlckRpcmVjdGlvbi5BU0MsXG4gICAgbGltaXQ/OiBudW1iZXIsXG4gICAgc2tpcD86IG51bWJlcixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1bXT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGNvbnRleHRdLCB0aGlzLnF1ZXJ5KTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLnF1ZXJ5KFxuICAgICAgY29uZGl0aW9uIGFzIENvbmRpdGlvbjxNPixcbiAgICAgIG9yZGVyQnkgYXMga2V5b2YgTSxcbiAgICAgIG9yZGVyIGFzIE9yZGVyRGlyZWN0aW9uLFxuICAgICAgbGltaXQsXG4gICAgICBza2lwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHJhdyBtZXRob2RcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHthbnl9IHJhd0lucHV0IC0gVGhlIHF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBkb2NzT25seSAtIFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgZG9jdW1lbnRzXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRzXG4gICAqL1xuICBhc3luYyByYXcoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgcmF3SW5wdXQ6IE1hbmdvUXVlcnkgfCBzdHJpbmcsXG4gICAgZG9jc09ubHk6IGJvb2xlYW4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxhbnkgfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCB0aGlzLnJhdyk7XG4gICAgaWYgKHR5cGVvZiByYXdJbnB1dCA9PT0gXCJzdHJpbmdcIilcbiAgICAgIHJhd0lucHV0ID0gSlNPTi5wYXJzZShyYXdJbnB1dCkgYXMgTWFuZ29RdWVyeTtcbiAgICByZXR1cm4gRmFicmljQ3J1ZENvbnRyYWN0LmFkYXB0ZXIucmF3KHJhd0lucHV0LCBkb2NzT25seSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VyaWFsaXplKG1vZGVsOiBNKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmFicmljQ3J1ZENvbnRyYWN0LnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXNlcmlhbGl6ZTxNIGV4dGVuZHMgTW9kZWw+KHN0cjogc3RyaW5nKTogTSB7XG4gICAgcmV0dXJuIChcbiAgICAgIEZhYnJpY0NydWRDb250cmFjdC5zZXJpYWxpemVyIGFzIHVua25vd24gYXMgU2VyaWFsaXplcjxNPlxuICAgICkuZGVzZXJpYWxpemUoc3RyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbml0KGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjdHhdLCB0aGlzLmluaXQpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIGNvbnRyYWN0ICR7dGhpcy5nZXROYW1lKCl9IGluaXRpYWxpemF0aW9uLi4uYCk7XG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgbG9nLmluZm8oYENvbnRyYWN0IGluaXRpYWxpemF0aW9uIGNvbXBsZXRlZC5gKTtcbiAgfVxuXG4gIGFzeW5jIGhlYWx0aGNoZWNrKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICk6IFByb21pc2U8c3RyaW5nIHwgaGVhbHRoY2hlY2s+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2N0eF0sIHRoaXMuaGVhbHRoY2hlY2spO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIEhlYWx0aGNoZWNrOiAke3RoaXMuaW5pdGlhbGl6ZWR9Li4uYCk7XG4gICAgcmV0dXJuIHsgaGVhbHRoY2hlY2s6IHRoaXMuaW5pdGlhbGl6ZWQgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBtdWx0aXBsZSBtb2RlbHMgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIGNyZWF0ZUFsbCBtZXRob2RcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gY3JlYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIG1vZGVsc1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlQWxsKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIG1vZGVsczogc3RyaW5nIHwgTVtdLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8c3RyaW5nIHwgTVtdPiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCB0aGlzLmNyZWF0ZUFsbCk7XG5cbiAgICBpZiAodHlwZW9mIG1vZGVscyA9PT0gXCJzdHJpbmdcIilcbiAgICAgIG1vZGVscyA9IChKU09OLnBhcnNlKG1vZGVscykgYXMgW10pXG4gICAgICAgIC5tYXAoKG0pID0+IHRoaXMuZGVzZXJpYWxpemUobSkpXG4gICAgICAgIC5tYXAoKG0pID0+IG5ldyB0aGlzLmNsYXp6KG0pKSBhcyBhbnk7XG5cbiAgICBsb2cuaW5mbyhgYWRkaW5nICR7bW9kZWxzLmxlbmd0aH0gZW50cmllcyB0byB0aGUgdGFibGVgKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmNyZWF0ZUFsbChtb2RlbHMgYXMgdW5rbm93biBhcyBNW10sIGN0eCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsb2dDdHg8QVJHUyBleHRlbmRzIGFueVtdPihcbiAgICBhcmdzOiBBUkdTLFxuICAgIG1ldGhvZDogKCguLi5hcmdzOiBhbnlbXSkgPT4gYW55KSB8IHN0cmluZ1xuICApOiBQcm9taXNlPFxuICAgIENvbnRleHR1YWxpemVkQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+ICYge1xuICAgICAgc3R1YjogQ2hhaW5jb2RlU3R1YjtcbiAgICAgIGlkZW50aXR5OiBDbGllbnRJZGVudGl0eTtcbiAgICB9XG4gID4ge1xuICAgIHJldHVybiBGYWJyaWNDcnVkQ29udHJhY3QubG9nQ3R4LmJpbmQodGhpcykoYXJncywgbWV0aG9kIGFzIGFueSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhdGljIGFzeW5jIGxvZ0N0eDxBUkdTIGV4dGVuZHMgYW55W10+KFxuICAgIHRoaXM6IGFueSxcbiAgICBhcmdzOiBBUkdTLFxuICAgIG1ldGhvZDogc3RyaW5nXG4gICk6IFByb21pc2U8XG4gICAgQ29udGV4dHVhbGl6ZWRBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dCwgQVJHUz4gJiB7XG4gICAgICBzdHViOiBDaGFpbmNvZGVTdHViO1xuICAgICAgaWRlbnRpdHk6IENsaWVudElkZW50aXR5O1xuICAgIH1cbiAgPjtcbiAgcHJvdGVjdGVkIHN0YXRpYyBhc3luYyBsb2dDdHg8QVJHUyBleHRlbmRzIGFueVtdPihcbiAgICB0aGlzOiBhbnksXG4gICAgYXJnczogQVJHUyxcbiAgICBtZXRob2Q6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55XG4gICk6IFByb21pc2U8XG4gICAgQ29udGV4dHVhbGl6ZWRBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dCwgQVJHUz4gJiB7XG4gICAgICBzdHViOiBDaGFpbmNvZGVTdHViO1xuICAgICAgaWRlbnRpdHk6IENsaWVudElkZW50aXR5O1xuICAgIH1cbiAgPjtcbiAgcHJvdGVjdGVkIHN0YXRpYyBhc3luYyBsb2dDdHg8QVJHUyBleHRlbmRzIGFueVtdPihcbiAgICB0aGlzOiBhbnksXG4gICAgYXJnczogQVJHUyxcbiAgICBtZXRob2Q6ICgoLi4uYXJnczogYW55W10pID0+IGFueSkgfCBzdHJpbmdcbiAgKTogUHJvbWlzZTxcbiAgICBDb250ZXh0dWFsaXplZEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPiAmIHtcbiAgICAgIHN0dWI6IENoYWluY29kZVN0dWI7XG4gICAgICBpZGVudGl0eTogQ2xpZW50SWRlbnRpdHk7XG4gICAgfVxuICA+IHtcbiAgICBpZiAoYXJncy5sZW5ndGggPCAxKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk5vIGNvbnRleHQgcHJvdmlkZWRcIik7XG4gICAgY29uc3QgY3R4ID0gYXJncy5wb3AoKSBhcyBGYWJyaWNDb250cmFjdENvbnRleHQgfCBDb250ZXh0O1xuICAgIGlmIChjdHggaW5zdGFuY2VvZiBGYWJyaWNDb250cmFjdENvbnRleHQpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjdHgsXG4gICAgICAgIGxvZzogY3R4LmxvZ2dlci5jbGVhcigpLmZvcih0aGlzKS5mb3IobWV0aG9kKSxcbiAgICAgICAgY3R4QXJnczogWy4uLmFyZ3MsIGN0eF0sXG4gICAgICAgIHN0dWI6IGN0eC5zdHViLFxuICAgICAgICBpZGVudGl0eTogY3R4LmlkZW50aXR5LFxuICAgICAgfTtcblxuICAgIGlmICghKGN0eCBpbnN0YW5jZW9mIEN0eCkpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk5vIHZhbGlkIGNvbnRleHQgcHJvdmlkZWRcIik7XG5cbiAgICBmdW5jdGlvbiBnZXRPcCgpIHtcbiAgICAgIGlmICh0eXBlb2YgbWV0aG9kID09PSBcInN0cmluZ1wiKSByZXR1cm4gbWV0aG9kO1xuICAgICAgc3dpdGNoIChtZXRob2QubmFtZSkge1xuICAgICAgICBjYXNlIE9wZXJhdGlvbktleXMuQ1JFQVRFOlxuICAgICAgICBjYXNlIE9wZXJhdGlvbktleXMuUkVBRDpcbiAgICAgICAgY2FzZSBPcGVyYXRpb25LZXlzLlVQREFURTpcbiAgICAgICAgY2FzZSBPcGVyYXRpb25LZXlzLkRFTEVURTpcbiAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTDpcbiAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEw6XG4gICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEw6XG4gICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEw6XG4gICAgICAgICAgcmV0dXJuIG1ldGhvZC5uYW1lO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBtZXRob2QubmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvdmVycmlkZXMgPSB7XG4gICAgICBjb3JyZWxhdGlvbklkOiBjdHguc3R1Yi5nZXRUeElEKCksXG4gICAgfTtcbiAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgRmFicmljQ3J1ZENvbnRyYWN0LmFkYXB0ZXIuY29udGV4dChcbiAgICAgIGdldE9wKCksXG4gICAgICBvdmVycmlkZXMgYXMgYW55LFxuICAgICAgdGhpcy5jbGF6eixcbiAgICAgIGN0eFxuICAgICk7XG5cbiAgICBjb25zdCBsb2cgPSAoXG4gICAgICB0aGlzXG4gICAgICAgID8gY29udGV4dC5sb2dnZXIuZm9yKHRoaXMpLmZvcihtZXRob2QpXG4gICAgICAgIDogY29udGV4dC5sb2dnZXIuY2xlYXIoKS5mb3IodGhpcykuZm9yKG1ldGhvZClcbiAgICApIGFzIExvZ2dlck9mPEZhYnJpY0NvbnRyYWN0Q29udGV4dD47XG4gICAgcmV0dXJuIHtcbiAgICAgIGN0eDogY29udGV4dCxcbiAgICAgIGxvZzogbG9nLFxuICAgICAgc3R1YjogY29udGV4dC5zdHViLFxuICAgICAgaWRlbnRpdHk6IGNvbnRleHQuaWRlbnRpdHksXG4gICAgICBjdHhBcmdzOiBbLi4uYXJncywgY29udGV4dF0sXG4gICAgfTtcbiAgfVxufVxuIl19
321
+ //# sourceMappingURL=crud-contract.js.map
@@ -1,7 +1,7 @@
1
1
  import { FabricContractAdapter } from "../ContractAdapter";
2
2
  import { Contract, Context as Ctx } from "fabric-contract-api";
3
3
  import { Model } from "@decaf-ts/decorator-validation";
4
- import { Condition, ContextualizedArgs, OrderDirection } from "@decaf-ts/core";
4
+ import { Condition, ContextualizedArgs, OrderDirection, Paginator } from "@decaf-ts/core";
5
5
  import { FabricContractRepository } from "../FabricContractRepository";
6
6
  import { DeterministicSerializer } from "../../shared/DeterministicSerializer";
7
7
  import { MangoQuery } from "@decaf-ts/for-couchdb";
@@ -74,9 +74,9 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
74
74
  * @param {Constructor<M>} clazz - The model constructor
75
75
  */
76
76
  protected constructor(name: string, clazz: Constructor<M>);
77
- listBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ...args: any[]): Promise<M[]>;
78
- paginateBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, size: number, ...args: any[]): Promise<import("@decaf-ts/core").Paginator<M, M[], any>>;
79
- findOneBy(ctx: Ctx | FabricContractContext, key: string | keyof M, value: any, ...args: any[]): Promise<M>;
77
+ listBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, ...args: any[]): Promise<M[] | string>;
78
+ paginateBy(ctx: Ctx | FabricContractContext, key: string | keyof M, order: string, size: number, ...args: any[]): Promise<Paginator<M, any> | string>;
79
+ findOneBy(ctx: Ctx | FabricContractContext, key: string | keyof M, value: any, ...args: any[]): Promise<M | string>;
80
80
  statement(ctx: Ctx | FabricContractContext, method: string, ...args: any[]): Promise<any>;
81
81
  /**
82
82
  * @description Creates a single model in the state database
@@ -152,7 +152,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
152
152
  * @param {number} [skip] - Optional number of results to skip.
153
153
  * @return {Promise<M[]>} The query results as model instances.
154
154
  */
155
- query(context: Ctx | FabricContractContext, condition: Condition<M> | string, orderBy: string | keyof M, order?: OrderDirection | string, limit?: number, skip?: number, ...args: any[]): Promise<M[]>;
155
+ query(context: Ctx | FabricContractContext, condition: Condition<M> | string, orderBy: string | keyof M, order?: OrderDirection | string, limit?: number, skip?: number, ...args: any[]): Promise<M[] | string>;
156
156
  /**
157
157
  * @description Executes a raw query against the state database
158
158
  * @summary Delegates to the repository's raw method
@@ -162,7 +162,7 @@ export declare abstract class FabricCrudContract<M extends Model> extends Contra
162
162
  * @param {...any[]} args - Additional arguments
163
163
  * @return {Promise<any>} Promise resolving to the query results
164
164
  */
165
- raw(ctx: Ctx | FabricContractContext, rawInput: MangoQuery | string, docsOnly: boolean, ...args: any[]): Promise<any | string>;
165
+ raw(ctx: Ctx | FabricContractContext, rawInput: MangoQuery, docsOnly: boolean, ...args: any[]): Promise<any>;
166
166
  protected serialize(model: M): string;
167
167
  protected deserialize<M extends Model>(str: string): M;
168
168
  protected init(ctx: Ctx | FabricContractContext): Promise<void>;