@decaf-ts/for-fabric 0.12.6 → 0.12.7

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 (519) hide show
  1. package/dist/for-fabric.cjs +2 -3797
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -3901
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/cjs/bin/cli.cjs +2 -2
  6. package/lib/cjs/bin/cli.cjs.map +1 -0
  7. package/lib/cjs/cli-module.cjs +2 -2
  8. package/lib/cjs/cli-module.cjs.map +1 -0
  9. package/lib/cjs/cli-utils.cjs +2 -2
  10. package/lib/cjs/cli-utils.cjs.map +1 -0
  11. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  12. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  13. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  14. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  15. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  16. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  17. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  18. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  19. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  20. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  21. package/lib/cjs/client/collections/generation.cjs +2 -2
  22. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  23. package/lib/cjs/client/collections/index.cjs +2 -2
  24. package/lib/cjs/client/collections/index.cjs.map +1 -0
  25. package/lib/cjs/client/constants.cjs +2 -2
  26. package/lib/cjs/client/constants.cjs.map +1 -0
  27. package/lib/cjs/client/crypto.cjs +2 -2
  28. package/lib/cjs/client/crypto.cjs.map +1 -0
  29. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  30. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  31. package/lib/cjs/client/erc20/index.cjs +2 -2
  32. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  33. package/lib/cjs/client/fabric-fs.cjs +2 -2
  34. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  35. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  36. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  37. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  38. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  39. package/lib/cjs/client/ids/index.cjs +2 -2
  40. package/lib/cjs/client/ids/index.cjs.map +1 -0
  41. package/lib/cjs/client/index.cjs +2 -2
  42. package/lib/cjs/client/index.cjs.map +1 -0
  43. package/lib/cjs/client/indexes/generation.cjs +2 -2
  44. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  45. package/lib/cjs/client/indexes/index.cjs +2 -2
  46. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  47. package/lib/cjs/client/logging.cjs +2 -2
  48. package/lib/cjs/client/logging.cjs.map +1 -0
  49. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  50. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  51. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  52. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  53. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  54. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  55. package/lib/cjs/client/services/constants.cjs +2 -2
  56. package/lib/cjs/client/services/constants.cjs.map +1 -0
  57. package/lib/cjs/client/services/index.cjs +2 -2
  58. package/lib/cjs/client/services/index.cjs.map +1 -0
  59. package/lib/cjs/client/types.cjs +2 -2
  60. package/lib/cjs/client/types.cjs.map +1 -0
  61. package/lib/cjs/client/utils.cjs +2 -2
  62. package/lib/cjs/client/utils.cjs.map +1 -0
  63. package/lib/cjs/contract/Address.cjs +2 -2
  64. package/lib/cjs/contract/Address.cjs.map +1 -0
  65. package/lib/cjs/contract/AddressContract.cjs +2 -2
  66. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  67. package/lib/cjs/contract/AuditContract.cjs +2 -2
  68. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  69. package/lib/cjs/contract/BatchContract.cjs +2 -2
  70. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  71. package/lib/cjs/contract/MarketContract.cjs +2 -2
  72. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  73. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  74. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  75. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  76. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  77. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  78. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  79. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  80. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  81. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  82. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  83. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  84. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  85. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  86. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  87. package/lib/cjs/contract/Product.cjs +2 -2
  88. package/lib/cjs/contract/Product.cjs.map +1 -0
  89. package/lib/cjs/contract/ProductContract.cjs +2 -2
  90. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  91. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  92. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  93. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  94. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  95. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  96. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  97. package/lib/cjs/contract/User.cjs +2 -2
  98. package/lib/cjs/contract/User.cjs.map +1 -0
  99. package/lib/cjs/contract/UserContract.cjs +2 -2
  100. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  101. package/lib/cjs/contract/index.cjs +3 -2
  102. package/lib/cjs/contract/index.cjs.map +1 -0
  103. package/lib/cjs/contract/logging-context.cjs +2 -2
  104. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  105. package/lib/cjs/contract/models/Audit.cjs +2 -2
  106. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  107. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  108. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  109. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  110. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  111. package/lib/cjs/contract/models/Batch.cjs +2 -2
  112. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  113. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  114. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  115. package/lib/cjs/contract/models/History.cjs +2 -2
  116. package/lib/cjs/contract/models/History.cjs.map +1 -0
  117. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  118. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  119. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  120. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  121. package/lib/cjs/contract/models/Market.cjs +2 -2
  122. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  123. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  124. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  125. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  126. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  127. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  128. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  129. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  130. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  131. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  132. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  133. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  134. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  135. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  136. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  137. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  138. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  139. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  140. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  141. package/lib/cjs/contract/models/Product.cjs +2 -2
  142. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  143. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  144. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  145. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  146. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  147. package/lib/cjs/contract/models/constants.cjs +2 -2
  148. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  149. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  150. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  151. package/lib/cjs/contract/models/decorators.cjs +2 -2
  152. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  153. package/lib/cjs/contract/models/gtin.cjs +2 -2
  154. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  155. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  156. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  157. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  158. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  159. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  160. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  161. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  162. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  163. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  164. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  165. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  166. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  167. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  168. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  169. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  170. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  171. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  172. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  173. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  174. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  175. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  176. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  177. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  178. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  179. package/lib/cjs/contracts/auth/index.cjs +2 -2
  180. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  181. package/lib/cjs/contracts/bootstrap.cjs +14 -0
  182. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  183. package/lib/cjs/contracts/crud/crud-contract.cjs +3 -2
  184. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  185. package/lib/cjs/contracts/crud/index.cjs +2 -2
  186. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  187. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  188. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  189. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  190. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  191. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  192. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  193. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  194. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  195. package/lib/cjs/contracts/fabric-overrides.cjs +65 -0
  196. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  197. package/lib/cjs/contracts/index.cjs +3 -2
  198. package/lib/cjs/contracts/index.cjs.map +1 -0
  199. package/lib/cjs/contracts/logging.cjs +2 -2
  200. package/lib/cjs/contracts/logging.cjs.map +1 -0
  201. package/lib/cjs/contracts/overrides.cjs +2 -2
  202. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  203. package/lib/cjs/contracts/types.cjs +2 -2
  204. package/lib/cjs/contracts/types.cjs.map +1 -0
  205. package/lib/cjs/contracts/uuid.cjs +2 -2
  206. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  207. package/lib/cjs/index.cjs +2 -2
  208. package/lib/cjs/index.cjs.map +1 -0
  209. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  210. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  211. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  212. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  213. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  214. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  215. package/lib/cjs/shared/constants.cjs +2 -2
  216. package/lib/cjs/shared/constants.cjs.map +1 -0
  217. package/lib/cjs/shared/decorators.cjs +2 -2
  218. package/lib/cjs/shared/decorators.cjs.map +1 -0
  219. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  220. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  221. package/lib/cjs/shared/erc20/index.cjs +2 -2
  222. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  223. package/lib/cjs/shared/errors.cjs +2 -2
  224. package/lib/cjs/shared/errors.cjs.map +1 -0
  225. package/lib/cjs/shared/events.cjs +2 -2
  226. package/lib/cjs/shared/events.cjs.map +1 -0
  227. package/lib/cjs/shared/fabric-types.cjs +2 -2
  228. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  229. package/lib/cjs/shared/index.cjs +2 -2
  230. package/lib/cjs/shared/index.cjs.map +1 -0
  231. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  232. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  233. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  234. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  235. package/lib/cjs/shared/math.cjs +2 -2
  236. package/lib/cjs/shared/math.cjs.map +1 -0
  237. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  238. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  239. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  240. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  241. package/lib/cjs/shared/model/Identity.cjs +2 -2
  242. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  243. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  244. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  245. package/lib/cjs/shared/model/index.cjs +2 -2
  246. package/lib/cjs/shared/model/index.cjs.map +1 -0
  247. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  248. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  249. package/lib/cjs/shared/overrides/index.cjs +2 -2
  250. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  251. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  252. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  253. package/lib/cjs/shared/types.cjs +2 -2
  254. package/lib/cjs/shared/types.cjs.map +1 -0
  255. package/lib/cjs/version.cjs +2 -2
  256. package/lib/cjs/version.cjs.map +1 -0
  257. package/lib/esm/bin/cli.js +1 -1
  258. package/lib/esm/bin/cli.js.map +1 -0
  259. package/lib/esm/cli-module.js +1 -1
  260. package/lib/esm/cli-module.js.map +1 -0
  261. package/lib/esm/cli-utils.js +1 -1
  262. package/lib/esm/cli-utils.js.map +1 -0
  263. package/lib/esm/client/FabricClientAdapter.js +1 -1
  264. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  265. package/lib/esm/client/FabricClientDispatch.js +1 -1
  266. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  267. package/lib/esm/client/FabricClientPaginator.js +1 -1
  268. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  269. package/lib/esm/client/FabricClientRepository.js +1 -1
  270. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  271. package/lib/esm/client/FabricClientStatement.js +1 -1
  272. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  273. package/lib/esm/client/collections/generation.js +1 -1
  274. package/lib/esm/client/collections/generation.js.map +1 -0
  275. package/lib/esm/client/collections/index.js +1 -1
  276. package/lib/esm/client/collections/index.js.map +1 -0
  277. package/lib/esm/client/constants.js +1 -1
  278. package/lib/esm/client/constants.js.map +1 -0
  279. package/lib/esm/client/crypto.js +1 -1
  280. package/lib/esm/client/crypto.js.map +1 -0
  281. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  282. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  283. package/lib/esm/client/erc20/index.js +1 -1
  284. package/lib/esm/client/erc20/index.js.map +1 -0
  285. package/lib/esm/client/fabric-fs.js +1 -1
  286. package/lib/esm/client/fabric-fs.js.map +1 -0
  287. package/lib/esm/client/fabric-hsm.js +1 -1
  288. package/lib/esm/client/fabric-hsm.js.map +1 -0
  289. package/lib/esm/client/ids/id-extraction.js +1 -1
  290. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  291. package/lib/esm/client/ids/index.js +1 -1
  292. package/lib/esm/client/ids/index.js.map +1 -0
  293. package/lib/esm/client/index.js +1 -1
  294. package/lib/esm/client/index.js.map +1 -0
  295. package/lib/esm/client/indexes/generation.js +1 -1
  296. package/lib/esm/client/indexes/generation.js.map +1 -0
  297. package/lib/esm/client/indexes/index.js +1 -1
  298. package/lib/esm/client/indexes/index.js.map +1 -0
  299. package/lib/esm/client/logging.js +1 -1
  300. package/lib/esm/client/logging.js.map +1 -0
  301. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  302. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  303. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  304. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  305. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  306. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  307. package/lib/esm/client/services/constants.js +1 -1
  308. package/lib/esm/client/services/constants.js.map +1 -0
  309. package/lib/esm/client/services/index.js +1 -1
  310. package/lib/esm/client/services/index.js.map +1 -0
  311. package/lib/esm/client/types.js +1 -1
  312. package/lib/esm/client/types.js.map +1 -0
  313. package/lib/esm/client/utils.js +1 -1
  314. package/lib/esm/client/utils.js.map +1 -0
  315. package/lib/esm/contract/Address.js +1 -1
  316. package/lib/esm/contract/Address.js.map +1 -0
  317. package/lib/esm/contract/AddressContract.js +1 -1
  318. package/lib/esm/contract/AddressContract.js.map +1 -0
  319. package/lib/esm/contract/AuditContract.js +1 -1
  320. package/lib/esm/contract/AuditContract.js.map +1 -0
  321. package/lib/esm/contract/BatchContract.js +1 -1
  322. package/lib/esm/contract/BatchContract.js.map +1 -0
  323. package/lib/esm/contract/MarketContract.js +1 -1
  324. package/lib/esm/contract/MarketContract.js.map +1 -0
  325. package/lib/esm/contract/OtherAuditContract.js +1 -1
  326. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  327. package/lib/esm/contract/OtherBatchContract.js +1 -1
  328. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  329. package/lib/esm/contract/OtherMarketContract.js +1 -1
  330. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  331. package/lib/esm/contract/OtherProductContract.js +1 -1
  332. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  333. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  334. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  335. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  336. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  337. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  338. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  339. package/lib/esm/contract/Product.js +1 -1
  340. package/lib/esm/contract/Product.js.map +1 -0
  341. package/lib/esm/contract/ProductContract.js +1 -1
  342. package/lib/esm/contract/ProductContract.js.map +1 -0
  343. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  344. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  345. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  346. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  347. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  348. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  349. package/lib/esm/contract/User.js +1 -1
  350. package/lib/esm/contract/User.js.map +1 -0
  351. package/lib/esm/contract/UserContract.js +1 -1
  352. package/lib/esm/contract/UserContract.js.map +1 -0
  353. package/lib/esm/contract/index.js +2 -1
  354. package/lib/esm/contract/index.js.map +1 -0
  355. package/lib/esm/contract/logging-context.js +1 -1
  356. package/lib/esm/contract/logging-context.js.map +1 -0
  357. package/lib/esm/contract/models/Audit.js +1 -1
  358. package/lib/esm/contract/models/Audit.js.map +1 -0
  359. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  360. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  361. package/lib/esm/contract/models/BaseModel.js +1 -1
  362. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  363. package/lib/esm/contract/models/Batch.js +1 -1
  364. package/lib/esm/contract/models/Batch.js.map +1 -0
  365. package/lib/esm/contract/models/GtinOwner.js +1 -1
  366. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  367. package/lib/esm/contract/models/History.js +1 -1
  368. package/lib/esm/contract/models/History.js.map +1 -0
  369. package/lib/esm/contract/models/Leaflet.js +1 -1
  370. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  371. package/lib/esm/contract/models/LeafletFile.js +1 -1
  372. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  373. package/lib/esm/contract/models/Market.js +1 -1
  374. package/lib/esm/contract/models/Market.js.map +1 -0
  375. package/lib/esm/contract/models/OtherAudit.js +1 -1
  376. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  377. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  378. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  379. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  380. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  381. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  382. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  383. package/lib/esm/contract/models/OtherMarket.js +1 -1
  384. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  385. package/lib/esm/contract/models/OtherProduct.js +1 -1
  386. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  387. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  388. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  389. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  390. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  391. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  392. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  393. package/lib/esm/contract/models/Product.js +1 -1
  394. package/lib/esm/contract/models/Product.js.map +1 -0
  395. package/lib/esm/contract/models/ProductStrength.js +1 -1
  396. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  397. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  398. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  399. package/lib/esm/contract/models/constants.js +1 -1
  400. package/lib/esm/contract/models/constants.js.map +1 -0
  401. package/lib/esm/contract/models/decorators-private.js +1 -1
  402. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  403. package/lib/esm/contract/models/decorators.js +1 -1
  404. package/lib/esm/contract/models/decorators.js.map +1 -0
  405. package/lib/esm/contract/models/gtin.js +1 -1
  406. package/lib/esm/contract/models/gtin.js.map +1 -0
  407. package/lib/esm/contract/models/history-dec.js +1 -1
  408. package/lib/esm/contract/models/history-dec.js.map +1 -0
  409. package/lib/esm/contracts/ContractAdapter.js +1 -1
  410. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  411. package/lib/esm/contracts/ContractContext.js +1 -1
  412. package/lib/esm/contracts/ContractContext.js.map +1 -0
  413. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  414. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  415. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  416. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  417. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  418. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  419. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  420. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  421. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  422. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  423. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  424. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  425. package/lib/esm/contracts/MigrationContract.js +1 -1
  426. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  427. package/lib/esm/contracts/PrivateSequence.js +1 -1
  428. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  429. package/lib/esm/contracts/auth/decorators.js +1 -1
  430. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  431. package/lib/esm/contracts/auth/index.js +1 -1
  432. package/lib/esm/contracts/auth/index.js.map +1 -0
  433. package/lib/esm/contracts/bootstrap.js +11 -0
  434. package/lib/esm/contracts/bootstrap.js.map +1 -0
  435. package/lib/esm/contracts/crud/crud-contract.js +2 -1
  436. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  437. package/lib/esm/contracts/crud/index.js +1 -1
  438. package/lib/esm/contracts/crud/index.js.map +1 -0
  439. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  440. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  441. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  442. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  443. package/lib/esm/contracts/erc20/index.js +1 -1
  444. package/lib/esm/contracts/erc20/index.js.map +1 -0
  445. package/lib/esm/contracts/erc20/models.js +1 -1
  446. package/lib/esm/contracts/erc20/models.js.map +1 -0
  447. package/lib/esm/contracts/fabric-overrides.js +61 -0
  448. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  449. package/lib/esm/contracts/index.js +2 -1
  450. package/lib/esm/contracts/index.js.map +1 -0
  451. package/lib/esm/contracts/logging.js +1 -1
  452. package/lib/esm/contracts/logging.js.map +1 -0
  453. package/lib/esm/contracts/overrides.js +1 -1
  454. package/lib/esm/contracts/overrides.js.map +1 -0
  455. package/lib/esm/contracts/types.js +1 -1
  456. package/lib/esm/contracts/types.js.map +1 -0
  457. package/lib/esm/contracts/uuid.js +1 -1
  458. package/lib/esm/contracts/uuid.js.map +1 -0
  459. package/lib/esm/index.js +1 -1
  460. package/lib/esm/index.js.map +1 -0
  461. package/lib/esm/shared/ClientSerializer.js +1 -1
  462. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  463. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  464. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  465. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  466. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  467. package/lib/esm/shared/constants.js +1 -1
  468. package/lib/esm/shared/constants.js.map +1 -0
  469. package/lib/esm/shared/decorators.js +1 -1
  470. package/lib/esm/shared/decorators.js.map +1 -0
  471. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  472. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  473. package/lib/esm/shared/erc20/index.js +1 -1
  474. package/lib/esm/shared/erc20/index.js.map +1 -0
  475. package/lib/esm/shared/errors.js +1 -1
  476. package/lib/esm/shared/errors.js.map +1 -0
  477. package/lib/esm/shared/events.js +1 -1
  478. package/lib/esm/shared/events.js.map +1 -0
  479. package/lib/esm/shared/fabric-types.js +1 -1
  480. package/lib/esm/shared/fabric-types.js.map +1 -0
  481. package/lib/esm/shared/index.js +1 -1
  482. package/lib/esm/shared/index.js.map +1 -0
  483. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  484. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  485. package/lib/esm/shared/interfaces/index.js +1 -1
  486. package/lib/esm/shared/interfaces/index.js.map +1 -0
  487. package/lib/esm/shared/math.js +1 -1
  488. package/lib/esm/shared/math.js.map +1 -0
  489. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  490. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  491. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  492. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  493. package/lib/esm/shared/model/Identity.js +1 -1
  494. package/lib/esm/shared/model/Identity.js.map +1 -0
  495. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  496. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  497. package/lib/esm/shared/model/index.js +1 -1
  498. package/lib/esm/shared/model/index.js.map +1 -0
  499. package/lib/esm/shared/overrides/Model.js +1 -1
  500. package/lib/esm/shared/overrides/Model.js.map +1 -0
  501. package/lib/esm/shared/overrides/index.js +1 -1
  502. package/lib/esm/shared/overrides/index.js.map +1 -0
  503. package/lib/esm/shared/overrides/overrides.js +1 -1
  504. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  505. package/lib/esm/shared/types.js +1 -1
  506. package/lib/esm/shared/types.js.map +1 -0
  507. package/lib/esm/version.js +1 -1
  508. package/lib/esm/version.js.map +1 -0
  509. package/lib/types/contract/index.d.cts +1 -0
  510. package/lib/types/contract/index.d.mts +1 -0
  511. package/lib/types/contracts/bootstrap.d.cts +10 -0
  512. package/lib/types/contracts/bootstrap.d.mts +10 -0
  513. package/lib/types/contracts/crud/crud-contract.d.cts +1 -0
  514. package/lib/types/contracts/crud/crud-contract.d.mts +1 -0
  515. package/lib/types/contracts/fabric-overrides.d.cts +1 -0
  516. package/lib/types/contracts/fabric-overrides.d.mts +1 -0
  517. package/lib/types/contracts/index.d.cts +1 -0
  518. package/lib/types/contracts/index.d.mts +1 -0
  519. package/package.json +16 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FabricCrudContract = void 0;
4
+ require("./../bootstrap.cjs");
4
5
  require("./../../shared/overrides/index.cjs");
5
6
  const ContractAdapter_js_1 = require("./../ContractAdapter.cjs");
6
7
  const fabric_contract_api_1 = require("fabric-contract-api");
@@ -413,5 +414,5 @@ class FabricCrudContract extends fabric_contract_api_1.Contract {
413
414
  }
414
415
  }
415
416
  exports.FabricCrudContract = FabricCrudContract;
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdHMvY3J1ZC9jcnVkLWNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJDQUFnQztBQUNoQyxPQUFPLEVBRUwscUJBQXFCLEdBQ3RCLGdDQUEyQjtBQUM1QixPQUFPLEVBRUwsUUFBUSxFQUNSLE1BQU0sSUFBSSxZQUFZLEdBQ3ZCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFFTCxrQkFBa0IsRUFRbEIsY0FBYyxFQUNkLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsVUFBVSxHQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtEQUE2QztBQUsvRSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsR0FFZCxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQ0FBMkI7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxxQ0FBZ0M7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsMkJBQXNCO0FBRXRELFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQU0sT0FBZ0Isa0JBQ3BCLFNBQVEsUUFBUTtJQWFoQjs7T0FFRzthQUNjLFlBQU8sR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxBQUFyRCxDQUFzRDthQUVwRCxlQUFVLEdBQUcsSUFBSSx1QkFBdUIsRUFBRSxBQUFoQyxDQUFpQztJQU1yRSxJQUFjLElBQUk7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLFVB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LE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FDdEUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQWEsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FDVCxHQUFnQyxFQUNoQyxHQUFxQixFQUNyQixHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FDdEUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQWEsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FDVCxHQUFnQyxFQUNoQyxHQUFxQixFQUNyQixHQUFHLElBQVc7UUFFZCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FDdEUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEdBQWEsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsSUFB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QUFHO1lBQ0gsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLEtBQUs7Z0JBQ3ZCLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDdEQsQ0FBQztZQUNELE1BQU0sSUFBSSxrQkFBa0IsQ0FDMUIsZ0JBQWdCLEdBQUcsNENBQTRDLENBQ2hFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQTJCUyxNQUFNLENBSWQsSUFBcUQsRUFDckQsU0FBaUIsRUFDakIsY0FBdUIsS0FBSztRQU01QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksbUJBQW1CLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUN6RCxDQUFDLElBQUksQ0FBQyxLQUFZLEVBQUUsR0FBRyxJQUFJLENBQVEsRUFDbkMsU0FBUyxFQUNULFdBQWtCLEVBQ2xCLEdBQUcsQ0FLQSxDQUFDO1FBQ04sU0FBUyxVQUFVLENBQUMsR0FBNkI7WUFDL0MsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDhCQUE4QjtZQUNuRCxPQUFPLEdBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsY0FBYyxZQUFZLE9BQU8sQ0FBQztZQUFFLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vLi4vc2hhcmVkL292ZXJyaWRlc1wiO1xuaW1wb3J0IHtcbiAgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzLFxuICBGYWJyaWNDb250cmFjdEFkYXB0ZXIsXG59IGZyb20gXCIuLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7XG4gIENvbnRleHQgYXMgQ3R4LFxuICBDb250cmFjdCxcbiAgT2JqZWN0IGFzIEZhYnJpY09iamVjdCxcbn0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IE1vZGVsLCBTZXJpYWxpemVyIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgQWxsT3BlcmF0aW9uS2V5cyxcbiAgQXV0aG9yaXphdGlvbkVycm9yLFxuICBDb25kaXRpb24sXG4gIENvbnRleHR1YWxBcmdzLFxuICBEaXJlY3Rpb25MaW1pdE9mZnNldCxcbiAgRXZlbnRJZHMsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgTWV0aG9kT3JPcGVyYXRpb24sXG4gIE9ic2VydmVyLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBQZXJzaXN0ZW5jZU9ic2VydmVyLFxuICBQcmVwYXJlZFN0YXRlbWVudEtleXMsXG4gIFJlcG9zaXRvcnksXG4gIFNlcmlhbGl6ZWRQYWdlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeSB9IGZyb20gXCIuLi9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IERldGVybWluaXN0aWNTZXJpYWxpemVyIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9EZXRlcm1pbmlzdGljU2VyaWFsaXplclwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IENoZWNrYWJsZSwgaGVhbHRoY2hlY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2ludGVyZmFjZXMvQ2hlY2thYmxlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4uL0NvbnRyYWN0Q29udGV4dFwiO1xuaW1wb3J0IHtcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBPcGVyYXRpb25LZXlzLFxuICBQcmltYXJ5S2V5VHlwZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNaXNzaW5nQ29udGV4dEVycm9yIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9pbmRleFwiO1xuaW1wb3J0IHsgZXh0cmFjdE1zcElkIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUsIFZFUlNJT04gfSBmcm9tIFwiLi4vLi4vdmVyc2lvblwiO1xuXG5GYWJyaWNPYmplY3QoKShEYXRlKTtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgY29udHJhY3QgY2xhc3MgZm9yIENSVUQgb3BlcmF0aW9ucyBpbiBGYWJyaWMgY2hhaW5jb2RlXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBzdGFuZGFyZCBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZSBvcGVyYXRpb25zIGZvciBtb2RlbHMgaW4gRmFicmljIGNoYWluY29kZVxuICogQHRlbXBsYXRlIE0gLSBUeXBlIGV4dGVuZGluZyBNb2RlbFxuICogQGNsYXNzIEZhYnJpY0NydWRDb250cmFjdFxuICogQGV4dGVuZHMge0NvbnRyYWN0fVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIERlZmluZSBhIG1vZGVsXG4gKiBAdGFibGUoJ2Fzc2V0cycpXG4gKiBjbGFzcyBBc3NldCBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGlkKClcbiAqICAgaWQ6IHN0cmluZztcbiAqXG4gKiAgIEBwcm9wZXJ0eSgpXG4gKiAgIGRhdGE6IHN0cmluZztcbiAqIH1cbiAqXG4gKiAvLyBDcmVhdGUgYSBjb250cmFjdCB0aGF0IGV4dGVuZHMgRmFicmljQ3J1ZENvbnRyYWN0XG4gKiBleHBvcnQgY2xhc3MgQXNzZXRDb250cmFjdCBleHRlbmRzIEZhYnJpY0NydWRDb250cmFjdDxBc3NldD4ge1xuICogICBjb25zdHJ1Y3RvcigpIHtcbiAqICAgICBzdXBlcignQXNzZXRDb250cmFjdCcsIEFzc2V0KTtcbiAqICAgfVxuICpcbiAqICAgLy8gQWRkIGN1c3RvbSBtZXRob2RzIGFzIG5lZWRlZFxuICogICBhc3luYyBnZXRBc3NldEhpc3RvcnkoY3R4OiBDb250ZXh0LCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT4ge1xuICogICAgIC8vIEN1c3RvbSBpbXBsZW1lbnRhdGlvblxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBTdGF0ZURCXG4gKlxuICogICBDbGllbnQtPj5Db250cmFjdDogY3JlYXRlKGN0eCwgbW9kZWwpXG4gKiAgIENvbnRyYWN0LT4+UmVwb3NpdG9yeTogcmVwb3NpdG9yeShjdHgpXG4gKiAgIENvbnRyYWN0LT4+UmVwb3NpdG9yeTogY3JlYXRlKG1vZGVsLCBjdHgpXG4gKiAgIFJlcG9zaXRvcnktPj5BZGFwdGVyOiBjcmVhdGUodGFibGVOYW1lLCBpZCwgcmVjb3JkLCB0cmFuc2llbnQsIGN0eClcbiAqICAgQWRhcHRlci0+PlN0YXRlREI6IHB1dFN0YXRlKGlkLCBzZXJpYWxpemVkRGF0YSlcbiAqICAgU3RhdGVEQi0tPj5BZGFwdGVyOiBTdWNjZXNzXG4gKiAgIEFkYXB0ZXItLT4+UmVwb3NpdG9yeTogcmVjb3JkXG4gKiAgIFJlcG9zaXRvcnktLT4+Q29udHJhY3Q6IG1vZGVsXG4gKiAgIENvbnRyYWN0LS0+PkNsaWVudDogbW9kZWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZhYnJpY0NydWRDb250cmFjdDxNIGV4dGVuZHMgTW9kZWw+XG4gIGV4dGVuZHMgQ29udHJhY3RcbiAgaW1wbGVtZW50c1xuICAgIENoZWNrYWJsZSxcbiAgICBQZXJzaXN0ZW5jZU9ic2VydmVyPEZhYnJpY0NvbnRyYWN0Q29udGV4dD4sXG4gICAgT2JzZXJ2ZXI8XG4gICAgICBbXG4gICAgICAgIHRhYmxlOiBDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZyxcbiAgICAgICAgZXZlbnQ6IEFsbE9wZXJhdGlvbktleXMsXG4gICAgICAgIGlkOiBFdmVudElkcyxcbiAgICAgICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0PixcbiAgICAgIF1cbiAgICA+XG57XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2hhcmVkIGFkYXB0ZXIgaW5zdGFuY2UgZm9yIGFsbCBjb250cmFjdCBpbnN0YW5jZXNcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgYWRhcHRlcjogRmFicmljQ29udHJhY3RBZGFwdGVyID0gbmV3IEZhYnJpY0NvbnRyYWN0QWRhcHRlcigpO1xuXG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgc2VyaWFsaXplciA9IG5ldyBEZXRlcm1pbmlzdGljU2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3JlcG8/OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8TT47XG5cbiAgcHJvdGVjdGVkIGdldCByZXBvKCkge1xuICAgIGlmICghdGhpcy5fcmVwbykge1xuICAgICAgdGhpcy5fcmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwodGhpcy5jbGF6eik7XG4gICAgICAvLyB0cnkge1xuICAgICAgLy8gICB0aGlzLnJlcG8ub2JzZXJ2ZSh0aGlzKTtcbiAgICAgIC8vIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgLy8gICBpZiAoXG4gICAgICAvLyAgICAgZXJyIGluc3RhbmNlb2YgSW50ZXJuYWxFcnJvciAmJlxuICAgICAgLy8gICAgIGVyci5tZXNzYWdlLmluY2x1ZGVzKFwiT2JzZXJ2ZXIgYWxyZWFkeSByZWdpc3RlcmVkXCIpXG4gICAgICAvLyAgICkge1xuICAgICAgLy8gICAgIC8vIGFscmVhZHkgcmVnaXN0ZXJlZCBvYnNlcnZlcjsgaWdub3JlIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKGR1cmluZyB0ZXN0cylcbiAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICB0aHJvdyBlcnI7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3JlcG87XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljQ3J1ZENvbnRyYWN0IGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgY29udHJhY3Qgd2l0aCBhIG5hbWUgYW5kIG1vZGVsIGNsYXNzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0XG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IGNsYXp6IC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjbGF6ejogQ29uc3RydWN0b3I8TT5cbiAgKSB7XG4gICAgc3VwZXIobmFtZSk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoKFxuICAgIHRhYmxlOiBDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZyxcbiAgICBldmVudDogQWxsT3BlcmF0aW9uS2V5cyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWZyZXNoKTtcbiAgICBsb2cudmVyYm9zZShgUHVzaGluZyAke2V2ZW50fSBldmVudCBvbiB0YWJsZSAke3RhYmxlfSwgaWQocykgJHtpZH1gKTtcbiAgICAvLyBkbyBub3RoaW5nLiBhbGwgd2UgbmVlZGVkIHdhcyBhbiBvYnNlcnZlciB0byBraWNrc3RhcnQgdGhlIHByb2Nlc3NcbiAgfVxuXG4gIGFzeW5jIGxpc3RCeShcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgb3JkZXI6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1bXSB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkxJU1RfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5saXN0QnkpO1xuICAgIGxvZy5pbmZvKFxuICAgICAgYFJ1bm5pbmcgbGlzdEJ5IGtleSAke2tleSBhcyBzdHJpbmd9LCBvcmRlciAke29yZGVyfSBhbmQgYXJncyAke2N0eEFyZ3N9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5saXN0QnkoXG4gICAgICBrZXkgYXMga2V5b2YgTSxcbiAgICAgIG9yZGVyIGFzIE9yZGVyRGlyZWN0aW9uLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBwYWdpbmF0ZUJ5KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICBvcmRlcjogc3RyaW5nLFxuICAgIHJlZjogT21pdDxEaXJlY3Rpb25MaW1pdE9mZnNldCwgXCJkaXJlY3Rpb25cIj4gfCBzdHJpbmcgPSB7XG4gICAgICBvZmZzZXQ6IDEsXG4gICAgICBsaW1pdDogMTAsXG4gICAgfSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFNlcmlhbGl6ZWRQYWdlPE0+IHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnBhZ2luYXRlQnkpO1xuICAgIGxvZy5pbmZvKFxuICAgICAgYFJ1bm5pbmcgcGFnaW5hdGVCeSBrZXkgJHtrZXkgYXMgc3RyaW5nfSwgb3JkZXIgJHtvcmRlcn0gd2l0aCBzaXplICR7KHJlZiBhcyBhbnkpLmxpbWl0fSBhbmQgYXJncyAke2N0eEFyZ3N9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5wYWdpbmF0ZUJ5KFxuICAgICAga2V5IGFzIGtleW9mIE0sXG4gICAgICBvcmRlciBhcyBhbnksXG4gICAgICByZWYgYXMgYW55LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBwYWdlKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgZGlyZWN0aW9uOiBzdHJpbmcgfCBPcmRlckRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQyxcbiAgICByZWY6IE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+IHwgc3RyaW5nID0ge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgbGltaXQ6IDEwLFxuICAgIH0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxTZXJpYWxpemVkUGFnZTxNPiB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0UsIHRydWUpXG4gICAgKS5mb3IodGhpcy5wYWdlKTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGBQYWdpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGF6eil9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2BcbiAgICApO1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9XG4gICAgICB0eXBlb2YgcmVmID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gKEpTT04ucGFyc2UocmVmKSBhcyBPbWl0PERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBcImRpcmVjdGlvblwiPikgfHxcbiAgICAgICAgICAoe30gYXMgT21pdDxEaXJlY3Rpb25MaW1pdE9mZnNldCwgXCJkaXJlY3Rpb25cIj4pXG4gICAgICAgIDogcmVmO1xuICAgIHJldHVybiB0aGlzLnJlcG8ucGFnZShcbiAgICAgIHZhbHVlLFxuICAgICAgZGlyZWN0aW9uIGFzIE9yZGVyRGlyZWN0aW9uLFxuICAgICAgcmVmZXJlbmNlIGFzIE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBmaW5kT25lQnkoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5OiBzdHJpbmcgfCBrZXlvZiBNLFxuICAgIHZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuRklORF9PTkVfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5maW5kT25lQnkpO1xuICAgIGxvZy5pbmZvKFxuICAgICAgYFJ1bm5pbmcgZmluZE9uZUJ5IGtleSAke2tleSBhcyBzdHJpbmd9LCB2YWx1ZTogJHt2YWx1ZX0gd2l0aCBhcmdzICR7Y3R4QXJnc31gXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXkgYXMga2V5b2YgTSwgdmFsdWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc3RhdGVtZW50KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc3RhdGVtZW50KTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBzdGF0ZW1lbnQgJHttZXRob2R9IHdpdGggYXJncyAke2N0eEFyZ3N9YCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5zdGF0ZW1lbnQobWV0aG9kLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGNvdW50T2YoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5Pzogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPG51bWJlciB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkNPVU5UX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY291bnRPZik7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgY291bnRPZiR7a2V5ID8gYCBrZXkgJHtrZXkgYXMgc3RyaW5nfWAgOiBcIlwifWApO1xuICAgIHJldHVybiB0aGlzLnJlcG8uY291bnRPZihrZXkgYXMga2V5b2YgTSB8IHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBtYXhPZihcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNW2tleW9mIE1dIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubWF4T2YpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIG1heE9mIGtleSAke2tleSBhcyBzdHJpbmd9YCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5tYXhPZihrZXkgYXMga2V5b2YgTSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBtaW5PZihcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNW2tleW9mIE1dIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTUlOX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubWluT2YpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIG1pbk9mIGtleSAke2tleSBhcyBzdHJpbmd9YCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5taW5PZihrZXkgYXMga2V5b2YgTSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBhdmdPZihcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5BVkdfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5hdmdPZik7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgYXZnT2Yga2V5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmF2Z09mKGtleSBhcyBrZXlvZiBNLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHN1bU9mKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogc3RyaW5nIHwga2V5b2YgTSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPG51bWJlciB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnN1bU9mKTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBzdW1PZiBrZXkgJHtrZXkgYXMgc3RyaW5nfWApO1xuICAgIHJldHVybiB0aGlzLnJlcG8uc3VtT2Yoa2V5IGFzIGtleW9mIE0sIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZGlzdGluY3RPZihcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNW2tleW9mIE1dW10gfCBzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5ESVNUSU5DVF9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRpc3RpbmN0T2YpO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIGRpc3RpbmN0T2Yga2V5ICR7a2V5IGFzIHN0cmluZ31gKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmRpc3RpbmN0T2Yoa2V5IGFzIGtleW9mIE0sIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZ3JvdXBPZihcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXk6IHN0cmluZyB8IGtleW9mIE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBNW10+IHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsIHRydWUpXG4gICAgKS5mb3IodGhpcy5ncm91cE9mKTtcbiAgICBsb2cuaW5mbyhgUnVubmluZyBncm91cE9mIGtleSAke2tleSBhcyBzdHJpbmd9YCk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5ncm91cE9mKGtleSBhcyBrZXlvZiBNLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHNpbmdsZSBtb2RlbCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgY3JlYXRlIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIHRvIGNyZWF0ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgbW9kZWxcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShcbiAgICBjb250ZXh0OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgbW9kZWw6IHN0cmluZyB8IE0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBNPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGNvbnRleHRdLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgbG9nLmluZm8oYENPTlRSQUNUIENSRUFURSwgJHtjdHhBcmdzfWApO1xuXG4gICAgaWYgKHR5cGVvZiBtb2RlbCA9PT0gXCJzdHJpbmdcIikgbW9kZWwgPSB0aGlzLmRlc2VyaWFsaXplPE0+KG1vZGVsKSBhcyBNO1xuXG4gICAgbG9nLmluZm8oYENyZWF0aW5nIG1vZGVsOiAke0pTT04uc3RyaW5naWZ5KG1vZGVsKX1gKTtcblxuICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuXG4gICAgbG9nLmluZm8oYE1lcmdpbmcgdHJhbnNpZW50IGRhdGEuLi5gKTtcbiAgICBtb2RlbCA9IE1vZGVsLm1lcmdlKG1vZGVsLCB0cmFuc2llbnQsIHRoaXMuY2xhenopIGFzIE07XG5cbiAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgdGhpcy5yZXBvLmNyZWF0ZShtb2RlbCwgLi4uY3R4QXJncyk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUoY3JlYXRlZCkubW9kZWwpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIGEgc2luZ2xlIG1vZGVsIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHJlYWQgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBtb2RlbCB0byByZWFkXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIG1vZGVsXG4gICAqL1xuICBhc3luYyByZWFkKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogUHJpbWFyeUtleVR5cGUgfCBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBPcGVyYXRpb25LZXlzLlJFQUQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGUpO1xuICAgIGxvZy5pbmZvKGByZWFkaW5nIGVudHJ5IHdpdGggcGsgJHtrZXl9IGApO1xuXG4gICAgcmV0dXJuIHRoaXMucmVwby5yZWFkKGtleSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJhbnNpZW50RGF0YShjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCk6IGFueSB7XG4gICAgY29uc3QgdHJhbnNpZW50TWFwID0gY3R4LnN0dWIuZ2V0VHJhbnNpZW50KCk7XG4gICAgbGV0IHRyYW5zaWVudDogYW55ID0ge307XG5cbiAgICBpZiAodHJhbnNpZW50TWFwLmhhcyh0aGlzLnJlcG9bXCJ0YWJsZU5hbWVcIl0pKSB7XG4gICAgICB0cmFuc2llbnQgPSBKU09OLnBhcnNlKFxuICAgICAgICAoXG4gICAgICAgICAgdHJhbnNpZW50TWFwLmdldCh0aGlzLnJlcG9bXCJ0YWJsZU5hbWVcIl0pIGFzIHVua25vd24gYXMgQnVmZmVyXG4gICAgICAgICk/LnRvU3RyaW5nKFwidXRmOFwiKSBhcyBzdHJpbmdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRyYW5zaWVudE1hcC5oYXMoXCJfX292ZXJyaWRlc1wiKSkge1xuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gSlNPTi5wYXJzZShcbiAgICAgICAgKFxuICAgICAgICAgIHRyYW5zaWVudE1hcC5nZXQodGhpcy5yZXBvW1widGFibGVOYW1lXCJdKSBhcyB1bmtub3duIGFzIEJ1ZmZlclxuICAgICAgICApPy50b1N0cmluZyhcInV0ZjhcIikgYXMgc3RyaW5nXG4gICAgICApO1xuXG4gICAgICBjdHguYWNjdW11bGF0ZShvdmVycmlkZXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0cmFuc2llbnQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgYSBzaW5nbGUgbW9kZWwgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHVwZGF0ZSBtZXRob2RcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCB0byB1cGRhdGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIG1vZGVsXG4gICAqL1xuICBhc3luYyB1cGRhdGUoXG4gICAgY29udGV4dDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIG1vZGVsOiBzdHJpbmcgfCBNLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8c3RyaW5nIHwgTT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjb250ZXh0XSwgT3BlcmF0aW9uS2V5cy5VUERBVEUsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGUpO1xuICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhjdHgpO1xuICAgIGlmICh0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIpIG1vZGVsID0gdGhpcy5kZXNlcmlhbGl6ZTxNPihtb2RlbCkgYXMgTTtcblxuICAgIGxvZy5pbmZvKGBVcGRhdGluZyBtb2RlbDogJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9YCk7XG5cbiAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLmdldFRyYW5zaWVudERhdGEoY3R4KTtcblxuICAgIGxvZy5pbmZvKGBNZXJnaW5nIHRyYW5zaWVudCBkYXRhLi4uYCk7XG4gICAgbW9kZWwgPSBNb2RlbC5tZXJnZShtb2RlbCwgdHJhbnNpZW50LCB0aGlzLmNsYXp6KSBhcyBNO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG1vZGVsLCAuLi5jdHhBcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUodXBkYXRlZCkubW9kZWwpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSBzaW5nbGUgbW9kZWwgZnJvbSB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgZGVsZXRlIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUgbW9kZWwgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE0+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCBtb2RlbFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIGtleTogUHJpbWFyeUtleVR5cGUgfCBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxNIHwgc3RyaW5nPiB7XG4gICAgY29uc3Qge1xuICAgICAgbG9nLFxuICAgICAgY3R4QXJncyxcbiAgICAgIGN0eDogZmFicmljQ3R4LFxuICAgIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIE9wZXJhdGlvbktleXMuREVMRVRFLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5kZWxldGVcbiAgICApO1xuICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhmYWJyaWNDdHgpO1xuICAgIGxvZy5pbmZvKGBkZWxldGluZyBlbnRyeSB3aXRoIHBrICR7a2V5fSBgKTtcbiAgICByZXR1cm4gdGhpcy5yZXBvLmRlbGV0ZShTdHJpbmcoa2V5KSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgbXVsdGlwbGUgbW9kZWxzIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIGRlbGV0ZUFsbCBtZXRob2RcbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBrZXlzIC0gVGhlIGtleXMgb2YgdGhlIG1vZGVscyB0byBkZWxldGVcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgbW9kZWxzXG4gICAqL1xuICBhc3luYyBkZWxldGVBbGwoXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAga2V5czogUHJpbWFyeUtleVR5cGVbXSB8IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE1bXSB8IHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgY3R4OiBmYWJyaWNDdHggfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRlbGV0ZUFsbCk7XG4gICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGZhYnJpY0N0eCk7XG4gICAgaWYgKHR5cGVvZiBrZXlzID09PSBcInN0cmluZ1wiKSBrZXlzID0gSlNPTi5wYXJzZShrZXlzKSBhcyBzdHJpbmdbXTtcbiAgICBjb25zdCBkZWxldGVkID0gYXdhaXQgdGhpcy5yZXBvLmRlbGV0ZUFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBkZWxldGVkLm1hcCgoYykgPT4gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGMpLm1vZGVsKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgbXVsdGlwbGUgbW9kZWxzIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHJlYWRBbGwgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0ga2V5cyAtIFRoZSBrZXlzIG9mIHRoZSBtb2RlbHMgdG8gcmVhZFxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIG1vZGVsc1xuICAgKi9cbiAgYXN5bmMgcmVhZEFsbChcbiAgICBjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBrZXlzOiBQcmltYXJ5S2V5VHlwZVtdIHwgc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8TVtdIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgQnVsa0NydWRPcGVyYXRpb25LZXlzLlJFQURfQUxMLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICBpZiAodHlwZW9mIGtleXMgPT09IFwic3RyaW5nXCIpIGtleXMgPSBKU09OLnBhcnNlKGtleXMpIGFzIHN0cmluZ1tdO1xuICAgIHJldHVybiB0aGlzLnJlcG8ucmVhZEFsbChrZXlzLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSBtb2RlbHMgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHVwZGF0ZUFsbCBtZXRob2RcbiAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gdXBkYXRlXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIG1vZGVsc1xuICAgKi9cbiAgYXN5bmMgdXBkYXRlQWxsKFxuICAgIGNvbnRleHQ6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBtb2RlbHM6IHN0cmluZyB8IE1bXSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZyB8IE1bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KFxuICAgICAgICBbLi4uYXJncywgY29udGV4dF0sXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgICB0cnVlXG4gICAgICApXG4gICAgKS5mb3IodGhpcy51cGRhdGVBbGwpO1xuICAgIHRoaXMuZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhjdHgpO1xuICAgIGlmICh0eXBlb2YgbW9kZWxzID09PSBcInN0cmluZ1wiKVxuICAgICAgbW9kZWxzID0gKEpTT04ucGFyc2UobW9kZWxzKSBhcyBbXSlcbiAgICAgICAgLm1hcCgobSkgPT4gdGhpcy5kZXNlcmlhbGl6ZShtKSlcbiAgICAgICAgLm1hcCgobSkgPT4gbmV3IHRoaXMuY2xhenoobSkpIGFzIGFueTtcblxuICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuXG4gICAgbG9nLmluZm8oYE1lcmdpbmcgdHJhbnNpZW50IGRhdGEuLi5gKTtcbiAgICBtb2RlbHMgPSAobW9kZWxzIGFzIE1bXSkubWFwKChtLCBpKSA9PiB7XG4gICAgICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0cmFuc2llbnQpID8gdHJhbnNpZW50W2ldIDogdHJhbnNpZW50O1xuICAgICAgcmV0dXJuIE1vZGVsLm1lcmdlKG0sIHQgfHwge30sIHRoaXMuY2xhenopIGFzIE07XG4gICAgfSk7XG5cbiAgICBsb2cuaW5mbyhgYWRkaW5nICR7bW9kZWxzLmxlbmd0aH0gZW50cmllcyB0byB0aGUgdGFibGVgKTtcblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlQWxsKFxuICAgICAgbW9kZWxzIGFzIHVua25vd24gYXMgTVtdLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgcmVzdWx0ID0gdXBkYXRlZC5tYXAoKGMpID0+IG5ldyB0aGlzLmNsYXp6KE1vZGVsLnNlZ3JlZ2F0ZShjKS5tb2RlbCkpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcXVlcnkgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnMgYW5kIG9wdGlvbnMuXG4gICAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgc2ltcGxpZmllZCB3YXkgdG8gcXVlcnkgdGhlIGRhdGFiYXNlIHdpdGggY29tbW9uIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7Q29uZGl0aW9uPE0+fSBjb25kaXRpb24gLSBUaGUgY29uZGl0aW9uIHRvIGZpbHRlciByZWNvcmRzLlxuICAgKiBAcGFyYW0gb3JkZXJCeSAtIFRoZSBmaWVsZCB0byBvcmRlciByZXN1bHRzIGJ5LlxuICAgKiBAcGFyYW0ge09yZGVyRGlyZWN0aW9ufSBbb3JkZXI9T3JkZXJEaXJlY3Rpb24uQVNDXSAtIFRoZSBzb3J0IGRpcmVjdGlvbi5cbiAgICogQHBhcmFtIHtPcmRlckRpcmVjdGlvbn0gW29yZGVyPU9yZGVyRGlyZWN0aW9uLkFTQ10gLSBUaGUgc29ydCBkaXJlY3Rpb24uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIC0gT3B0aW9uYWwgbWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbc2tpcF0gLSBPcHRpb25hbCBudW1iZXIgb2YgcmVzdWx0cyB0byBza2lwLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFRoZSBxdWVyeSByZXN1bHRzIGFzIG1vZGVsIGluc3RhbmNlcy5cbiAgICovXG4gIGFzeW5jIHF1ZXJ5KFxuICAgIGNvbnRleHQ6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBjb25kaXRpb246IENvbmRpdGlvbjxNPiB8IHN0cmluZyxcbiAgICBvcmRlckJ5OiBzdHJpbmcgfCBrZXlvZiBNLFxuICAgIG9yZGVyOiBPcmRlckRpcmVjdGlvbiB8IHN0cmluZyA9IE9yZGVyRGlyZWN0aW9uLkFTQyxcbiAgICBsaW1pdD86IG51bWJlcixcbiAgICBza2lwPzogbnVtYmVyLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8TVtdIHwgc3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY29udGV4dF0sIFBlcnNpc3RlbmNlS2V5cy5RVUVSWSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgcmV0dXJuIHRoaXMucmVwby5xdWVyeShcbiAgICAgIGNvbmRpdGlvbiBhcyBDb25kaXRpb248TT4sXG4gICAgICBvcmRlckJ5IGFzIGtleW9mIE0sXG4gICAgICBvcmRlciBhcyBPcmRlckRpcmVjdGlvbixcbiAgICAgIGxpbWl0LFxuICAgICAgc2tpcCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHJhdyBxdWVyeSBhZ2FpbnN0IHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyByYXcgbWV0aG9kXG4gICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAqIEBwYXJhbSB7YW55fSByYXdJbnB1dCAtIFRoZSBxdWVyeSB0byBleGVjdXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZG9jc09ubHkgLSBXaGV0aGVyIHRvIHJldHVybiBvbmx5IGRvY3VtZW50c1xuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcXVlcnkgcmVzdWx0c1xuICAgKi9cbiAgYXN5bmMgcmF3KFxuICAgIGN0eDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIHJhd0lucHV0OiBNYW5nb1F1ZXJ5LFxuICAgIGRvY3NPbmx5OiBib29sZWFuLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFwicmF3XCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLnJhd1xuICAgICk7XG4gICAgcmV0dXJuIEZhYnJpY0NydWRDb250cmFjdC5hZGFwdGVyLnJhdyhyYXdJbnB1dCwgZG9jc09ubHksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlcmlhbGl6ZShtb2RlbDogTSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZhYnJpY0NydWRDb250cmFjdC5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVzZXJpYWxpemU8TSBleHRlbmRzIE1vZGVsPihzdHI6IHN0cmluZyk6IE0ge1xuICAgIHJldHVybiAoXG4gICAgICBGYWJyaWNDcnVkQ29udHJhY3Quc2VyaWFsaXplciBhcyB1bmtub3duIGFzIFNlcmlhbGl6ZXI8TT5cbiAgICApLmRlc2VyaWFsaXplKHN0cik7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5pdChjdHg6IEN0eCB8IEZhYnJpY0NvbnRyYWN0Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgUGVyc2lzdGVuY2VLZXlzLklOSVRJQUxJWkFUSU9OLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuaW5pdCk7XG4gICAgbG9nLmluZm8oYFJ1bm5pbmcgY29udHJhY3QgJHt0aGlzLmdldE5hbWUoKX0gaW5pdGlhbGl6YXRpb24uLi5gKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBsb2cuaW5mbyhgQ29udHJhY3QgaW5pdGlhbGl6YXRpb24gY29tcGxldGVkLmApO1xuICB9XG5cbiAgYXN5bmMgaGVhbHRoY2hlY2soXG4gICAgY3R4OiBDdHggfCBGYWJyaWNDb250cmFjdENvbnRleHRcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBoZWFsdGhjaGVjaz4ge1xuICAgIGNvbnN0IHsgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoW2N0eF0sIFwiaGVhbHRoY2hlY2tcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuaGVhbHRoY2hlY2tcbiAgICApO1xuICAgIGxvZy5pbmZvKGBSdW5uaW5nIEhlYWx0aGNoZWNrOiAke3RoaXMuaW5pdGlhbGl6ZWR9Li4uYCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWx0aGNoZWNrOiB0aGlzLmluaXRpYWxpemVkLFxuICAgICAgdmVyc2lvbjogVkVSU0lPTixcbiAgICAgIHBhY2thZ2U6IFBBQ0tBR0VfTkFNRSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIG11bHRpcGxlIG1vZGVscyBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgY3JlYXRlQWxsIG1ldGhvZFxuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcGFyYW0ge01bXX0gbW9kZWxzIC0gVGhlIG1vZGVscyB0byBjcmVhdGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8TVtdPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgbW9kZWxzXG4gICAqL1xuICBhc3luYyBjcmVhdGVBbGwoXG4gICAgY29udGV4dDogQ3R4IHwgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIG1vZGVsczogc3RyaW5nIHwgTVtdLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8c3RyaW5nIHwgTVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoXG4gICAgICAgIFsuLi5hcmdzLCBjb250ZXh0XSxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEwsXG4gICAgICAgIHRydWVcbiAgICAgIClcbiAgICApLmZvcih0aGlzLmNyZWF0ZUFsbCk7XG4gICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgaWYgKHR5cGVvZiBtb2RlbHMgPT09IFwic3RyaW5nXCIpXG4gICAgICBtb2RlbHMgPSAoSlNPTi5wYXJzZShtb2RlbHMpIGFzIFtdKVxuICAgICAgICAubWFwKChtKSA9PiB0aGlzLmRlc2VyaWFsaXplKG0pKVxuICAgICAgICAubWFwKChtKSA9PiBuZXcgdGhpcy5jbGF6eihtKSkgYXMgYW55O1xuXG4gICAgY29uc3QgdHJhbnNpZW50ID0gdGhpcy5nZXRUcmFuc2llbnREYXRhKGN0eCk7XG5cbiAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgIG1vZGVscyA9IChtb2RlbHMgYXMgTVtdKS5tYXAoKG0sIGkpID0+IHtcbiAgICAgIGNvbnN0IHQgPSBBcnJheS5pc0FycmF5KHRyYW5zaWVudCkgPyB0cmFuc2llbnRbaV0gOiB0cmFuc2llbnQ7XG4gICAgICByZXR1cm4gTW9kZWwubWVyZ2UobSwgdCB8fCB7fSwgdGhpcy5jbGF6eikgYXMgTTtcbiAgICB9KTtcblxuICAgIGxvZy5pbmZvKGBhZGRpbmcgJHttb2RlbHMubGVuZ3RofSBlbnRyaWVzIHRvIHRoZSB0YWJsZWApO1xuXG4gICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHRoaXMucmVwby5jcmVhdGVBbGwoXG4gICAgICBtb2RlbHMgYXMgdW5rbm93biBhcyBNW10sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHQgPSBjcmVhdGVkLm1hcCgoYykgPT4gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGMpLm1vZGVsKSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0KTogdm9pZCB7XG4gICAgaWYgKCFjdHgpIHJldHVybjtcbiAgICBjb25zdCBtaXJyb3JNZXRhID0gTW9kZWwubWlycm9yZWRBdCh0aGlzLmNsYXp6KTtcbiAgICBpZiAoIW1pcnJvck1ldGEpIHJldHVybjtcbiAgICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoY3R4LmlkZW50aXR5KTtcbiAgICBpZiAoXG4gICAgICBtc3AgJiZcbiAgICAgIChtc3AgPT09IG1pcnJvck1ldGEubXNwSWQgfHxcbiAgICAgICAgKG1pcnJvck1ldGEuY29uZGl0aW9uICYmIG1pcnJvck1ldGEuY29uZGl0aW9uKG1zcCkpKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgICAgYE9yZ2FuaXphdGlvbiAke21zcH0gaXMgbm90IGF1dGhvcml6ZWQgdG8gbW9kaWZ5IG1pcnJvcmVkIGRhdGFgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRFxuICApOiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBmYWxzZVxuICApOiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiB0cnVlXG4gICk6IFByb21pc2U8XG4gICAgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgPjtcbiAgcHJvdGVjdGVkIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBib29sZWFuID0gZmFsc2VcbiAgKTpcbiAgICB8IFByb21pc2U8XG4gICAgICAgIEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+XG4gICAgICA+XG4gICAgfCBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPiB7XG4gICAgY29uc3QgY3R4ID0gYXJncy5wb3AoKTtcbiAgICBpZiAoIWN0eCB8fCAhY3R4LnN0dWIpIHtcbiAgICAgIHRocm93IG5ldyBNaXNzaW5nQ29udGV4dEVycm9yKGBObyB2YWxpZCBjb250ZXh0IHByb3ZpZGVkLi4uYCk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHR1YWxpemVkID0gRmFicmljQ3J1ZENvbnRyYWN0LmFkYXB0ZXJbXCJsb2dDdHhcIl0oXG4gICAgICBbdGhpcy5jbGF6eiBhcyBhbnksIC4uLmFyZ3NdIGFzIGFueSxcbiAgICAgIG9wZXJhdGlvbixcbiAgICAgIGFsbG93Q3JlYXRlIGFzIGFueSxcbiAgICAgIGN0eFxuICAgICkgYXNcbiAgICAgIHwgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgICAgIHwgUHJvbWlzZTxcbiAgICAgICAgICBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPlxuICAgICAgICA+O1xuICAgIGZ1bmN0aW9uIHNxdWFzaEFyZ3MoY3R4OiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3MpIHtcbiAgICAgIGN0eC5jdHhBcmdzLnNoaWZ0KCk7IC8vIHJlbW92ZXMgYWRkZWQgbW9kZWwgdG8gYXJnc1xuICAgICAgcmV0dXJuIGN0eCBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKCEoY29udGV4dHVhbGl6ZWQgaW5zdGFuY2VvZiBQcm9taXNlKSkgcmV0dXJuIHNxdWFzaEFyZ3MoY29udGV4dHVhbGl6ZWQpO1xuICAgIHJldHVybiBjb250ZXh0dWFsaXplZC50aGVuKHNxdWFzaEFyZ3MpO1xuICB9XG59XG4iXX0=
417
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNydWQtY29udHJhY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTJDO0FBQzNDLGdFQUFpRTtBQUNqRSw2REFBd0U7QUFDeEUseUVBQXVEO0FBQ3ZELHlDQUF5SDtBQUN6SCwwRkFBb0Y7QUFDcEYsMkRBQWdGO0FBQ2hGLHNEQUE4RDtBQUM5RCxnRUFBNEQ7QUFDNUQsbURBQTJEO0FBQzNELElBQUEsNEJBQVksR0FBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsOEJBQVE7SUFDNUM7O09BRUc7SUFDSCxTQUFTLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwwQ0FBcUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RCxTQUFTLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxvREFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUFJLElBQUk7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsUUFBUTtZQUNSLDZCQUE2QjtZQUM3QiwyQkFBMkI7WUFDM0IsU0FBUztZQUNULHNDQUFzQztZQUN0QywwREFBMEQ7WUFDMUQsUUFBUTtZQUNSLG1GQUFtRjtZQUNuRixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLE1BQU07WUFDTixJQUFJO1FBQ1IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxZQUFZLElBQUksRUFBRSxLQUFLO1FBQ25CLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElB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Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7UUFDMUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsNkJBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNILElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxHQUFHLENBQUMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJO1FBQzlCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUscUNBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJO1FBQzVCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLHFDQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0csSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUscUNBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsSSxJQUFJLENBQUMs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Q0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hILFNBQVMsVUFBVSxDQUFDLEdBQUc7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLDhCQUE4QjtZQUNuRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxjQUFjLFlBQVksT0FBTyxDQUFDO1lBQ3BDLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0o7QUEvVkQsZ0RBK1ZDO0FBQ0QsMHdzREFBMHdzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vLi4vLi4vc2hhcmVkL292ZXJyaWRlcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RBZGFwdGVyLCB9IGZyb20gXCIuLy4uL0NvbnRyYWN0QWRhcHRlci5qc1wiO1xuaW1wb3J0IHsgQ29udHJhY3QsIE9iamVjdCBhcyBGYWJyaWNPYmplY3QsIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBPcmRlckRpcmVjdGlvbiwgUGVyc2lzdGVuY2VLZXlzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMsIFJlcG9zaXRvcnksIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBEZXRlcm1pbmlzdGljU2VyaWFsaXplciB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9EZXRlcm1pbmlzdGljU2VyaWFsaXplci5qc1wiO1xuaW1wb3J0IHsgQnVsa0NydWRPcGVyYXRpb25LZXlzLCBPcGVyYXRpb25LZXlzLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWlzc2luZ0NvbnRleHRFcnJvciB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgZXh0cmFjdE1zcElkIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMuanNcIjtcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSwgVkVSU0lPTiB9IGZyb20gXCIuLy4uLy4uL3ZlcnNpb24uanNcIjtcbkZhYnJpY09iamVjdCgpKERhdGUpO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBjb250cmFjdCBjbGFzcyBmb3IgQ1JVRCBvcGVyYXRpb25zIGluIEZhYnJpYyBjaGFpbmNvZGVcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHN0YW5kYXJkIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIG9wZXJhdGlvbnMgZm9yIG1vZGVscyBpbiBGYWJyaWMgY2hhaW5jb2RlXG4gKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gKiBAY2xhc3MgRmFicmljQ3J1ZENvbnRyYWN0XG4gKiBAZXh0ZW5kcyB7Q29udHJhY3R9XG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gRGVmaW5lIGEgbW9kZWxcbiAqIEB0YWJsZSgnYXNzZXRzJylcbiAqIGNsYXNzIEFzc2V0IGV4dGVuZHMgTW9kZWwge1xuICogICBAaWQoKVxuICogICBpZDogc3RyaW5nO1xuICpcbiAqICAgQHByb3BlcnR5KClcbiAqICAgZGF0YTogc3RyaW5nO1xuICogfVxuICpcbiAqIC8vIENyZWF0ZSBhIGNvbnRyYWN0IHRoYXQgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3RcbiAqIGV4cG9ydCBjbGFzcyBBc3NldENvbnRyYWN0IGV4dGVuZHMgRmFicmljQ3J1ZENvbnRyYWN0PEFzc2V0PiB7XG4gKiAgIGNvbnN0cnVjdG9yKCkge1xuICogICAgIHN1cGVyKCdBc3NldENvbnRyYWN0JywgQXNzZXQpO1xuICogICB9XG4gKlxuICogICAvLyBBZGQgY3VzdG9tIG1ldGhvZHMgYXMgbmVlZGVkXG4gKiAgIGFzeW5jIGdldEFzc2V0SGlzdG9yeShjdHg6IENvbnRleHQsIGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueVtdPiB7XG4gKiAgICAgLy8gQ3VzdG9tIGltcGxlbWVudGF0aW9uXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAqICAgcGFydGljaXBhbnQgUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbiAqXG4gKiAgIENsaWVudC0+PkNvbnRyYWN0OiBjcmVhdGUoY3R4LCBtb2RlbClcbiAqICAgQ29udHJhY3QtPj5SZXBvc2l0b3J5OiByZXBvc2l0b3J5KGN0eClcbiAqICAgQ29udHJhY3QtPj5SZXBvc2l0b3J5OiBjcmVhdGUobW9kZWwsIGN0eClcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCByZWNvcmQsIHRyYW5zaWVudCwgY3R4KVxuICogICBBZGFwdGVyLT4+U3RhdGVEQjogcHV0U3RhdGUoaWQsIHNlcmlhbGl6ZWREYXRhKVxuICogICBTdGF0ZURCLS0+PkFkYXB0ZXI6IFN1Y2Nlc3NcbiAqICAgQWRhcHRlci0tPj5SZXBvc2l0b3J5OiByZWNvcmRcbiAqICAgUmVwb3NpdG9yeS0tPj5Db250cmFjdDogbW9kZWxcbiAqICAgQ29udHJhY3QtLT4+Q2xpZW50OiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ3J1ZENvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTaGFyZWQgYWRhcHRlciBpbnN0YW5jZSBmb3IgYWxsIGNvbnRyYWN0IGluc3RhbmNlc1xuICAgICAqL1xuICAgIHN0YXRpYyB7IHRoaXMuYWRhcHRlciA9IG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIoKTsgfVxuICAgIHN0YXRpYyB7IHRoaXMuc2VyaWFsaXplciA9IG5ldyBEZXRlcm1pbmlzdGljU2VyaWFsaXplcigpOyB9XG4gICAgZ2V0IHJlcG8oKSB7XG4gICAgICAgIGlmICghdGhpcy5fcmVwbykge1xuICAgICAgICAgICAgdGhpcy5fcmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwodGhpcy5jbGF6eik7XG4gICAgICAgICAgICAvLyB0cnkge1xuICAgICAgICAgICAgLy8gICB0aGlzLnJlcG8ub2JzZXJ2ZSh0aGlzKTtcbiAgICAgICAgICAgIC8vIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICAgICAgLy8gICBpZiAoXG4gICAgICAgICAgICAvLyAgICAgZXJyIGluc3RhbmNlb2YgSW50ZXJuYWxFcnJvciAmJlxuICAgICAgICAgICAgLy8gICAgIGVyci5tZXNzYWdlLmluY2x1ZGVzKFwiT2JzZXJ2ZXIgYWxyZWFkeSByZWdpc3RlcmVkXCIpXG4gICAgICAgICAgICAvLyAgICkge1xuICAgICAgICAgICAgLy8gICAgIC8vIGFscmVhZHkgcmVnaXN0ZXJlZCBvYnNlcnZlcjsgaWdub3JlIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gKGR1cmluZyB0ZXN0cylcbiAgICAgICAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcmVwbztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljQ3J1ZENvbnRyYWN0IGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBjb250cmFjdCB3aXRoIGEgbmFtZSBhbmQgbW9kZWwgY2xhc3NcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBjb250cmFjdFxuICAgICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IGNsYXp6IC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobmFtZSwgY2xhenopIHtcbiAgICAgICAgc3VwZXIobmFtZSk7XG4gICAgICAgIHRoaXMuY2xhenogPSBjbGF6ejtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cbiAgICBhc3luYyByZWZyZXNoKHRhYmxlLCBldmVudCwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVmcmVzaCk7XG4gICAgICAgIGxvZy52ZXJib3NlKGBQdXNoaW5nICR7ZXZlbnR9IGV2ZW50IG9uIHRhYmxlICR7dGFibGV9LCBpZChzKSAke2lkfWApO1xuICAgICAgICAvLyBkbyBub3RoaW5nLiBhbGwgd2UgbmVlZGVkIHdhcyBhbiBvYnNlcnZlciB0byBraWNrc3RhcnQgdGhlIHByb2Nlc3NcbiAgICB9XG4gICAgYXN5bmMgbGlzdEJ5KGN0eCwga2V5LCBvcmRlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuTElTVF9CWSwgdHJ1ZSkpLmZvcih0aGlzLmxpc3RCeSk7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGxpc3RCeSBrZXkgJHtrZXl9LCBvcmRlciAke29yZGVyfSBhbmQgYXJncyAke2N0eEFyZ3N9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ubGlzdEJ5KGtleSwgb3JkZXIsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBwYWdpbmF0ZUJ5KGN0eCwga2V5LCBvcmRlciwgcmVmID0ge1xuICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgIGxpbWl0OiAxMCxcbiAgICB9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLCB0cnVlKSkuZm9yKHRoaXMucGFnaW5hdGVCeSk7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIHBhZ2luYXRlQnkga2V5ICR7a2V5fSwgb3JkZXIgJHtvcmRlcn0gd2l0aCBzaXplICR7cmVmLmxpbWl0fSBhbmQgYXJncyAke2N0eEFyZ3N9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8ucGFnaW5hdGVCeShrZXksIG9yZGVyLCByZWYsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBwYWdlKGN0eCwgdmFsdWUsIGRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQywgcmVmID0ge1xuICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgIGxpbWl0OiAxMCxcbiAgICB9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFLCB0cnVlKSkuZm9yKHRoaXMucGFnZSk7XG4gICAgICAgIGxvZy5pbmZvKGBQYWdpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGF6eil9IGJ5IGRlZmF1bHQgcXVlcnkgYXR0cmlidXRlc2ApO1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSB0eXBlb2YgcmVmID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UocmVmKSB8fFxuICAgICAgICAgICAgICAgIHt9XG4gICAgICAgICAgICA6IHJlZjtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5wYWdlKHZhbHVlLCBkaXJlY3Rpb24sIHJlZmVyZW5jZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGZpbmRPbmVCeShjdHgsIGtleSwgdmFsdWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLCB0cnVlKSkuZm9yKHRoaXMuZmluZE9uZUJ5KTtcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgZmluZE9uZUJ5IGtleSAke2tleX0sIHZhbHVlOiAke3ZhbHVlfSB3aXRoIGFyZ3MgJHtjdHhBcmdzfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmZpbmRPbmVCeShrZXksIHZhbHVlLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc3RhdGVtZW50KGN0eCwgbWV0aG9kLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsIHRydWUpKS5mb3IodGhpcy5zdGF0ZW1lbnQpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBzdGF0ZW1lbnQgJHttZXRob2R9IHdpdGggYXJncyAke2N0eEFyZ3N9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8uc3RhdGVtZW50KG1ldGhvZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNvdW50T2YoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkNPVU5UX09GLCB0cnVlKSkuZm9yKHRoaXMuY291bnRPZik7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGNvdW50T2Yke2tleSA/IGAga2V5ICR7a2V5fWAgOiBcIlwifWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmNvdW50T2Yoa2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbWF4T2YoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRiwgdHJ1ZSkpLmZvcih0aGlzLm1heE9mKTtcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgbWF4T2Yga2V5ICR7a2V5fWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLm1heE9mKGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIG1pbk9mKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsIHRydWUpKS5mb3IodGhpcy5taW5PZik7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIG1pbk9mIGtleSAke2tleX1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5taW5PZihrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBhdmdPZihjdHgsIGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuQVZHX09GLCB0cnVlKSkuZm9yKHRoaXMuYXZnT2YpO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBhdmdPZiBrZXkgJHtrZXl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8uYXZnT2Yoa2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc3VtT2YoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRiwgdHJ1ZSkpLmZvcih0aGlzLnN1bU9mKTtcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgc3VtT2Yga2V5ICR7a2V5fWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnN1bU9mKGtleSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGRpc3RpbmN0T2YoY3R4LCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzLCBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkRJU1RJTkNUX09GLCB0cnVlKSkuZm9yKHRoaXMuZGlzdGluY3RPZik7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGRpc3RpbmN0T2Yga2V5ICR7a2V5fWApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmRpc3RpbmN0T2Yoa2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ3JvdXBPZihjdHgsIGtleSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsIHRydWUpKS5mb3IodGhpcy5ncm91cE9mKTtcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgZ3JvdXBPZiBrZXkgJHtrZXl9YCk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlcG8uZ3JvdXBPZihrZXksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHNpbmdsZSBtb2RlbCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyBjcmVhdGUgbWV0aG9kXG4gICAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIHRvIGNyZWF0ZVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIG1vZGVsXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlKGNvbnRleHQsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY29udGV4dF0sIE9wZXJhdGlvbktleXMuQ1JFQVRFLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlKTtcbiAgICAgICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgICAgIGxvZy5pbmZvKGBDT05UUkFDVCBDUkVBVEUsICR7Y3R4QXJnc31gKTtcbiAgICAgICAgaWYgKHR5cGVvZiBtb2RlbCA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgIG1vZGVsID0gdGhpcy5kZXNlcmlhbGl6ZShtb2RlbCk7XG4gICAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyBtb2RlbDogJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9YCk7XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgICAgICBtb2RlbCA9IE1vZGVsLm1lcmdlKG1vZGVsLCB0cmFuc2llbnQsIHRoaXMuY2xhenopO1xuICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgdGhpcy5yZXBvLmNyZWF0ZShtb2RlbCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyB0aGlzLmNsYXp6KE1vZGVsLnNlZ3JlZ2F0ZShjcmVhdGVkKS5tb2RlbCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBhIHNpbmdsZSBtb2RlbCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHJlYWQgbWV0aG9kXG4gICAgICogQHBhcmFtIHtDdHh9IGN0eCAtIFRoZSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0ga2V5IC0gVGhlIGtleSBvZiB0aGUgbW9kZWwgdG8gcmVhZFxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgbW9kZWxcbiAgICAgKi9cbiAgICBhc3luYyByZWFkKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGN0eF0sIE9wZXJhdGlvbktleXMuUkVBRCwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZSk7XG4gICAgICAgIGxvZy5pbmZvKGByZWFkaW5nIGVudHJ5IHdpdGggcGsgJHtrZXl9IGApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnJlYWQoa2V5LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgZ2V0VHJhbnNpZW50RGF0YShjdHgpIHtcbiAgICAgICAgY29uc3QgdHJhbnNpZW50TWFwID0gY3R4LnN0dWIuZ2V0VHJhbnNpZW50KCk7XG4gICAgICAgIGxldCB0cmFuc2llbnQgPSB7fTtcbiAgICAgICAgaWYgKHRyYW5zaWVudE1hcC5oYXModGhpcy5yZXBvW1widGFibGVOYW1lXCJdKSkge1xuICAgICAgICAgICAgdHJhbnNpZW50ID0gSlNPTi5wYXJzZSh0cmFuc2llbnRNYXAuZ2V0KHRoaXMucmVwb1tcInRhYmxlTmFtZVwiXSk/LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyYW5zaWVudE1hcC5oYXMoXCJfX292ZXJyaWRlc1wiKSkge1xuICAgICAgICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gSlNPTi5wYXJzZSh0cmFuc2llbnRNYXAuZ2V0KHRoaXMucmVwb1tcInRhYmxlTmFtZVwiXSk/LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICAgICAgICBjdHguYWNjdW11bGF0ZShvdmVycmlkZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cmFuc2llbnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGEgc2luZ2xlIG1vZGVsIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIHVwZGF0ZSBtZXRob2RcbiAgICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgICAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgbW9kZWxcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGUoY29udGV4dCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjb250ZXh0XSwgT3BlcmF0aW9uS2V5cy5VUERBVEUsIHRydWUpKS5mb3IodGhpcy51cGRhdGUpO1xuICAgICAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoY3R4KTtcbiAgICAgICAgaWYgKHR5cGVvZiBtb2RlbCA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgIG1vZGVsID0gdGhpcy5kZXNlcmlhbGl6ZShtb2RlbCk7XG4gICAgICAgIGxvZy5pbmZvKGBVcGRhdGluZyBtb2RlbDogJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9YCk7XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgICAgICBtb2RlbCA9IE1vZGVsLm1lcmdlKG1vZGVsLCB0cmFuc2llbnQsIHRoaXMuY2xhenopO1xuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5yZXBvLnVwZGF0ZShtb2RlbCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyB0aGlzLmNsYXp6KE1vZGVsLnNlZ3JlZ2F0ZSh1cGRhdGVkKS5tb2RlbCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIGEgc2luZ2xlIG1vZGVsIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgZGVsZXRlIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGtleSAtIFRoZSBrZXkgb2YgdGhlIG1vZGVsIHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8TT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIG1vZGVsXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlKGN0eCwga2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHg6IGZhYnJpY0N0eCwgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgT3BlcmF0aW9uS2V5cy5ERUxFVEUsIHRydWUpKS5mb3IodGhpcy5kZWxldGUpO1xuICAgICAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoZmFicmljQ3R4KTtcbiAgICAgICAgbG9nLmluZm8oYGRlbGV0aW5nIGVudHJ5IHdpdGggcGsgJHtrZXl9IGApO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLmRlbGV0ZShTdHJpbmcoa2V5KSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBEZWxldGVzIG11bHRpcGxlIG1vZGVscyBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgcmVwb3NpdG9yeSdzIGRlbGV0ZUFsbCBtZXRob2RcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgbnVtYmVyW119IGtleXMgLSBUaGUga2V5cyBvZiB0aGUgbW9kZWxzIHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCBtb2RlbHNcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGVBbGwoY3R4LCBrZXlzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgY3R4OiBmYWJyaWNDdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY3R4XSwgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsIHRydWUpKS5mb3IodGhpcy5kZWxldGVBbGwpO1xuICAgICAgICB0aGlzLmVuc3VyZU1pcnJvcldyaXRlUGVybWlzc2lvbnMoZmFicmljQ3R4KTtcbiAgICAgICAgaWYgKHR5cGVvZiBrZXlzID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAga2V5cyA9IEpTT04ucGFyc2Uoa2V5cyk7XG4gICAgICAgIGNvbnN0IGRlbGV0ZWQgPSBhd2FpdCB0aGlzLnJlcG8uZGVsZXRlQWxsKGtleXMsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBkZWxldGVkLm1hcCgoYykgPT4gbmV3IHRoaXMuY2xhenooTW9kZWwuc2VncmVnYXRlKGMpLm1vZGVsKSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyBtdWx0aXBsZSBtb2RlbHMgZnJvbSB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBEZWxlZ2F0ZXMgdG8gdGhlIHJlcG9zaXRvcnkncyByZWFkQWxsIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBrZXlzIC0gVGhlIGtleXMgb2YgdGhlIG1vZGVscyB0byByZWFkXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIG1vZGVsc1xuICAgICAqL1xuICAgIGFzeW5jIHJlYWRBbGwoY3R4LCBrZXlzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTEwsIHRydWUpKS5mb3IodGhpcy5jcmVhdGUpO1xuICAgICAgICBpZiAodHlwZW9mIGtleXMgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICBrZXlzID0gSlNPTi5wYXJzZShrZXlzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVwby5yZWFkQWxsKGtleXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSBtb2RlbHMgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgdXBkYXRlQWxsIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gdXBkYXRlXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCBtb2RlbHNcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGVBbGwoY29udGV4dCwgbW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY29udGV4dF0sIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCB0cnVlKSkuZm9yKHRoaXMudXBkYXRlQWxsKTtcbiAgICAgICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kZWxzID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgbW9kZWxzID0gSlNPTi5wYXJzZShtb2RlbHMpXG4gICAgICAgICAgICAgICAgLm1hcCgobSkgPT4gdGhpcy5kZXNlcmlhbGl6ZShtKSlcbiAgICAgICAgICAgICAgICAubWFwKChtKSA9PiBuZXcgdGhpcy5jbGF6eihtKSk7XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgICAgICBtb2RlbHMgPSBtb2RlbHMubWFwKChtLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0cmFuc2llbnQpID8gdHJhbnNpZW50W2ldIDogdHJhbnNpZW50O1xuICAgICAgICAgICAgcmV0dXJuIE1vZGVsLm1lcmdlKG0sIHQgfHwge30sIHRoaXMuY2xhenopO1xuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmluZm8oYGFkZGluZyAke21vZGVscy5sZW5ndGh9IGVudHJpZXMgdG8gdGhlIHRhYmxlYCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlQWxsKG1vZGVscywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHVwZGF0ZWQubWFwKChjKSA9PiBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUoYykubW9kZWwpKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcXVlcnkgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnMgYW5kIG9wdGlvbnMuXG4gICAgICogQHN1bW1hcnkgUHJvdmlkZXMgYSBzaW1wbGlmaWVkIHdheSB0byBxdWVyeSB0aGUgZGF0YWJhc2Ugd2l0aCBjb21tb24gcXVlcnkgcGFyYW1ldGVycy5cbiAgICAgKiBAcGFyYW0ge0NvbmRpdGlvbjxNPn0gY29uZGl0aW9uIC0gVGhlIGNvbmRpdGlvbiB0byBmaWx0ZXIgcmVjb3Jkcy5cbiAgICAgKiBAcGFyYW0gb3JkZXJCeSAtIFRoZSBmaWVsZCB0byBvcmRlciByZXN1bHRzIGJ5LlxuICAgICAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcj1PcmRlckRpcmVjdGlvbi5BU0NdIC0gVGhlIHNvcnQgZGlyZWN0aW9uLlxuICAgICAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcj1PcmRlckRpcmVjdGlvbi5BU0NdIC0gVGhlIHNvcnQgZGlyZWN0aW9uLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbGltaXRdIC0gT3B0aW9uYWwgbWF4aW11bSBudW1iZXIgb2YgcmVzdWx0cyB0byByZXR1cm4uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtza2lwXSAtIE9wdGlvbmFsIG51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBUaGUgcXVlcnkgcmVzdWx0cyBhcyBtb2RlbCBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgYXN5bmMgcXVlcnkoY29udGV4dCwgY29uZGl0aW9uLCBvcmRlckJ5LCBvcmRlciA9IE9yZGVyRGlyZWN0aW9uLkFTQywgbGltaXQsIHNraXAsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoWy4uLmFyZ3MsIGNvbnRleHRdLCBQZXJzaXN0ZW5jZUtleXMuUVVFUlksIHRydWUpKS5mb3IodGhpcy5jcmVhdGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBvLnF1ZXJ5KGNvbmRpdGlvbiwgb3JkZXJCeSwgb3JkZXIsIGxpbWl0LCBza2lwLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgcmF3IG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHthbnl9IHJhd0lucHV0IC0gVGhlIHF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRvY3NPbmx5IC0gV2hldGhlciB0byByZXR1cm4gb25seSBkb2N1bWVudHNcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBxdWVyeSByZXN1bHRzXG4gICAgICovXG4gICAgYXN5bmMgcmF3KGN0eCwgcmF3SW5wdXQsIGRvY3NPbmx5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFsuLi5hcmdzLCBjdHhdLCBcInJhd1wiLCB0cnVlKSkuZm9yKHRoaXMucmF3KTtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NydWRDb250cmFjdC5hZGFwdGVyLnJhdyhyYXdJbnB1dCwgZG9jc09ubHksIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBzZXJpYWxpemUobW9kZWwpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NydWRDb250cmFjdC5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCk7XG4gICAgfVxuICAgIGRlc2VyaWFsaXplKHN0cikge1xuICAgICAgICByZXR1cm4gRmFicmljQ3J1ZENvbnRyYWN0LnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoc3RyKTtcbiAgICB9XG4gICAgYXN5bmMgaW5pdChjdHgpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgUGVyc2lzdGVuY2VLZXlzLklOSVRJQUxJWkFUSU9OLCB0cnVlKSkuZm9yKHRoaXMuaW5pdCk7XG4gICAgICAgIGxvZy5pbmZvKGBSdW5uaW5nIGNvbnRyYWN0ICR7dGhpcy5nZXROYW1lKCl9IGluaXRpYWxpemF0aW9uLi4uYCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICBsb2cuaW5mbyhgQ29udHJhY3QgaW5pdGlhbGl6YXRpb24gY29tcGxldGVkLmApO1xuICAgIH1cbiAgICBhc3luYyBoZWFsdGhjaGVjayhjdHgpIHtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbY3R4XSwgXCJoZWFsdGhjaGVja1wiLCB0cnVlKSkuZm9yKHRoaXMuaGVhbHRoY2hlY2spO1xuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBIZWFsdGhjaGVjazogJHt0aGlzLmluaXRpYWxpemVkfS4uLmApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhbHRoY2hlY2s6IHRoaXMuaW5pdGlhbGl6ZWQsXG4gICAgICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OLFxuICAgICAgICAgICAgcGFja2FnZTogUEFDS0FHRV9OQU1FLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBtdWx0aXBsZSBtb2RlbHMgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSByZXBvc2l0b3J5J3MgY3JlYXRlQWxsIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHBhcmFtIHtNW119IG1vZGVscyAtIFRoZSBtb2RlbHMgdG8gY3JlYXRlXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCBtb2RlbHNcbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVBbGwoY29udGV4dCwgbW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChbLi4uYXJncywgY29udGV4dF0sIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQWxsKTtcbiAgICAgICAgdGhpcy5lbnN1cmVNaXJyb3JXcml0ZVBlcm1pc3Npb25zKGN0eCk7XG4gICAgICAgIGlmICh0eXBlb2YgbW9kZWxzID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgbW9kZWxzID0gSlNPTi5wYXJzZShtb2RlbHMpXG4gICAgICAgICAgICAgICAgLm1hcCgobSkgPT4gdGhpcy5kZXNlcmlhbGl6ZShtKSlcbiAgICAgICAgICAgICAgICAubWFwKChtKSA9PiBuZXcgdGhpcy5jbGF6eihtKSk7XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudCA9IHRoaXMuZ2V0VHJhbnNpZW50RGF0YShjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgTWVyZ2luZyB0cmFuc2llbnQgZGF0YS4uLmApO1xuICAgICAgICBtb2RlbHMgPSBtb2RlbHMubWFwKChtLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ID0gQXJyYXkuaXNBcnJheSh0cmFuc2llbnQpID8gdHJhbnNpZW50W2ldIDogdHJhbnNpZW50O1xuICAgICAgICAgICAgcmV0dXJuIE1vZGVsLm1lcmdlKG0sIHQgfHwge30sIHRoaXMuY2xhenopO1xuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmluZm8oYGFkZGluZyAke21vZGVscy5sZW5ndGh9IGVudHJpZXMgdG8gdGhlIHRhYmxlYCk7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB0aGlzLnJlcG8uY3JlYXRlQWxsKG1vZGVscywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNyZWF0ZWQubWFwKChjKSA9PiBuZXcgdGhpcy5jbGF6eihNb2RlbC5zZWdyZWdhdGUoYykubW9kZWwpKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZW5zdXJlTWlycm9yV3JpdGVQZXJtaXNzaW9ucyhjdHgpIHtcbiAgICAgICAgaWYgKCFjdHgpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1pcnJvck1ldGEgPSBNb2RlbC5taXJyb3JlZEF0KHRoaXMuY2xhenopO1xuICAgICAgICBpZiAoIW1pcnJvck1ldGEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjdHguaWRlbnRpdHkpO1xuICAgICAgICBpZiAobXNwICYmXG4gICAgICAgICAgICAobXNwID09PSBtaXJyb3JNZXRhLm1zcElkIHx8XG4gICAgICAgICAgICAgICAgKG1pcnJvck1ldGEuY29uZGl0aW9uICYmIG1pcnJvck1ldGEuY29uZGl0aW9uKG1zcCkpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihgT3JnYW5pemF0aW9uICR7bXNwfSBpcyBub3QgYXV0aG9yaXplZCB0byBtb2RpZnkgbWlycm9yZWQgZGF0YWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxvZ0N0eChhcmdzLCBvcGVyYXRpb24sIGFsbG93Q3JlYXRlID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gYXJncy5wb3AoKTtcbiAgICAgICAgaWYgKCFjdHggfHwgIWN0eC5zdHViKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ0NvbnRleHRFcnJvcihgTm8gdmFsaWQgY29udGV4dCBwcm92aWRlZC4uLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRleHR1YWxpemVkID0gRmFicmljQ3J1ZENvbnRyYWN0LmFkYXB0ZXJbXCJsb2dDdHhcIl0oW3RoaXMuY2xhenosIC4uLmFyZ3NdLCBvcGVyYXRpb24sIGFsbG93Q3JlYXRlLCBjdHgpO1xuICAgICAgICBmdW5jdGlvbiBzcXVhc2hBcmdzKGN0eCkge1xuICAgICAgICAgICAgY3R4LmN0eEFyZ3Muc2hpZnQoKTsgLy8gcmVtb3ZlcyBhZGRlZCBtb2RlbCB0byBhcmdzXG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9XG4gICAgICAgIGlmICghKGNvbnRleHR1YWxpemVkIGluc3RhbmNlb2YgUHJvbWlzZSkpXG4gICAgICAgICAgICByZXR1cm4gc3F1YXNoQXJncyhjb250ZXh0dWFsaXplZCk7XG4gICAgICAgIHJldHVybiBjb250ZXh0dWFsaXplZC50aGVuKHNxdWFzaEFyZ3MpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkzSjFaQzFqYjI1MGNtRmpkQzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5amIyNTBjbUZqZEhNdlkzSjFaQzlqY25Wa0xXTnZiblJ5WVdOMExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTERKRFFVRm5RenRCUVVOb1F5eFBRVUZQTEVWQlJVd3NjVUpCUVhGQ0xFZEJRM1JDTEdkRFFVRXlRanRCUVVNMVFpeFBRVUZQTEVWQlJVd3NVVUZCVVN4RlFVTlNMRTFCUVUwc1NVRkJTU3haUVVGWkxFZEJRM1pDTEUxQlFVMHNjVUpCUVhGQ0xFTkJRVU03UVVGRE4wSXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJZeXhOUVVGTkxHZERRVUZuUXl4RFFVRkRPMEZCUTI1RkxFOUJRVThzUlVGRlRDeHJRa0ZCYTBJc1JVRlJiRUlzWTBGQll5eEZRVU5rTEdWQlFXVXNSVUZGWml4eFFrRkJjVUlzUlVGRGNrSXNWVUZCVlN4SFFVVllMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZGZUVJc1QwRkJUeXhGUVVGRkxIVkNRVUYxUWl4RlFVRkZMR3RFUVVFMlF6dEJRVXN2UlN4UFFVRlBMRVZCUTB3c2NVSkJRWEZDTEVWQlEzSkNMR0ZCUVdFc1IwRkZaQ3hOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCUTJwRExFOUJRVThzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3huUTBGQk1rSTdRVUZEZWtRc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJTeHhRMEZCWjBNN1FVRkRka1FzVDBGQlR5eEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRVZCUVVVc01rSkJRWE5DTzBGQlJYUkVMRmxCUVZrc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzSkNPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVN0RFJ6dEJRVU5JTEUxQlFVMHNUMEZCWjBJc2EwSkJRM0JDTEZOQlFWRXNVVUZCVVR0SlFXRm9RanM3VDBGRlJ6dGhRVU5qTEZsQlFVOHNSMEZCTUVJc1NVRkJTU3h4UWtGQmNVSXNSVUZCUlN4QlFVRnlSQ3hEUVVGelJEdGhRVVZ3UkN4bFFVRlZMRWRCUVVjc1NVRkJTU3gxUWtGQmRVSXNSVUZCUlN4QlFVRm9ReXhEUVVGcFF6dEpRVTF5UlN4SlFVRmpMRWxCUVVrN1VVRkRhRUlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOb1FpeEpRVUZKTEVOQlFVTXNTMEZCU3l4SFFVRkhMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUXpkRExGRkJRVkU3V1VGRFVpdzJRa0ZCTmtJN1dVRkROMElzTWtKQlFUSkNPMWxCUXpOQ0xGTkJRVk03V1VGRFZDeHpRMEZCYzBNN1dVRkRkRU1zTUVSQlFUQkVPMWxCUXpGRUxGRkJRVkU3V1VGRFVpeHRSa0ZCYlVZN1dVRkRia1lzWVVGQllUdFpRVU5pTEdsQ1FVRnBRanRaUVVOcVFpeE5RVUZOTzFsQlEwNHNTVUZCU1R0UlFVTk9MRU5CUVVNN1VVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZEY0VJc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMGdzV1VGRFJTeEpRVUZaTEVWQlEwOHNTMEZCY1VJN1VVRkZlRU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUms4c1ZVRkJTeXhIUVVGTUxFdEJRVXNzUTBGQlowSTdVVUV2UW1oRExHZENRVUZYTEVkQlFWa3NTMEZCU3l4RFFVRkRPMGxCYTBOMlF5eERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkRXQ3hMUVVFNFFpeEZRVU01UWl4TFFVRjFRaXhGUVVOMlFpeEZRVUZaTEVWQlExb3NSMEZCUnl4SlFVRXlRenRSUVVVNVF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMmhFTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhMUVVGTExHMUNRVUZ0UWl4TFFVRkxMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU55UlN4eFJVRkJjVVU3U1VGRGRrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMVlzUjBGQlowTXNSVUZEYUVNc1IwRkJjVUlzUlVGRGNrSXNTMEZCWVN4RlFVTmlMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia0lzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZEVGl4elFrRkJjMElzUjBGQllTeFhRVUZYTEV0QlFVc3NZVUZCWVN4UFFVRlBMRVZCUVVVc1EwRkRNVVVzUTBGQlF6dFJRVU5HTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRM0pDTEVkQlFXTXNSVUZEWkN4TFFVRjFRaXhGUVVOMlFpeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlEyUXNSMEZCWjBNc1JVRkRhRU1zUjBGQmNVSXNSVUZEY2tJc1MwRkJZU3hGUVVOaUxFMUJRWGRFTzFGQlEzUkVMRTFCUVUwc1JVRkJSU3hEUVVGRE8xRkJRMVFzUzBGQlN5eEZRVUZGTEVWQlFVVTdTMEZEVml4RlFVTkVMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNjVUpCUVhGQ0xFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZEVGl3d1FrRkJNRUlzUjBGQllTeFhRVUZYTEV0QlFVc3NZMEZCWlN4SFFVRlhMRU5CUVVNc1MwRkJTeXhoUVVGaExFOUJRVThzUlVGQlJTeERRVU01Unl4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZEZWtJc1IwRkJZeXhGUVVOa0xFdEJRVmtzUlVGRFdpeEhRVUZWTEVWQlExWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTlNMRWRCUVdkRExFVkJRMmhETEV0QlFXRXNSVUZEWWl4WlFVRnhReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVU4yUkN4TlFVRjNSRHRSUVVOMFJDeE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTlVMRXRCUVVzc1JVRkJSU3hGUVVGRk8wdEJRMVlzUlVGRFJDeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlEzWkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGNFVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEycENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzVlVGQlZTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zT0VKQlFUaENMRU5CUTNCRkxFTkJRVU03VVVGRFJpeE5RVUZOTEZOQlFWTXNSMEZEWWl4UFFVRlBMRWRCUVVjc1MwRkJTeXhSUVVGUk8xbEJRM0pDTEVOQlFVTXNRMEZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQk5rTTdaMEpCUXpORUxFVkJRVGhETzFsQlEycEVMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU03VVVGRFZpeFBRVUZQTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVOdVFpeExRVUZMTEVWQlEwd3NVMEZCTWtJc1JVRkRNMElzVTBGQmIwUXNSVUZEY0VRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVOaUxFZEJRV2RETEVWQlEyaERMRWRCUVhGQ0xFVkJRM0pDTEV0QlFWVXNSVUZEVml4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETTBVc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUTNSQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlEwNHNlVUpCUVhsQ0xFZEJRV0VzV1VGQldTeExRVUZMTEdOQlFXTXNUMEZCVHl4RlFVRkZMRU5CUXk5RkxFTkJRVU03VVVGRFJpeFBRVUZQTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRV01zUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOb1JTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRZaXhIUVVGblF5eEZRVU5vUXl4TlFVRmpMRVZCUTJRc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVOMlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4bFFVRmxMRU5CUVVNc1UwRkJVeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU51UlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEZEVJc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1RVRkJUU3hqUVVGakxFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETjBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5xUkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRFdDeEhRVUZuUXl4RlFVTm9ReXhIUVVGelFpeEZRVU4wUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUTNaQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEZUVVc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4SFFVRmhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVRCQ0xFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnVSU3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRkRVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFXRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGakxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRkRVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFXRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGakxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRkRVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFXRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGakxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRkRVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnhDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVkQlFXRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGakxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTnlSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZEWkN4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRNMFVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRM1pDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc01FSkJRVEJDTEVkQlFXRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRjRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGakxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEV0N4SFFVRm5ReXhGUVVOb1F5eEhRVUZ4UWl4RlFVTnlRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRM1pDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRlRVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVkQlFXRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRha1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGakxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hEUVVGRE8wbEJSVVE3T3pzN096czdUMEZQUnp0SlFVTklMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMVlzVDBGQmIwTXNSVUZEY0VNc1MwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkROVUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGJFVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJReXcwUWtGQk5FSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOMlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlhoRExFbEJRVWtzVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVR0WlFVRkZMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZKTEV0QlFVc3NRMEZCVFN4RFFVRkRPMUZCUlhaRkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWEpFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVM1F5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEVOQlFVTTdVVUZEZEVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZOTEVOQlFVTTdVVUZGZGtRc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVXhSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNNVJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVVE3T3pzN096czdUMEZQUnp0SlFVTklMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRMUlzUjBGQlowTXNSVUZEYUVNc1IwRkJORUlzUlVGRE5VSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTjJRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeGhRVUZoTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNMVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGJrSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVeFF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNwRExFTkJRVU03U1VGRlV5eG5Ra0ZCWjBJc1EwRkJReXhIUVVFd1FqdFJRVU51UkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMUZCUXpkRExFbEJRVWtzVTBGQlV5eEhRVUZSTEVWQlFVVXNRMEZCUXp0UlFVVjRRaXhKUVVGSkxGbEJRVmtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZETjBNc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlJXeENMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkRlRU1zUlVGQlJTeFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRlhMRU5CUXpsQ0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEY0VNc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZGZUVJc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVONFF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVZjc1EwRkRPVUlzUTBGQlF6dFpRVVZHTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE5VSXNRMEZCUXp0UlFVVkVMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdPenRQUVU5SE8wbEJRMGdzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEVml4UFFVRnZReXhGUVVOd1F5eExRVUZwUWl4RlFVTnFRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVU0xUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1JVRkJSU3hoUVVGaExFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnNSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia0lzU1VGQlNTeERRVUZETERSQ1FVRTBRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzWkRMRWxCUVVrc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVUdFpRVUZGTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGSkxFdEJRVXNzUTBGQlRTeERRVUZETzFGQlJYWkZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlhKRUxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVTNReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFTkJRVU03VVVGRGRFTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGTkxFTkJRVU03VVVGRGRrUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU14UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUTFZc1IwRkJaME1zUlVGRGFFTXNSMEZCTkVJc1JVRkROVUlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4RlFVTktMRWRCUVVjc1JVRkRTQ3hQUVVGUExFVkJRMUFzUjBGQlJ5eEZRVUZGTEZOQlFWTXNSMEZEWml4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzWVVGQllTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGRGNrVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRXaXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETERSQ1FVRTBRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6ZERMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE0wTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUTJJc1IwRkJaME1zUlVGRGFFTXNTVUZCSzBJc1JVRkRMMElzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZEYkVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzY1VKQlFYRkNMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU14UlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEZEVJc1NVRkJTU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRemRETEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVVHRaUVVGRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJZU3hEUVVGRE8xRkJRMnhGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE5VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTFSU3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTFnc1IwRkJaME1zUlVGRGFFTXNTVUZCSzBJc1JVRkRMMElzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMSEZDUVVGeFFpeERRVUZETEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRlRVVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVVHRaUVVGRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJZU3hEUVVGRE8xRkJRMnhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkROME1zUTBGQlF6dEpRVVZFT3pzN096czdPMDlCVDBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVU5pTEU5QlFXOURMRVZCUTNCRExFMUJRVzlDTEVWQlEzQkNMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRelZDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRaaXhEUVVGRExFZEJRVWNzU1VGQlNTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RlFVTnNRaXh4UWtGQmNVSXNRMEZCUXl4VlFVRlZMRVZCUTJoRExFbEJRVWtzUTBGRFRDeERRVU5HTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU4wUWl4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRka01zU1VGQlNTeFBRVUZQTEUxQlFVMHNTMEZCU3l4UlFVRlJPMWxCUXpWQ0xFMUJRVTBzUjBGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJVVHRwUWtGRGFFTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU12UWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlVTeERRVUZETzFGQlJURkRMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVUzUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExESkNRVUV5UWl4RFFVRkRMRU5CUVVNN1VVRkRkRU1zVFVGQlRTeEhRVUZKTEUxQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZEY0VNc1RVRkJUU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03V1VGRE9VUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVTBzUTBGQlF6dFJRVU5zUkN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUlhwRUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRM1pETEUxQlFYZENMRVZCUTNoQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWRkxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenRQUVZWSE8wbEJRMGdzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4UFFVRnZReXhGUVVOd1F5eFRRVUZuUXl4RlFVTm9ReXhQUVVGNVFpeEZRVU42UWl4UlFVRnBReXhqUVVGakxFTkJRVU1zUjBGQlJ5eEZRVU51UkN4TFFVRmpMRVZCUTJRc1NVRkJZU3hGUVVOaUxFZEJRVWNzU1VGQlZ6dFJRVVZrTEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZCUlN4bFFVRmxMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU51UlN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEYmtJc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZEY0VJc1UwRkJlVUlzUlVGRGVrSXNUMEZCYTBJc1JVRkRiRUlzUzBGQmRVSXNSVUZEZGtJc1MwRkJTeXhGUVVOTUxFbEJRVWtzUlVGRFNpeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTBnc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGRFVDeEhRVUZuUXl4RlFVTm9ReXhSUVVGdlFpeEZRVU53UWl4UlFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEzUkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRMVFzUTBGQlF6dFJRVU5HTEU5QlFVOHNhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1VVRkJVU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEZUVVc1EwRkJRenRKUVVWVExGTkJRVk1zUTBGQlF5eExRVUZSTzFGQlF6RkNMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU40UkN4RFFVRkRPMGxCUlZNc1YwRkJWeXhEUVVGclFpeEhRVUZYTzFGQlEyaEVMRTlCUTBVc2EwSkJRV3RDTEVOQlFVTXNWVUZEY0VJc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEY2tJc1EwRkJRenRKUVVWVExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCWjBNN1VVRkRia1FzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUTJRc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1pVRkJaU3hEUVVGRExHTkJRV01zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETDBRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJwQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlF6dFJRVU5xUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU40UWl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHOURRVUZ2UXl4RFFVRkRMRU5CUVVNN1NVRkRha1FzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUTJZc1IwRkJaME03VVVGRmFFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzWVVGQllTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOcVJTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVTnFRaXhEUVVGRE8xRkJRMFlzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzU1VGQlNTeERRVUZETEZkQlFWY3NTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRVFzVDBGQlR6dFpRVU5NTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1YwRkJWenRaUVVNM1FpeFBRVUZQTEVWQlFVVXNUMEZCVHp0WlFVTm9RaXhQUVVGUExFVkJRVVVzV1VGQldUdFRRVU4wUWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenM3TzA5QlQwYzdTVUZEU0N4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVOaUxFOUJRVzlETEVWQlEzQkRMRTFCUVc5Q0xFVkJRM0JDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUXpWQ0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZEWml4RFFVRkRMRWRCUVVjc1NVRkJTU3hGUVVGRkxFOUJRVThzUTBGQlF5eEZRVU5zUWl4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTEVWQlEyaERMRWxCUVVrc1EwRkRUQ3hEUVVOR0xFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVOMFFpeEpRVUZKTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZGtNc1NVRkJTU3hQUVVGUExFMUJRVTBzUzBGQlN5eFJRVUZSTzFsQlF6VkNMRTFCUVUwc1IwRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCVVR0cFFrRkRhRU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmxDUVVNdlFpeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJVU3hEUVVGRE8xRkJSVEZETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVM1F5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEVOQlFVTTdVVUZEZEVNc1RVRkJUU3hIUVVGSkxFMUJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGNFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1dVRkRPVVFzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVUwc1EwRkJRenRSUVVOc1JDeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeE5RVUZOTEVOQlFVTXNUVUZCVFN4MVFrRkJkVUlzUTBGQlF5eERRVUZETzFGQlJYcEVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTNaRExFMUJRWGRDTEVWQlEzaENMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6VkZMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGVXl3MFFrRkJORUlzUTBGQlF5eEhRVUV3UWp0UlFVTXZSQ3hKUVVGSkxFTkJRVU1zUjBGQlJ6dFpRVUZGTEU5QlFVODdVVUZEYWtJc1RVRkJUU3hWUVVGVkxFZEJRVWNzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGFFUXNTVUZCU1N4RFFVRkRMRlZCUVZVN1dVRkJSU3hQUVVGUE8xRkJRM2hDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZEZGtNc1NVRkRSU3hIUVVGSE8xbEJRMGdzUTBGQlF5eEhRVUZITEV0QlFVc3NWVUZCVlN4RFFVRkRMRXRCUVVzN1owSkJRM1pDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1NVRkJTU3hWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkRkRVFzUTBGQlF6dFpRVU5FTEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGRE1VSXNaMEpCUVdkQ0xFZEJRVWNzTkVOQlFUUkRMRU5CUTJoRkxFTkJRVU03VVVGRFNpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFUSkNVeXhOUVVGTkxFTkJTV1FzU1VGQmNVUXNSVUZEY2tRc1UwRkJhVUlzUlVGRGFrSXNZMEZCZFVJc1MwRkJTenRSUVUwMVFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRGRrSXNTVUZCU1N4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVTjBRaXhOUVVGTkxFbEJRVWtzYlVKQlFXMUNMRU5CUVVNc09FSkJRVGhDTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hEUVVGRE8xRkJRMFFzVFVGQlRTeGpRVUZqTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVTjZSQ3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZaTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVZFc1JVRkRia01zVTBGQlV5eEZRVU5VTEZkQlFXdENMRVZCUTJ4Q0xFZEJRVWNzUTBGTFFTeERRVUZETzFGQlEwNHNVMEZCVXl4VlFVRlZMRU5CUVVNc1IwRkJOa0k3V1VGREwwTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETERoQ1FVRTRRanRaUVVOdVJDeFBRVUZQTEVkQlFWVXNRMEZCUXp0UlFVTndRaXhEUVVGRE8xRkJSVVFzU1VGQlNTeERRVUZETEVOQlFVTXNZMEZCWXl4WlFVRlpMRTlCUVU4c1EwRkJRenRaUVVGRkxFOUJRVThzVlVGQlZTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMUZCUXpWRkxFOUJRVThzWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVONlF5eERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUZ3aUxpNHZMaTR2YzJoaGNtVmtMMjkyWlhKeWFXUmxjMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdSbUZpY21salEyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kekxGeHVJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJc1hHNTlJR1p5YjIwZ1hDSXVMaTlEYjI1MGNtRmpkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFTnZiblJsZUhRZ1lYTWdRM1I0TEZ4dUlDQkRiMjUwY21GamRDeGNiaUFnVDJKcVpXTjBJR0Z6SUVaaFluSnBZMDlpYW1WamRDeGNibjBnWm5KdmJTQmNJbVpoWW5KcFl5MWpiMjUwY21GamRDMWhjR2xjSWp0Y2JtbHRjRzl5ZENCN0lFMXZaR1ZzTENCVFpYSnBZV3hwZW1WeUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGIzSXRkbUZzYVdSaGRHbHZibHdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRV3hzVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnUVhWMGFHOXlhWHBoZEdsdmJrVnljbTl5TEZ4dUlDQkRiMjVrYVhScGIyNHNYRzRnSUVOdmJuUmxlSFIxWVd4QmNtZHpMRnh1SUNCRWFYSmxZM1JwYjI1TWFXMXBkRTltWm5ObGRDeGNiaUFnUlhabGJuUkpaSE1zWEc0Z0lFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp5eGNiaUFnVFdWMGFHOWtUM0pQY0dWeVlYUnBiMjRzWEc0Z0lFOWljMlZ5ZG1WeUxGeHVJQ0JQY21SbGNrUnBjbVZqZEdsdmJpeGNiaUFnVUdWeWMybHpkR1Z1WTJWTFpYbHpMRnh1SUNCUVpYSnphWE4wWlc1alpVOWljMlZ5ZG1WeUxGeHVJQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNc1hHNGdJRkpsY0c5emFYUnZjbmtzWEc0Z0lGTmxjbWxoYkdsNlpXUlFZV2RsTEZ4dWZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVNCOUlHWnliMjBnWENJdUxpOUdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25sY0lqdGNibWx0Y0c5eWRDQjdJRVJsZEdWeWJXbHVhWE4wYVdOVFpYSnBZV3hwZW1WeUlIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlFWlhSbGNtMXBibWx6ZEdsalUyVnlhV0ZzYVhwbGNsd2lPMXh1YVcxd2IzSjBJSHNnVFdGdVoyOVJkV1Z5ZVNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMV052ZFdOb1pHSmNJanRjYm1sdGNHOXlkQ0I3SUVOb1pXTnJZV0pzWlN3Z2FHVmhiSFJvWTJobFkyc2dmU0JtY205dElGd2lMaTR2TGk0dmMyaGhjbVZrTDJsdWRHVnlabUZqWlhNdlEyaGxZMnRoWW14bFhDSTdYRzVwYlhCdmNuUWdleUJEYjI1emRISjFZM1J2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMElIMGdabkp2YlNCY0lpNHVMME52Ym5SeVlXTjBRMjl1ZEdWNGRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMRnh1SUNCUGNHVnlZWFJwYjI1TFpYbHpMRnh1SUNCUWNtbHRZWEo1UzJWNVZIbHdaU3hjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCTmFYTnphVzVuUTI5dWRHVjRkRVZ5Y205eUlIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlwYm1SbGVGd2lPMXh1YVcxd2IzSjBJSHNnWlhoMGNtRmpkRTF6Y0Vsa0lIMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QlFRVU5MUVVkRlgwNUJUVVVzSUZaRlVsTkpUMDRnZlNCbWNtOXRJRndpTGk0dkxpNHZkbVZ5YzJsdmJsd2lPMXh1WEc1R1lXSnlhV05QWW1wbFkzUW9LU2hFWVhSbEtUdGNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVKaGMyVWdZMjl1ZEhKaFkzUWdZMnhoYzNNZ1ptOXlJRU5TVlVRZ2IzQmxjbUYwYVc5dWN5QnBiaUJHWVdKeWFXTWdZMmhoYVc1amIyUmxYRzRnS2lCQWMzVnRiV0Z5ZVNCUWNtOTJhV1JsY3lCemRHRnVaR0Z5WkNCamNtVmhkR1VzSUhKbFlXUXNJSFZ3WkdGMFpTd2dZVzVrSUdSbGJHVjBaU0J2Y0dWeVlYUnBiMjV6SUdadmNpQnRiMlJsYkhNZ2FXNGdSbUZpY21saklHTm9ZV2x1WTI5a1pWeHVJQ29nUUhSbGJYQnNZWFJsSUUwZ0xTQlVlWEJsSUdWNGRHVnVaR2x1WnlCTmIyUmxiRnh1SUNvZ1FHTnNZWE56SUVaaFluSnBZME55ZFdSRGIyNTBjbUZqZEZ4dUlDb2dRR1Y0ZEdWdVpITWdlME52Ym5SeVlXTjBmVnh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJR0JnWUhSNWNHVnpZM0pwY0hSY2JpQXFJQzh2SUVSbFptbHVaU0JoSUcxdlpHVnNYRzRnS2lCQWRHRmliR1VvSjJGemMyVjBjeWNwWEc0Z0tpQmpiR0Z6Y3lCQmMzTmxkQ0JsZUhSbGJtUnpJRTF2WkdWc0lIdGNiaUFxSUNBZ1FHbGtLQ2xjYmlBcUlDQWdhV1E2SUhOMGNtbHVaenRjYmlBcVhHNGdLaUFnSUVCd2NtOXdaWEowZVNncFhHNGdLaUFnSUdSaGRHRTZJSE4wY21sdVp6dGNiaUFxSUgxY2JpQXFYRzRnS2lBdkx5QkRjbVZoZEdVZ1lTQmpiMjUwY21GamRDQjBhR0YwSUdWNGRHVnVaSE1nUm1GaWNtbGpRM0oxWkVOdmJuUnlZV04wWEc0Z0tpQmxlSEJ2Y25RZ1kyeGhjM01nUVhOelpYUkRiMjUwY21GamRDQmxlSFJsYm1SeklFWmhZbkpwWTBOeWRXUkRiMjUwY21GamREeEJjM05sZEQ0Z2UxeHVJQ29nSUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBcUlDQWdJQ0J6ZFhCbGNpZ25RWE56WlhSRGIyNTBjbUZqZENjc0lFRnpjMlYwS1R0Y2JpQXFJQ0FnZlZ4dUlDcGNiaUFxSUNBZ0x5OGdRV1JrSUdOMWMzUnZiU0J0WlhSb2IyUnpJR0Z6SUc1bFpXUmxaRnh1SUNvZ0lDQmhjM2x1WXlCblpYUkJjM05sZEVocGMzUnZjbmtvWTNSNE9pQkRiMjUwWlhoMExDQnBaRG9nYzNSeWFXNW5LVG9nVUhKdmJXbHpaVHhoYm5sYlhUNGdlMXh1SUNvZ0lDQWdJQzh2SUVOMWMzUnZiU0JwYlhCc1pXMWxiblJoZEdsdmJseHVJQ29nSUNCOVhHNGdLaUI5WEc0Z0tpQmdZR0JjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRMnhwWlc1MFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTnZiblJ5WVdOMFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGSmxjRzl6YVhSdmNubGNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRV1JoY0hSbGNseHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQlRkR0YwWlVSQ1hHNGdLbHh1SUNvZ0lDQkRiR2xsYm5RdFBqNURiMjUwY21GamREb2dZM0psWVhSbEtHTjBlQ3dnYlc5a1pXd3BYRzRnS2lBZ0lFTnZiblJ5WVdOMExUNCtVbVZ3YjNOcGRHOXllVG9nY21Wd2IzTnBkRzl5ZVNoamRIZ3BYRzRnS2lBZ0lFTnZiblJ5WVdOMExUNCtVbVZ3YjNOcGRHOXllVG9nWTNKbFlYUmxLRzF2WkdWc0xDQmpkSGdwWEc0Z0tpQWdJRkpsY0c5emFYUnZjbmt0UGo1QlpHRndkR1Z5T2lCamNtVmhkR1VvZEdGaWJHVk9ZVzFsTENCcFpDd2djbVZqYjNKa0xDQjBjbUZ1YzJsbGJuUXNJR04wZUNsY2JpQXFJQ0FnUVdSaGNIUmxjaTArUGxOMFlYUmxSRUk2SUhCMWRGTjBZWFJsS0dsa0xDQnpaWEpwWVd4cGVtVmtSR0YwWVNsY2JpQXFJQ0FnVTNSaGRHVkVRaTB0UGo1QlpHRndkR1Z5T2lCVGRXTmpaWE56WEc0Z0tpQWdJRUZrWVhCMFpYSXRMVDQrVW1Wd2IzTnBkRzl5ZVRvZ2NtVmpiM0prWEc0Z0tpQWdJRkpsY0c5emFYUnZjbmt0TFQ0K1EyOXVkSEpoWTNRNklHMXZaR1ZzWEc0Z0tpQWdJRU52Ym5SeVlXTjBMUzArUGtOc2FXVnVkRG9nYlc5a1pXeGNiaUFxTDF4dVpYaHdiM0owSUdGaWMzUnlZV04wSUdOc1lYTnpJRVpoWW5KcFkwTnlkV1JEYjI1MGNtRmpkRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytYRzRnSUdWNGRHVnVaSE1nUTI5dWRISmhZM1JjYmlBZ2FXMXdiR1Z0Wlc1MGMxeHVJQ0FnSUVOb1pXTnJZV0pzWlN4Y2JpQWdJQ0JRWlhKemFYTjBaVzVqWlU5aWMyVnlkbVZ5UEVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRENHNYRzRnSUNBZ1QySnpaWEoyWlhJOFhHNGdJQ0FnSUNCYlhHNGdJQ0FnSUNBZ0lIUmhZbXhsT2lCRGIyNXpkSEoxWTNSdmNqeE5QaUI4SUhOMGNtbHVaeXhjYmlBZ0lDQWdJQ0FnWlhabGJuUTZJRUZzYkU5d1pYSmhkR2x2Ymt0bGVYTXNYRzRnSUNBZ0lDQWdJR2xrT2lCRmRtVnVkRWxrY3l4Y2JpQWdJQ0FnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBpeGNiaUFnSUNBZ0lGMWNiaUFnSUNBK1hHNTdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVMmhoY21Wa0lHRmtZWEIwWlhJZ2FXNXpkR0Z1WTJVZ1ptOXlJR0ZzYkNCamIyNTBjbUZqZENCcGJuTjBZVzVqWlhOY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQnpkR0YwYVdNZ1lXUmhjSFJsY2pvZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlJRDBnYm1WM0lFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaWdwTzF4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J6ZEdGMGFXTWdjbVZoWkc5dWJIa2djMlZ5YVdGc2FYcGxjaUE5SUc1bGR5QkVaWFJsY20xcGJtbHpkR2xqVTJWeWFXRnNhWHBsY2lncE8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCcGJtbDBhV0ZzYVhwbFpEb2dZbTl2YkdWaGJpQTlJR1poYkhObE8xeHVYRzRnSUhCeWFYWmhkR1VnWDNKbGNHOC9PaUJHWVdKeWFXTkRiMjUwY21GamRGSmxjRzl6YVhSdmNuazhUVDQ3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZENCeVpYQnZLQ2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVmY21Wd2J5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1ZmNtVndieUE5SUZKbGNHOXphWFJ2Y25rdVptOXlUVzlrWld3b2RHaHBjeTVqYkdGNmVpazdYRzRnSUNBZ0lDQXZMeUIwY25rZ2UxeHVJQ0FnSUNBZ0x5OGdJQ0IwYUdsekxuSmxjRzh1YjJKelpYSjJaU2gwYUdsektUdGNiaUFnSUNBZ0lDOHZJSDBnWTJGMFkyZ2dLR1Z5Y2pvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0x5OGdJQ0JwWmlBb1hHNGdJQ0FnSUNBdkx5QWdJQ0FnWlhKeUlHbHVjM1JoYm1ObGIyWWdTVzUwWlhKdVlXeEZjbkp2Y2lBbUpseHVJQ0FnSUNBZ0x5OGdJQ0FnSUdWeWNpNXRaWE56WVdkbExtbHVZMngxWkdWektGd2lUMkp6WlhKMlpYSWdZV3h5WldGa2VTQnlaV2RwYzNSbGNtVmtYQ0lwWEc0Z0lDQWdJQ0F2THlBZ0lDa2dlMXh1SUNBZ0lDQWdMeThnSUNBZ0lDOHZJR0ZzY21WaFpIa2djbVZuYVhOMFpYSmxaQ0J2WW5ObGNuWmxjanNnYVdkdWIzSmxJR1IxY0d4cFkyRjBaU0J5WldkcGMzUnlZWFJwYjI0Z0tHUjFjbWx1WnlCMFpYTjBjeWxjYmlBZ0lDQWdJQzh2SUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklDQWdJQ0IwYUhKdmR5Qmxjbkk3WEc0Z0lDQWdJQ0F2THlBZ0lIMWNiaUFnSUNBZ0lDOHZJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0psY0c4N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOeVpXRjBaWE1nWVNCdVpYY2dSbUZpY21salEzSjFaRU52Ym5SeVlXTjBJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFbHVhWFJwWVd4cGVtVnpJR0VnWTI5dWRISmhZM1FnZDJsMGFDQmhJRzVoYldVZ1lXNWtJRzF2WkdWc0lHTnNZWE56WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUMwZ1ZHaGxJRzVoYldVZ2IyWWdkR2hsSUdOdmJuUnlZV04wWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRMjl1YzNSeWRXTjBiM0k4VFQ1OUlHTnNZWHA2SUMwZ1ZHaGxJRzF2WkdWc0lHTnZibk4wY25WamRHOXlYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWTI5dWMzUnlkV04wYjNJb1hHNGdJQ0FnYm1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUhCeWIzUmxZM1JsWkNCeVpXRmtiMjVzZVNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNWNiaUFnS1NCN1hHNGdJQ0FnYzNWd1pYSW9ibUZ0WlNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCeVpXWnlaWE5vS0Z4dUlDQWdJSFJoWW14bE9pQkRiMjV6ZEhKMVkzUnZjanhOUGlCOElITjBjbWx1Wnl4Y2JpQWdJQ0JsZG1WdWREb2dRV3hzVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnSUNCcFpEb2dSWFpsYm5SSlpITXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTV5WldaeVpYTm9LVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnVUhWemFHbHVaeUFrZTJWMlpXNTBmU0JsZG1WdWRDQnZiaUIwWVdKc1pTQWtlM1JoWW14bGZTd2dhV1FvY3lrZ0pIdHBaSDFnS1R0Y2JpQWdJQ0F2THlCa2J5QnViM1JvYVc1bkxpQmhiR3dnZDJVZ2JtVmxaR1ZrSUhkaGN5QmhiaUJ2WW5ObGNuWmxjaUIwYnlCcmFXTnJjM1JoY25RZ2RHaGxJSEJ5YjJObGMzTmNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JDZVNoY2JpQWdJQ0JqZEhnNklFTjBlQ0I4SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDeGNiaUFnSUNCclpYazZJSE4wY21sdVp5QjhJR3RsZVc5bUlFMHNYRzRnSUNBZ2IzSmtaWEk2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRTFiWFNCOElITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeXdnYkc5bklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiTGk0dVlYSm5jeXdnWTNSNFhTd2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGt4SlUxUmZRbGtzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXNhWE4wUW5rcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0Z4dUlDQWdJQ0FnWUZKMWJtNXBibWNnYkdsemRFSjVJR3RsZVNBa2UydGxlU0JoY3lCemRISnBibWQ5TENCdmNtUmxjaUFrZTI5eVpHVnlmU0JoYm1RZ1lYSm5jeUFrZTJOMGVFRnlaM045WUZ4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y21Wd2J5NXNhWE4wUW5rb1hHNGdJQ0FnSUNCclpYa2dZWE1nYTJWNWIyWWdUU3hjYmlBZ0lDQWdJRzl5WkdWeUlHRnpJRTl5WkdWeVJHbHlaV04wYVc5dUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCd1lXZHBibUYwWlVKNUtGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lHdGxlVG9nYzNSeWFXNW5JSHdnYTJWNWIyWWdUU3hjYmlBZ0lDQnZjbVJsY2pvZ2MzUnlhVzVuTEZ4dUlDQWdJSEpsWmpvZ1QyMXBkRHhFYVhKbFkzUnBiMjVNYVcxcGRFOW1abk5sZEN3Z1hDSmthWEpsWTNScGIyNWNJajRnZkNCemRISnBibWNnUFNCN1hHNGdJQ0FnSUNCdlptWnpaWFE2SURFc1hHNGdJQ0FnSUNCc2FXMXBkRG9nTVRBc1hHNGdJQ0FnZlN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZObGNtbGhiR2w2WldSUVlXZGxQRTArSUh3Z2MzUnlhVzVuUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpMQ0JzYjJjZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLRnN1TGk1aGNtZHpMQ0JqZEhoZExDQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRFdGxlWE11VUVGSFJWOUNXU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxuQmhaMmx1WVhSbFFua3BPMXh1SUNBZ0lHeHZaeTVwYm1adktGeHVJQ0FnSUNBZ1lGSjFibTVwYm1jZ2NHRm5hVzVoZEdWQ2VTQnJaWGtnSkh0clpYa2dZWE1nYzNSeWFXNW5mU3dnYjNKa1pYSWdKSHR2Y21SbGNuMGdkMmwwYUNCemFYcGxJQ1I3S0hKbFppQmhjeUJoYm5rcExteHBiV2wwZlNCaGJtUWdZWEpuY3lBa2UyTjBlRUZ5WjNOOVlGeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVndieTV3WVdkcGJtRjBaVUo1S0Z4dUlDQWdJQ0FnYTJWNUlHRnpJR3RsZVc5bUlFMHNYRzRnSUNBZ0lDQnZjbVJsY2lCaGN5QmhibmtzWEc0Z0lDQWdJQ0J5WldZZ1lYTWdZVzU1TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ3WVdkbEtGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lIWmhiSFZsT2lCemRISnBibWNzWEc0Z0lDQWdaR2x5WldOMGFXOXVPaUJ6ZEhKcGJtY2dmQ0JQY21SbGNrUnBjbVZqZEdsdmJpQTlJRTl5WkdWeVJHbHlaV04wYVc5dUxrRlRReXhjYmlBZ0lDQnlaV1k2SUU5dGFYUThSR2x5WldOMGFXOXVUR2x0YVhSUFptWnpaWFFzSUZ3aVpHbHlaV04wYVc5dVhDSStJSHdnYzNSeWFXNW5JRDBnZTF4dUlDQWdJQ0FnYjJabWMyVjBPaUF4TEZ4dUlDQWdJQ0FnYkdsdGFYUTZJREV3TEZ4dUlDQWdJSDBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhUWlhKcFlXeHBlbVZrVUdGblpUeE5QaUI4SUhOMGNtbHVaejRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5d2diRzluSUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGJMaTR1WVhKbmN5d2dZM1I0WFN3Z1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMbEJCUjBVc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV3WVdkbEtUdGNiaUFnSUNCc2IyY3VhVzVtYnloY2JpQWdJQ0FnSUdCUVlXZHBibWNnSkh0TmIyUmxiQzUwWVdKc1pVNWhiV1VvZEdocGN5NWpiR0Y2ZWlsOUlHSjVJR1JsWm1GMWJIUWdjWFZsY25rZ1lYUjBjbWxpZFhSbGMyQmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJSEpsWm1WeVpXNWpaU0E5WEc0Z0lDQWdJQ0IwZVhCbGIyWWdjbVZtSUQwOVBTQmNJbk4wY21sdVoxd2lYRzRnSUNBZ0lDQWdJRDhnS0VwVFQwNHVjR0Z5YzJVb2NtVm1LU0JoY3lCUGJXbDBQRVJwY21WamRHbHZia3hwYldsMFQyWm1jMlYwTENCY0ltUnBjbVZqZEdsdmJsd2lQaWtnZkh4Y2JpQWdJQ0FnSUNBZ0lDQW9lMzBnWVhNZ1QyMXBkRHhFYVhKbFkzUnBiMjVNYVcxcGRFOW1abk5sZEN3Z1hDSmthWEpsWTNScGIyNWNJajRwWEc0Z0lDQWdJQ0FnSURvZ2NtVm1PMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsY0c4dWNHRm5aU2hjYmlBZ0lDQWdJSFpoYkhWbExGeHVJQ0FnSUNBZ1pHbHlaV04wYVc5dUlHRnpJRTl5WkdWeVJHbHlaV04wYVc5dUxGeHVJQ0FnSUNBZ2NtVm1aWEpsYm1ObElHRnpJRTl0YVhROFJHbHlaV04wYVc5dVRHbHRhWFJQWm1aelpYUXNJRndpWkdseVpXTjBhVzl1WENJK0xGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCbWFXNWtUMjVsUW5rb1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2EyVjVPaUJ6ZEhKcGJtY2dmQ0JyWlhsdlppQk5MRnh1SUNBZ0lIWmhiSFZsT2lCaGJua3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeE5JSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21kekxDQnNiMmNnZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGc3VMaTVoY21kekxDQmpkSGhkTENCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVSa2xPUkY5UFRrVmZRbGtzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NW1hVzVrVDI1bFFua3BPMXh1SUNBZ0lHeHZaeTVwYm1adktGeHVJQ0FnSUNBZ1lGSjFibTVwYm1jZ1ptbHVaRTl1WlVKNUlHdGxlU0FrZTJ0bGVTQmhjeUJ6ZEhKcGJtZDlMQ0IyWVd4MVpUb2dKSHQyWVd4MVpYMGdkMmwwYUNCaGNtZHpJQ1I3WTNSNFFYSm5jMzFnWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WlhCdkxtWnBibVJQYm1WQ2VTaHJaWGtnWVhNZ2EyVjViMllnVFN3Z2RtRnNkV1VzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2MzUmhkR1Z0Wlc1MEtGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lHMWxkR2h2WkRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4WVc1NVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6TENCc2IyY2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamRIaGRMQ0JRWlhKemFYTjBaVzVqWlV0bGVYTXVVMVJCVkVWTlJVNVVMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWMzUmhkR1Z0Wlc1MEtUdGNiaUFnSUNCc2IyY3VhVzVtYnloZ1VuVnVibWx1WnlCemRHRjBaVzFsYm5RZ0pIdHRaWFJvYjJSOUlIZHBkR2dnWVhKbmN5QWtlMk4wZUVGeVozTjlZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y21Wd2J5NXpkR0YwWlcxbGJuUW9iV1YwYUc5a0xDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR052ZFc1MFQyWW9YRzRnSUNBZ1kzUjRPaUJEZEhnZ2ZDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzWEc0Z0lDQWdhMlY1UHpvZ2MzUnlhVzVuSUh3Z2EyVjViMllnVFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEc1MWJXSmxjaUI4SUhOMGNtbHVaejRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5d2diRzluSUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGJMaTR1WVhKbmN5d2dZM1I0WFN3Z1VISmxjR0Z5WldSVGRHRjBaVzFsYm5STFpYbHpMa05QVlU1VVgwOUdMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVkyOTFiblJQWmlrN1hHNGdJQ0FnYkc5bkxtbHVabThvWUZKMWJtNXBibWNnWTI5MWJuUlBaaVI3YTJWNUlEOGdZQ0JyWlhrZ0pIdHJaWGtnWVhNZ2MzUnlhVzVuZldBZ09pQmNJbHdpZldBcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuSmxjRzh1WTI5MWJuUlBaaWhyWlhrZ1lYTWdhMlY1YjJZZ1RTQjhJSFZ1WkdWbWFXNWxaQ3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCdFlYaFBaaWhjYmlBZ0lDQmpkSGc2SUVOMGVDQjhJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JyWlhrNklITjBjbWx1WnlCOElHdGxlVzltSUUwc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4TlcydGxlVzltSUUxZElId2djM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6TENCc2IyY2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamRIaGRMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVRVRllYMDlHTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXViV0Y0VDJZcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCU2RXNXVhVzVuSUcxaGVFOW1JR3RsZVNBa2UydGxlU0JoY3lCemRISnBibWQ5WUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVndieTV0WVhoUFppaHJaWGtnWVhNZ2EyVjViMllnVFN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QnRhVzVQWmloY2JpQWdJQ0JqZEhnNklFTjBlQ0I4SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDeGNiaUFnSUNCclpYazZJSE4wY21sdVp5QjhJR3RsZVc5bUlFMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeE5XMnRsZVc5bUlFMWRJSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21kekxDQnNiMmNnZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGc3VMaTVoY21kekxDQmpkSGhkTENCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZEV0bGVYTXVUVWxPWDA5R0xDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11YldsdVQyWXBPMXh1SUNBZ0lHeHZaeTVwYm1adktHQlNkVzV1YVc1bklHMXBiazltSUd0bGVTQWtlMnRsZVNCaGN5QnpkSEpwYm1kOVlDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZ3Ynk1dGFXNVBaaWhyWlhrZ1lYTWdhMlY1YjJZZ1RTd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJoZG1kUFppaGNiaUFnSUNCamRIZzZJRU4wZUNCOElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQnJaWGs2SUhOMGNtbHVaeUI4SUd0bGVXOW1JRTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSWdmQ0J6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNc0lHeHZaeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTjBlRjBzSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUJWa2RmVDBZc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVoZG1kUFppazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lGSjFibTVwYm1jZ1lYWm5UMllnYTJWNUlDUjdhMlY1SUdGeklITjBjbWx1WjMxZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG1GMlowOW1LR3RsZVNCaGN5QnJaWGx2WmlCTkxDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSE4xYlU5bUtGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lHdGxlVG9nYzNSeWFXNW5JSHdnYTJWNWIyWWdUU3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRzUxYldKbGNpQjhJSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3l3Z2JHOW5JSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYkxpNHVZWEpuY3l3Z1kzUjRYU3dnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxsTlZUVjlQUml3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbk4xYlU5bUtUdGNiaUFnSUNCc2IyY3VhVzVtYnloZ1VuVnVibWx1WnlCemRXMVBaaUJyWlhrZ0pIdHJaWGtnWVhNZ2MzUnlhVzVuZldBcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuSmxjRzh1YzNWdFQyWW9hMlY1SUdGeklHdGxlVzltSUUwc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaR2x6ZEdsdVkzUlBaaWhjYmlBZ0lDQmpkSGc2SUVOMGVDQjhJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JyWlhrNklITjBjbWx1WnlCOElHdGxlVzltSUUwc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4TlcydGxlVzltSUUxZFcxMGdmQ0J6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNc0lHeHZaeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTjBlRjBzSUZCeVpYQmhjbVZrVTNSaGRHVnRaVzUwUzJWNWN5NUVTVk5VU1U1RFZGOVBSaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtUnBjM1JwYm1OMFQyWXBPMXh1SUNBZ0lHeHZaeTVwYm1adktHQlNkVzV1YVc1bklHUnBjM1JwYm1OMFQyWWdhMlY1SUNSN2EyVjVJR0Z6SUhOMGNtbHVaMzFnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1eVpYQnZMbVJwYzNScGJtTjBUMllvYTJWNUlHRnpJR3RsZVc5bUlFMHNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWjNKdmRYQlBaaWhjYmlBZ0lDQmpkSGc2SUVOMGVDQjhJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JyWlhrNklITjBjbWx1WnlCOElHdGxlVzltSUUwc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JOVzEwK0lId2djM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6TENCc2IyY2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamRIaGRMQ0JRY21Wd1lYSmxaRk4wWVhSbGJXVnVkRXRsZVhNdVIxSlBWVkJmVDBZc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVuY205MWNFOW1LVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdVblZ1Ym1sdVp5Qm5jbTkxY0U5bUlHdGxlU0FrZTJ0bGVTQmhjeUJ6ZEhKcGJtZDlZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y21Wd2J5NW5jbTkxY0U5bUtHdGxlU0JoY3lCclpYbHZaaUJOTENBdUxpNWpkSGhCY21kektUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EzSmxZWFJsY3lCaElITnBibWRzWlNCdGIyUmxiQ0JwYmlCMGFHVWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnUkdWc1pXZGhkR1Z6SUhSdklIUm9aU0J5WlhCdmMybDBiM0o1SjNNZ1kzSmxZWFJsSUcxbGRHaHZaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTjBlSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwMTlJRzF2WkdWc0lDMGdWR2hsSUcxdlpHVnNJSFJ2SUdOeVpXRjBaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMbUZ1ZVZ0ZGZTQmhjbWR6SUMwZ1FXUmthWFJwYjI1aGJDQmhjbWQxYldWdWRITmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4TlBuMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElHTnlaV0YwWldRZ2JXOWtaV3hjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJR055WldGMFpTaGNiaUFnSUNCamIyNTBaWGgwT2lCRGRIZ2dmQ0JHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc1hHNGdJQ0FnYlc5a1pXdzZJSE4wY21sdVp5QjhJRTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtY2dmQ0JOUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlRUZ5WjNNc0lHTjBlQ0I5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTnZiblJsZUhSZExDQlBjR1Z5WVhScGIyNUxaWGx6TGtOU1JVRlVSU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlNrN1hHNGdJQ0FnZEdocGN5NWxibk4xY21WTmFYSnliM0pYY21sMFpWQmxjbTFwYzNOcGIyNXpLR04wZUNrN1hHNGdJQ0FnYkc5bkxtbHVabThvWUVOUFRsUlNRVU5VSUVOU1JVRlVSU3dnSkh0amRIaEJjbWR6ZldBcE8xeHVYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQnRiMlJsYkNBOVBUMGdYQ0p6ZEhKcGJtZGNJaWtnYlc5a1pXd2dQU0IwYUdsekxtUmxjMlZ5YVdGc2FYcGxQRTArS0cxdlpHVnNLU0JoY3lCTk8xeHVYRzRnSUNBZ2JHOW5MbWx1Wm04b1lFTnlaV0YwYVc1bklHMXZaR1ZzT2lBa2UwcFRUMDR1YzNSeWFXNW5hV1o1S0cxdlpHVnNLWDFnS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFJ5WVc1emFXVnVkQ0E5SUhSb2FYTXVaMlYwVkhKaGJuTnBaVzUwUkdGMFlTaGpkSGdwTzF4dVhHNGdJQ0FnYkc5bkxtbHVabThvWUUxbGNtZHBibWNnZEhKaGJuTnBaVzUwSUdSaGRHRXVMaTVnS1R0Y2JpQWdJQ0J0YjJSbGJDQTlJRTF2WkdWc0xtMWxjbWRsS0cxdlpHVnNMQ0IwY21GdWMybGxiblFzSUhSb2FYTXVZMnhoZW5vcElHRnpJRTA3WEc1Y2JpQWdJQ0JqYjI1emRDQmpjbVZoZEdWa0lEMGdZWGRoYVhRZ2RHaHBjeTV5WlhCdkxtTnlaV0YwWlNodGIyUmxiQ3dnTGk0dVkzUjRRWEpuY3lrN1hHNWNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0J1WlhjZ2RHaHBjeTVqYkdGNmVpaE5iMlJsYkM1elpXZHlaV2RoZEdVb1kzSmxZWFJsWkNrdWJXOWtaV3dwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZKbFlXUnpJR0VnYzJsdVoyeGxJRzF2WkdWc0lHWnliMjBnZEdobElITjBZWFJsSUdSaGRHRmlZWE5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVJsYkdWbllYUmxjeUIwYnlCMGFHVWdjbVZ3YjNOcGRHOXllU2R6SUhKbFlXUWdiV1YwYUc5a1hHNGdJQ0FxSUVCd1lYSmhiU0I3UTNSNGZTQmpkSGdnTFNCVWFHVWdSbUZpY21saklHTm9ZV2x1WTI5a1pTQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5JSHdnYm5WdFltVnlmU0JyWlhrZ0xTQlVhR1VnYTJWNUlHOW1JSFJvWlNCdGIyUmxiQ0IwYnlCeVpXRmtYRzRnSUNBcUlFQndZWEpoYlNCN0xpNHVZVzU1VzExOUlHRnlaM01nTFNCQlpHUnBkR2x2Ym1Gc0lHRnlaM1Z0Wlc1MGMxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEUwK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2NtVjBjbWxsZG1Wa0lHMXZaR1ZzWEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJ5WldGa0tGeHVJQ0FnSUdOMGVEb2dRM1I0SUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lHdGxlVG9nVUhKcGJXRnllVXRsZVZSNWNHVWdmQ0J6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeE5JSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGc3VMaTVoY21kekxDQmpkSGhkTENCUGNHVnlZWFJwYjI1TFpYbHpMbEpGUVVRc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVXBPMXh1SUNBZ0lHeHZaeTVwYm1adktHQnlaV0ZrYVc1bklHVnVkSEo1SUhkcGRHZ2djR3NnSkh0clpYbDlJR0FwTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVndieTV5WldGa0tHdGxlU3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdaMlYwVkhKaGJuTnBaVzUwUkdGMFlTaGpkSGc2SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDazZJR0Z1ZVNCN1hHNGdJQ0FnWTI5dWMzUWdkSEpoYm5OcFpXNTBUV0Z3SUQwZ1kzUjRMbk4wZFdJdVoyVjBWSEpoYm5OcFpXNTBLQ2s3WEc0Z0lDQWdiR1YwSUhSeVlXNXphV1Z1ZERvZ1lXNTVJRDBnZTMwN1hHNWNiaUFnSUNCcFppQW9kSEpoYm5OcFpXNTBUV0Z3TG1oaGN5aDBhR2x6TG5KbGNHOWJYQ0owWVdKc1pVNWhiV1ZjSWwwcEtTQjdYRzRnSUNBZ0lDQjBjbUZ1YzJsbGJuUWdQU0JLVTA5T0xuQmhjbk5sS0Z4dUlDQWdJQ0FnSUNBb1hHNGdJQ0FnSUNBZ0lDQWdkSEpoYm5OcFpXNTBUV0Z3TG1kbGRDaDBhR2x6TG5KbGNHOWJYQ0owWVdKc1pVNWhiV1ZjSWwwcElHRnpJSFZ1YTI1dmQyNGdZWE1nUW5WbVptVnlYRzRnSUNBZ0lDQWdJQ2svTG5SdlUzUnlhVzVuS0Z3aWRYUm1PRndpS1NCaGN5QnpkSEpwYm1kY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tIUnlZVzV6YVdWdWRFMWhjQzVvWVhNb1hDSmZYMjkyWlhKeWFXUmxjMXdpS1NrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYjNabGNuSnBaR1Z6SUQwZ1NsTlBUaTV3WVhKelpTaGNiaUFnSUNBZ0lDQWdLRnh1SUNBZ0lDQWdJQ0FnSUhSeVlXNXphV1Z1ZEUxaGNDNW5aWFFvZEdocGN5NXlaWEJ2VzF3aWRHRmliR1ZPWVcxbFhDSmRLU0JoY3lCMWJtdHViM2R1SUdGeklFSjFabVpsY2x4dUlDQWdJQ0FnSUNBcFB5NTBiMU4wY21sdVp5aGNJblYwWmpoY0lpa2dZWE1nYzNSeWFXNW5YRzRnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0JqZEhndVlXTmpkVzExYkdGMFpTaHZkbVZ5Y21sa1pYTXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCMGNtRnVjMmxsYm5RN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZWd1pHRjBaWE1nWVNCemFXNW5iR1VnYlc5a1pXd2dhVzRnZEdobElITjBZWFJsSUdSaGRHRmlZWE5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVJsYkdWbllYUmxjeUIwYnlCMGFHVWdjbVZ3YjNOcGRHOXllU2R6SUhWd1pHRjBaU0J0WlhSb2IyUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0RGRIaDlJR04wZUNBdElGUm9aU0JHWVdKeWFXTWdZMmhoYVc1amIyUmxJR052Ym5SbGVIUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0TmZTQnRiMlJsYkNBdElGUm9aU0J0YjJSbGJDQjBieUIxY0dSaGRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUhzdUxpNWhibmxiWFgwZ1lYSm5jeUF0SUVGa1pHbDBhVzl1WVd3Z1lYSm5kVzFsYm5SelhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4VFQ1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCMWNHUmhkR1ZrSUcxdlpHVnNYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QjFjR1JoZEdVb1hHNGdJQ0FnWTI5dWRHVjRkRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJRzF2WkdWc09pQnpkSEpwYm1jZ2ZDQk5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1bklId2dUVDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6TENCamRIZ2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamIyNTBaWGgwWFN3Z1QzQmxjbUYwYVc5dVMyVjVjeTVWVUVSQlZFVXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1MWNHUmhkR1VwTzF4dUlDQWdJSFJvYVhNdVpXNXpkWEpsVFdseWNtOXlWM0pwZEdWUVpYSnRhWE56YVc5dWN5aGpkSGdwTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYlc5a1pXd2dQVDA5SUZ3aWMzUnlhVzVuWENJcElHMXZaR1ZzSUQwZ2RHaHBjeTVrWlhObGNtbGhiR2w2WlR4TlBpaHRiMlJsYkNrZ1lYTWdUVHRjYmx4dUlDQWdJR3h2Wnk1cGJtWnZLR0JWY0dSaGRHbHVaeUJ0YjJSbGJEb2dKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaHRiMlJsYkNsOVlDazdYRzVjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjMmxsYm5RZ1BTQjBhR2x6TG1kbGRGUnlZVzV6YVdWdWRFUmhkR0VvWTNSNEtUdGNibHh1SUNBZ0lHeHZaeTVwYm1adktHQk5aWEpuYVc1bklIUnlZVzV6YVdWdWRDQmtZWFJoTGk0dVlDazdYRzRnSUNBZ2JXOWtaV3dnUFNCTmIyUmxiQzV0WlhKblpTaHRiMlJsYkN3Z2RISmhibk5wWlc1MExDQjBhR2x6TG1Oc1lYcDZLU0JoY3lCTk8xeHVJQ0FnSUdOdmJuTjBJSFZ3WkdGMFpXUWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNHOHVkWEJrWVhSbEtHMXZaR1ZzTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0J1WlhjZ2RHaHBjeTVqYkdGNmVpaE5iMlJsYkM1elpXZHlaV2RoZEdVb2RYQmtZWFJsWkNrdWJXOWtaV3dwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbGJHVjBaWE1nWVNCemFXNW5iR1VnYlc5a1pXd2dabkp2YlNCMGFHVWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnUkdWc1pXZGhkR1Z6SUhSdklIUm9aU0J5WlhCdmMybDBiM0o1SjNNZ1pHVnNaWFJsSUcxbGRHaHZaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTjBlSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiV0psY24wZ2EyVjVJQzBnVkdobElHdGxlU0J2WmlCMGFHVWdiVzlrWld3Z2RHOGdaR1ZzWlhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRTArZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnWkdWc1pYUmxaQ0J0YjJSbGJGeHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ1pHVnNaWFJsS0Z4dUlDQWdJR04wZURvZ1EzUjRJSHdnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUd0bGVUb2dVSEpwYldGeWVVdGxlVlI1Y0dVZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4TklId2djM1J5YVc1blBpQjdYRzRnSUNBZ1kyOXVjM1FnZTF4dUlDQWdJQ0FnYkc5bkxGeHVJQ0FnSUNBZ1kzUjRRWEpuY3l4Y2JpQWdJQ0FnSUdOMGVEb2dabUZpY21salEzUjRMRnh1SUNBZ0lIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvV3k0dUxtRnlaM01zSUdOMGVGMHNJRTl3WlhKaGRHbHZia3RsZVhNdVJFVk1SVlJGTENCMGNuVmxLU2t1Wm05eUtGeHVJQ0FnSUNBZ2RHaHBjeTVrWld4bGRHVmNiaUFnSUNBcE8xeHVJQ0FnSUhSb2FYTXVaVzV6ZFhKbFRXbHljbTl5VjNKcGRHVlFaWEp0YVhOemFXOXVjeWhtWVdKeWFXTkRkSGdwTzF4dUlDQWdJR3h2Wnk1cGJtWnZLR0JrWld4bGRHbHVaeUJsYm5SeWVTQjNhWFJvSUhCcklDUjdhMlY1ZlNCZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaWEJ2TG1SbGJHVjBaU2hUZEhKcGJtY29hMlY1S1N3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFUmxiR1YwWlhNZ2JYVnNkR2x3YkdVZ2JXOWtaV3h6SUdaeWIyMGdkR2hsSUhOMFlYUmxJR1JoZEdGaVlYTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFUmxiR1ZuWVhSbGN5QjBieUIwYUdVZ2NtVndiM05wZEc5eWVTZHpJR1JsYkdWMFpVRnNiQ0J0WlhSb2IyUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWRiWFNCOElHNTFiV0psY2x0ZGZTQnJaWGx6SUMwZ1ZHaGxJR3RsZVhNZ2IyWWdkR2hsSUcxdlpHVnNjeUIwYnlCa1pXeGxkR1ZjYmlBZ0lDb2dRSEJoY21GdElIdERkSGg5SUdOMGVDQXRJRlJvWlNCR1lXSnlhV01nWTJoaGFXNWpiMlJsSUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVoYm5sYlhYMGdZWEpuY3lBdElFRmtaR2wwYVc5dVlXd2dZWEpuZFcxbGJuUnpYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFRWdGRQbjBnVUhKdmJXbHpaU0J5WlhOdmJIWnBibWNnZEc4Z2RHaGxJR1JsYkdWMFpXUWdiVzlrWld4elhHNGdJQ0FxTDF4dUlDQmhjM2x1WXlCa1pXeGxkR1ZCYkd3b1hHNGdJQ0FnWTNSNE9pQkRkSGdnZkNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ2EyVjVjem9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU0I4SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRTFiWFNCOElITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeXdnWTNSNE9pQm1ZV0p5YVdORGRIZ2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0ZzdUxpNWhjbWR6TENCamRIaGRMQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVJFVk1SVlJGWDBGTVRDd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1SbGJHVjBaVUZzYkNrN1hHNGdJQ0FnZEdocGN5NWxibk4xY21WTmFYSnliM0pYY21sMFpWQmxjbTFwYzNOcGIyNXpLR1poWW5KcFkwTjBlQ2s3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJyWlhseklEMDlQU0JjSW5OMGNtbHVaMXdpS1NCclpYbHpJRDBnU2xOUFRpNXdZWEp6WlNoclpYbHpLU0JoY3lCemRISnBibWRiWFR0Y2JpQWdJQ0JqYjI1emRDQmtaV3hsZEdWa0lEMGdZWGRoYVhRZ2RHaHBjeTV5WlhCdkxtUmxiR1YwWlVGc2JDaHJaWGx6TENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0JrWld4bGRHVmtMbTFoY0Nnb1l5a2dQVDRnYm1WM0lIUm9hWE11WTJ4aGVub29UVzlrWld3dWMyVm5jbVZuWVhSbEtHTXBMbTF2WkdWc0tTazdYRzRnSUNBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZoWkhNZ2JYVnNkR2x3YkdVZ2JXOWtaV3h6SUdaeWIyMGdkR2hsSUhOMFlYUmxJR1JoZEdGaVlYTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFUmxiR1ZuWVhSbGN5QjBieUIwYUdVZ2NtVndiM05wZEc5eWVTZHpJSEpsWVdSQmJHd2diV1YwYUc5a1hHNGdJQ0FxSUVCd1lYSmhiU0I3UTNSNGZTQmpkSGdnTFNCVWFHVWdSbUZpY21saklHTm9ZV2x1WTI5a1pTQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5XMTBnZkNCdWRXMWlaWEpiWFgwZ2EyVjVjeUF0SUZSb1pTQnJaWGx6SUc5bUlIUm9aU0J0YjJSbGJITWdkRzhnY21WaFpGeHVJQ0FnS2lCQWNHRnlZVzBnZXk0dUxtRnVlVnRkZlNCaGNtZHpJQzBnUVdSa2FYUnBiMjVoYkNCaGNtZDFiV1Z1ZEhOY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhOVzEwK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2NtVjBjbWxsZG1Wa0lHMXZaR1ZzYzF4dUlDQWdLaTljYmlBZ1lYTjVibU1nY21WaFpFRnNiQ2hjYmlBZ0lDQmpkSGc2SUVOMGVDQjhJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0JyWlhsek9pQlFjbWx0WVhKNVMyVjVWSGx3WlZ0ZElId2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFRWdGRJSHdnYzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiTGk0dVlYSm5jeXdnWTNSNFhTd2dRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6TGxKRlFVUmZRVXhNTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVZM0psWVhSbEtUdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlHdGxlWE1nUFQwOUlGd2ljM1J5YVc1blhDSXBJR3RsZVhNZ1BTQktVMDlPTG5CaGNuTmxLR3RsZVhNcElHRnpJSE4wY21sdVoxdGRPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsY0c4dWNtVmhaRUZzYkNoclpYbHpMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVlhCa1lYUmxjeUJ0ZFd4MGFYQnNaU0J0YjJSbGJITWdhVzRnZEdobElITjBZWFJsSUdSaGRHRmlZWE5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVJsYkdWbllYUmxjeUIwYnlCMGFHVWdjbVZ3YjNOcGRHOXllU2R6SUhWd1pHRjBaVUZzYkNCdFpYUm9iMlJjYmlBZ0lDb2dRSEJoY21GdElIdERkSGg5SUdOMGVDQXRJRlJvWlNCR1lXSnlhV01nWTJoaGFXNWpiMlJsSUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIdE5XMTE5SUcxdlpHVnNjeUF0SUZSb1pTQnRiMlJsYkhNZ2RHOGdkWEJrWVhSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3TGk0dVlXNTVXMTE5SUdGeVozTWdMU0JCWkdScGRHbHZibUZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRTFiWFQ1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCMWNHUmhkR1ZrSUcxdlpHVnNjMXh1SUNBZ0tpOWNiaUFnWVhONWJtTWdkWEJrWVhSbFFXeHNLRnh1SUNBZ0lHTnZiblJsZUhRNklFTjBlQ0I4SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDeGNiaUFnSUNCdGIyUmxiSE02SUhOMGNtbHVaeUI4SUUxYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1WnlCOElFMWJYVDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6TENCamRIZ2dmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0Z4dUlDQWdJQ0FnSUNCYkxpNHVZWEpuY3l3Z1kyOXVkR1Y0ZEYwc1hHNGdJQ0FnSUNBZ0lFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeTVWVUVSQlZFVmZRVXhNTEZ4dUlDQWdJQ0FnSUNCMGNuVmxYRzRnSUNBZ0lDQXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NTFjR1JoZEdWQmJHd3BPMXh1SUNBZ0lIUm9hWE11Wlc1emRYSmxUV2x5Y205eVYzSnBkR1ZRWlhKdGFYTnphVzl1Y3loamRIZ3BPMXh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdiVzlrWld4eklEMDlQU0JjSW5OMGNtbHVaMXdpS1Z4dUlDQWdJQ0FnYlc5a1pXeHpJRDBnS0VwVFQwNHVjR0Z5YzJVb2JXOWtaV3h6S1NCaGN5QmJYU2xjYmlBZ0lDQWdJQ0FnTG0xaGNDZ29iU2tnUFQ0Z2RHaHBjeTVrWlhObGNtbGhiR2w2WlNodEtTbGNiaUFnSUNBZ0lDQWdMbTFoY0Nnb2JTa2dQVDRnYm1WM0lIUm9hWE11WTJ4aGVub29iU2twSUdGeklHRnVlVHRjYmx4dUlDQWdJR052Ym5OMElIUnlZVzV6YVdWdWRDQTlJSFJvYVhNdVoyVjBWSEpoYm5OcFpXNTBSR0YwWVNoamRIZ3BPMXh1WEc0Z0lDQWdiRzluTG1sdVptOG9ZRTFsY21kcGJtY2dkSEpoYm5OcFpXNTBJR1JoZEdFdUxpNWdLVHRjYmlBZ0lDQnRiMlJsYkhNZ1BTQW9iVzlrWld4eklHRnpJRTFiWFNrdWJXRndLQ2h0TENCcEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQjBJRDBnUVhKeVlYa3VhWE5CY25KaGVTaDBjbUZ1YzJsbGJuUXBJRDhnZEhKaGJuTnBaVzUwVzJsZElEb2dkSEpoYm5OcFpXNTBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlFMXZaR1ZzTG0xbGNtZGxLRzBzSUhRZ2ZId2dlMzBzSUhSb2FYTXVZMnhoZW5vcElHRnpJRTA3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnWVdSa2FXNW5JQ1I3Ylc5a1pXeHpMbXhsYm1kMGFIMGdaVzUwY21sbGN5QjBieUIwYUdVZ2RHRmliR1ZnS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSFZ3WkdGMFpXUWdQU0JoZDJGcGRDQjBhR2x6TG5KbGNHOHVkWEJrWVhSbFFXeHNLRnh1SUNBZ0lDQWdiVzlrWld4eklHRnpJSFZ1YTI1dmQyNGdZWE1nVFZ0ZExGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdkWEJrWVhSbFpDNXRZWEFvS0dNcElEMCtJRzVsZHlCMGFHbHpMbU5zWVhwNktFMXZaR1ZzTG5ObFozSmxaMkYwWlNoaktTNXRiMlJsYkNrcE8xeHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVjRaV04xZEdWeklHRWdjWFZsY25rZ2QybDBhQ0IwYUdVZ2MzQmxZMmxtYVdWa0lHTnZibVJwZEdsdmJuTWdZVzVrSUc5d2RHbHZibk11WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRkJ5YjNacFpHVnpJR0VnYzJsdGNHeHBabWxsWkNCM1lYa2dkRzhnY1hWbGNua2dkR2hsSUdSaGRHRmlZWE5sSUhkcGRHZ2dZMjl0Ylc5dUlIRjFaWEo1SUhCaGNtRnRaWFJsY25NdVhHNGdJQ0FxSUVCd1lYSmhiU0I3UTI5dVpHbDBhVzl1UEUwK2ZTQmpiMjVrYVhScGIyNGdMU0JVYUdVZ1kyOXVaR2wwYVc5dUlIUnZJR1pwYkhSbGNpQnlaV052Y21SekxseHVJQ0FnS2lCQWNHRnlZVzBnYjNKa1pYSkNlU0F0SUZSb1pTQm1hV1ZzWkNCMGJ5QnZjbVJsY2lCeVpYTjFiSFJ6SUdKNUxseHVJQ0FnS2lCQWNHRnlZVzBnZTA5eVpHVnlSR2x5WldOMGFXOXVmU0JiYjNKa1pYSTlUM0prWlhKRWFYSmxZM1JwYjI0dVFWTkRYU0F0SUZSb1pTQnpiM0owSUdScGNtVmpkR2x2Ymk1Y2JpQWdJQ29nUUhCaGNtRnRJSHRQY21SbGNrUnBjbVZqZEdsdmJuMGdXMjl5WkdWeVBVOXlaR1Z5UkdseVpXTjBhVzl1TGtGVFExMGdMU0JVYUdVZ2MyOXlkQ0JrYVhKbFkzUnBiMjR1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJiR2x0YVhSZElDMGdUM0IwYVc5dVlXd2diV0Y0YVcxMWJTQnVkVzFpWlhJZ2IyWWdjbVZ6ZFd4MGN5QjBieUJ5WlhSMWNtNHVYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmMydHBjRjBnTFNCUGNIUnBiMjVoYkNCdWRXMWlaWElnYjJZZ2NtVnpkV3gwY3lCMGJ5QnphMmx3TGx4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRTFiWFQ1OUlGUm9aU0J4ZFdWeWVTQnlaWE4xYkhSeklHRnpJRzF2WkdWc0lHbHVjM1JoYm1ObGN5NWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklIRjFaWEo1S0Z4dUlDQWdJR052Ym5SbGVIUTZJRU4wZUNCOElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQmpiMjVrYVhScGIyNDZJRU52Ym1ScGRHbHZianhOUGlCOElITjBjbWx1Wnl4Y2JpQWdJQ0J2Y21SbGNrSjVPaUJ6ZEhKcGJtY2dmQ0JyWlhsdlppQk5MRnh1SUNBZ0lHOXlaR1Z5T2lCUGNtUmxja1JwY21WamRHbHZiaUI4SUhOMGNtbHVaeUE5SUU5eVpHVnlSR2x5WldOMGFXOXVMa0ZUUXl4Y2JpQWdJQ0JzYVcxcGREODZJRzUxYldKbGNpeGNiaUFnSUNCemEybHdQem9nYm5WdFltVnlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUVnRkSUh3Z2MzUnlhVzVuUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYkxpNHVZWEpuY3l3Z1kyOXVkR1Y0ZEYwc0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3k1UlZVVlNXU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVndieTV4ZFdWeWVTaGNiaUFnSUNBZ0lHTnZibVJwZEdsdmJpQmhjeUJEYjI1a2FYUnBiMjQ4VFQ0c1hHNGdJQ0FnSUNCdmNtUmxja0o1SUdGeklHdGxlVzltSUUwc1hHNGdJQ0FnSUNCdmNtUmxjaUJoY3lCUGNtUmxja1JwY21WamRHbHZiaXhjYmlBZ0lDQWdJR3hwYldsMExGeHVJQ0FnSUNBZ2MydHBjQ3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkZlR1ZqZFhSbGN5QmhJSEpoZHlCeGRXVnllU0JoWjJGcGJuTjBJSFJvWlNCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkVaV3hsWjJGMFpYTWdkRzhnZEdobElISmxjRzl6YVhSdmNua25jeUJ5WVhjZ2JXVjBhRzlrWEc0Z0lDQXFJRUJ3WVhKaGJTQjdRM1I0ZlNCamRIZ2dMU0JVYUdVZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlNCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdZVzU1ZlNCeVlYZEpibkIxZENBdElGUm9aU0J4ZFdWeWVTQjBieUJsZUdWamRYUmxYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1pHOWpjMDl1YkhrZ0xTQlhhR1YwYUdWeUlIUnZJSEpsZEhWeWJpQnZibXg1SUdSdlkzVnRaVzUwYzF4dUlDQWdLaUJBY0dGeVlXMGdleTR1TG1GdWVWdGRmU0JoY21keklDMGdRV1JrYVhScGIyNWhiQ0JoY21kMWJXVnVkSE5jYmlBZ0lDb2dRSEpsZEhWeWJpQjdVSEp2YldselpUeGhibmsrZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnY1hWbGNua2djbVZ6ZFd4MGMxeHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ2NtRjNLRnh1SUNBZ0lHTjBlRG9nUTNSNElId2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJSEpoZDBsdWNIVjBPaUJOWVc1bmIxRjFaWEo1TEZ4dUlDQWdJR1J2WTNOUGJteDVPaUJpYjI5c1pXRnVMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThZVzU1UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1d5NHVMbUZ5WjNNc0lHTjBlRjBzSUZ3aWNtRjNYQ0lzSUhSeWRXVXBLUzVtYjNJb1hHNGdJQ0FnSUNCMGFHbHpMbkpoZDF4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlFWmhZbkpwWTBOeWRXUkRiMjUwY21GamRDNWhaR0Z3ZEdWeUxuSmhkeWh5WVhkSmJuQjFkQ3dnWkc5amMwOXViSGtzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJSE5sY21saGJHbDZaU2h0YjJSbGJEb2dUU2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlFWmhZbkpwWTBOeWRXUkRiMjUwY21GamRDNXpaWEpwWVd4cGVtVnlMbk5sY21saGJHbDZaU2h0YjJSbGJDazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWkdWelpYSnBZV3hwZW1VOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloemRISTZJSE4wY21sdVp5azZJRTBnZTF4dUlDQWdJSEpsZEhWeWJpQW9YRzRnSUNBZ0lDQkdZV0p5YVdORGNuVmtRMjl1ZEhKaFkzUXVjMlZ5YVdGc2FYcGxjaUJoY3lCMWJtdHViM2R1SUdGeklGTmxjbWxoYkdsNlpYSThUVDVjYmlBZ0lDQXBMbVJsYzJWeWFXRnNhWHBsS0hOMGNpazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWVhONWJtTWdhVzVwZENoamRIZzZJRU4wZUNCOElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5JSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkzUjRYU3dnVUdWeWMybHpkR1Z1WTJWTFpYbHpMa2xPU1ZSSlFVeEpXa0ZVU1U5T0xDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11YVc1cGRDazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lGSjFibTVwYm1jZ1kyOXVkSEpoWTNRZ0pIdDBhR2x6TG1kbGRFNWhiV1VvS1gwZ2FXNXBkR2xoYkdsNllYUnBiMjR1TGk1Z0tUdGNiaUFnSUNCMGFHbHpMbWx1YVhScFlXeHBlbVZrSUQwZ2RISjFaVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdRMjl1ZEhKaFkzUWdhVzVwZEdsaGJHbDZZWFJwYjI0Z1kyOXRjR3hsZEdWa0xtQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdhR1ZoYkhSb1kyaGxZMnNvWEc0Z0lDQWdZM1I0T2lCRGRIZ2dmQ0JHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhSY2JpQWdLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtY2dmQ0JvWldGc2RHaGphR1ZqYXo0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnYkc5bklIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvVzJOMGVGMHNJRndpYUdWaGJIUm9ZMmhsWTJ0Y0lpd2dkSEoxWlNrcExtWnZjaWhjYmlBZ0lDQWdJSFJvYVhNdWFHVmhiSFJvWTJobFkydGNiaUFnSUNBcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCU2RXNXVhVzVuSUVobFlXeDBhR05vWldOck9pQWtlM1JvYVhNdWFXNXBkR2xoYkdsNlpXUjlMaTR1WUNrN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR2hsWVd4MGFHTm9aV05yT2lCMGFHbHpMbWx1YVhScFlXeHBlbVZrTEZ4dUlDQWdJQ0FnZG1WeWMybHZiam9nVmtWU1UwbFBUaXhjYmlBZ0lDQWdJSEJoWTJ0aFoyVTZJRkJCUTB0QlIwVmZUa0ZOUlN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEY21WaGRHVnpJRzExYkhScGNHeGxJRzF2WkdWc2N5QnBiaUIwYUdVZ2MzUmhkR1VnWkdGMFlXSmhjMlZjYmlBZ0lDb2dRSE4xYlcxaGNua2dSR1ZzWldkaGRHVnpJSFJ2SUhSb1pTQnlaWEJ2YzJsMGIzSjVKM01nWTNKbFlYUmxRV3hzSUcxbGRHaHZaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTjBlSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwMWJYWDBnYlc5a1pXeHpJQzBnVkdobElHMXZaR1ZzY3lCMGJ5QmpjbVZoZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1aGJubGJYWDBnWVhKbmN5QXRJRUZrWkdsMGFXOXVZV3dnWVhKbmRXMWxiblJ6WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThUVnRkUG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUdOeVpXRjBaV1FnYlc5a1pXeHpYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QmpjbVZoZEdWQmJHd29YRzRnSUNBZ1kyOXVkR1Y0ZERvZ1EzUjRJSHdnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUcxdlpHVnNjem9nYzNSeWFXNW5JSHdnVFZ0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOGMzUnlhVzVuSUh3Z1RWdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01zSUdOMGVDQjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWEc0Z0lDQWdJQ0FnSUZzdUxpNWhjbWR6TENCamIyNTBaWGgwWFN4Y2JpQWdJQ0FnSUNBZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMa05TUlVGVVJWOUJURXdzWEc0Z0lDQWdJQ0FnSUhSeWRXVmNiaUFnSUNBZ0lDbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlVGc2JDazdYRzRnSUNBZ2RHaHBjeTVsYm5OMWNtVk5hWEp5YjNKWGNtbDBaVkJsY20xcGMzTnBiMjV6S0dOMGVDazdYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQnRiMlJsYkhNZ1BUMDlJRndpYzNSeWFXNW5YQ0lwWEc0Z0lDQWdJQ0J0YjJSbGJITWdQU0FvU2xOUFRpNXdZWEp6WlNodGIyUmxiSE1wSUdGeklGdGRLVnh1SUNBZ0lDQWdJQ0F1YldGd0tDaHRLU0E5UGlCMGFHbHpMbVJsYzJWeWFXRnNhWHBsS0cwcEtWeHVJQ0FnSUNBZ0lDQXViV0Z3S0NodEtTQTlQaUJ1WlhjZ2RHaHBjeTVqYkdGNmVpaHRLU2tnWVhNZ1lXNTVPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RISmhibk5wWlc1MElEMGdkR2hwY3k1blpYUlVjbUZ1YzJsbGJuUkVZWFJoS0dOMGVDazdYRzVjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdUV1Z5WjJsdVp5QjBjbUZ1YzJsbGJuUWdaR0YwWVM0dUxtQXBPMXh1SUNBZ0lHMXZaR1ZzY3lBOUlDaHRiMlJsYkhNZ1lYTWdUVnRkS1M1dFlYQW9LRzBzSUdrcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElIUWdQU0JCY25KaGVTNXBjMEZ5Y21GNUtIUnlZVzV6YVdWdWRDa2dQeUIwY21GdWMybGxiblJiYVYwZ09pQjBjbUZ1YzJsbGJuUTdYRzRnSUNBZ0lDQnlaWFIxY200Z1RXOWtaV3d1YldWeVoyVW9iU3dnZENCOGZDQjdmU3dnZEdocGN5NWpiR0Y2ZWlrZ1lYTWdUVHRjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR3h2Wnk1cGJtWnZLR0JoWkdScGJtY2dKSHR0YjJSbGJITXViR1Z1WjNSb2ZTQmxiblJ5YVdWeklIUnZJSFJvWlNCMFlXSnNaV0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdZM0psWVhSbFpDQTlJR0YzWVdsMElIUm9hWE11Y21Wd2J5NWpjbVZoZEdWQmJHd29YRzRnSUNBZ0lDQnRiMlJsYkhNZ1lYTWdkVzVyYm05M2JpQmhjeUJOVzEwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmpjbVZoZEdWa0xtMWhjQ2dvWXlrZ1BUNGdibVYzSUhSb2FYTXVZMnhoZW5vb1RXOWtaV3d1YzJWbmNtVm5ZWFJsS0dNcExtMXZaR1ZzS1NrN1hHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JsYm5OMWNtVk5hWEp5YjNKWGNtbDBaVkJsY20xcGMzTnBiMjV6S0dOMGVEb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0NGamRIZ3BJSEpsZEhWeWJqdGNiaUFnSUNCamIyNXpkQ0J0YVhKeWIzSk5aWFJoSUQwZ1RXOWtaV3d1YldseWNtOXlaV1JCZENoMGFHbHpMbU5zWVhwNktUdGNiaUFnSUNCcFppQW9JVzFwY25KdmNrMWxkR0VwSUhKbGRIVnlianRjYmlBZ0lDQmpiMjV6ZENCdGMzQWdQU0JsZUhSeVlXTjBUWE53U1dRb1kzUjRMbWxrWlc1MGFYUjVLVHRjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0J0YzNBZ0ppWmNiaUFnSUNBZ0lDaHRjM0FnUFQwOUlHMXBjbkp2Y2sxbGRHRXViWE53U1dRZ2ZIeGNiaUFnSUNBZ0lDQWdLRzFwY25KdmNrMWxkR0V1WTI5dVpHbDBhVzl1SUNZbUlHMXBjbkp2Y2sxbGRHRXVZMjl1WkdsMGFXOXVLRzF6Y0NrcEtWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFRjFkR2h2Y21sNllYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRTl5WjJGdWFYcGhkR2x2YmlBa2UyMXpjSDBnYVhNZ2JtOTBJR0YxZEdodmNtbDZaV1FnZEc4Z2JXOWthV1o1SUcxcGNuSnZjbVZrSUdSaGRHRmdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JzYjJkRGRIZzhYRzRnSUNBZ1FWSkhVeUJsZUhSbGJtUnpJR0Z1ZVZ0ZElEMGdZVzU1VzEwc1hHNGdJQ0FnVFVWVVNFOUVJR1Y0ZEdWdVpITWdUV1YwYUc5a1QzSlBjR1Z5WVhScGIyNGdQU0JOWlhSb2IyUlBjazl3WlhKaGRHbHZiaXhjYmlBZ1BpaGNiaUFnSUNCaGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExDQkJVa2RUUGl4Y2JpQWdJQ0J2Y0dWeVlYUnBiMjQ2SUUxRlZFaFBSRnh1SUNBcE9pQkdZV0p5YVdORGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFFWSkhVeXdnVFVWVVNFOUVJR1Y0ZEdWdVpITWdjM1J5YVc1bklEOGdkSEoxWlNBNklHWmhiSE5sUGp0Y2JpQWdjSEp2ZEdWamRHVmtJR3h2WjBOMGVEeGNiaUFnSUNCQlVrZFRJR1Y0ZEdWdVpITWdZVzU1VzEwZ1BTQmhibmxiWFN4Y2JpQWdJQ0JOUlZSSVQwUWdaWGgwWlc1a2N5Qk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpQTlJRTFsZEdodlpFOXlUM0JsY21GMGFXOXVMRnh1SUNBK0tGeHVJQ0FnSUdGeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc0lFRlNSMU0rTEZ4dUlDQWdJRzl3WlhKaGRHbHZiam9nVFVWVVNFOUVMRnh1SUNBZ0lHRnNiRzkzUTNKbFlYUmxPaUJtWVd4elpWeHVJQ0FwT2lCR1lXSnlhV05EYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004UVZKSFV5d2dUVVZVU0U5RUlHVjRkR1Z1WkhNZ2MzUnlhVzVuSUQ4Z2RISjFaU0E2SUdaaGJITmxQanRjYmlBZ2NISnZkR1ZqZEdWa0lHeHZaME4wZUR4Y2JpQWdJQ0JCVWtkVElHVjRkR1Z1WkhNZ1lXNTVXMTBnUFNCaGJubGJYU3hjYmlBZ0lDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCTlpYUm9iMlJQY2s5d1pYSmhkR2x2YmlBOUlFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUxGeHVJQ0ErS0Z4dUlDQWdJR0Z5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzSUVGU1IxTStMRnh1SUNBZ0lHOXdaWEpoZEdsdmJqb2dUVVZVU0U5RUxGeHVJQ0FnSUdGc2JHOTNRM0psWVhSbE9pQjBjblZsWEc0Z0lDazZJRkJ5YjIxcGMyVThYRzRnSUNBZ1JtRmljbWxqUTI5dWRHVjRkSFZoYkdsNlpXUkJjbWR6UEVGU1IxTXNJRTFGVkVoUFJDQmxlSFJsYm1SeklITjBjbWx1WnlBL0lIUnlkV1VnT2lCbVlXeHpaVDVjYmlBZ1BqdGNiaUFnY0hKdmRHVmpkR1ZrSUd4dlowTjBlRHhjYmlBZ0lDQkJVa2RUSUdWNGRHVnVaSE1nWVc1NVcxMGdQU0JoYm5sYlhTeGNiaUFnSUNCTlJWUklUMFFnWlhoMFpXNWtjeUJOWlhSb2IyUlBjazl3WlhKaGRHbHZiaUE5SUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1TEZ4dUlDQStLRnh1SUNBZ0lHRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNJRUZTUjFNK0xGeHVJQ0FnSUc5d1pYSmhkR2x2YmpvZ1RVVlVTRTlFTEZ4dUlDQWdJR0ZzYkc5M1EzSmxZWFJsT2lCaWIyOXNaV0Z1SUQwZ1ptRnNjMlZjYmlBZ0tUcGNiaUFnSUNCOElGQnliMjFwYzJVOFhHNGdJQ0FnSUNBZ0lFWmhZbkpwWTBOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3p4QlVrZFRMQ0JOUlZSSVQwUWdaWGgwWlc1a2N5QnpkSEpwYm1jZ1B5QjBjblZsSURvZ1ptRnNjMlUrWEc0Z0lDQWdJQ0ErWEc0Z0lDQWdmQ0JHWVdKeWFXTkRiMjUwWlhoMGRXRnNhWHBsWkVGeVozTThRVkpIVXl3Z1RVVlVTRTlFSUdWNGRHVnVaSE1nYzNSeWFXNW5JRDhnZEhKMVpTQTZJR1poYkhObFBpQjdYRzRnSUNBZ1kyOXVjM1FnWTNSNElEMGdZWEpuY3k1d2IzQW9LVHRjYmlBZ0lDQnBaaUFvSVdOMGVDQjhmQ0FoWTNSNExuTjBkV0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCTmFYTnphVzVuUTI5dWRHVjRkRVZ5Y205eUtHQk9ieUIyWVd4cFpDQmpiMjUwWlhoMElIQnliM1pwWkdWa0xpNHVZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUdOdmJuUmxlSFIxWVd4cGVtVmtJRDBnUm1GaWNtbGpRM0oxWkVOdmJuUnlZV04wTG1Ga1lYQjBaWEpiWENKc2IyZERkSGhjSWwwb1hHNGdJQ0FnSUNCYmRHaHBjeTVqYkdGNmVpQmhjeUJoYm5rc0lDNHVMbUZ5WjNOZElHRnpJR0Z1ZVN4Y2JpQWdJQ0FnSUc5d1pYSmhkR2x2Yml4Y2JpQWdJQ0FnSUdGc2JHOTNRM0psWVhSbElHRnpJR0Z1ZVN4Y2JpQWdJQ0FnSUdOMGVGeHVJQ0FnSUNrZ1lYTmNiaUFnSUNBZ0lId2dSbUZpY21salEyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBFRlNSMU1zSUUxRlZFaFBSQ0JsZUhSbGJtUnpJSE4wY21sdVp5QS9JSFJ5ZFdVZ09pQm1ZV3h6WlQ1Y2JpQWdJQ0FnSUh3Z1VISnZiV2x6WlR4Y2JpQWdJQ0FnSUNBZ0lDQkdZV0p5YVdORGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFFWSkhVeXdnVFVWVVNFOUVJR1Y0ZEdWdVpITWdjM1J5YVc1bklEOGdkSEoxWlNBNklHWmhiSE5sUGx4dUlDQWdJQ0FnSUNBK08xeHVJQ0FnSUdaMWJtTjBhVzl1SUhOeGRXRnphRUZ5WjNNb1kzUjRPaUJHWVdKeWFXTkRiMjUwWlhoMGRXRnNhWHBsWkVGeVozTXBJSHRjYmlBZ0lDQWdJR04wZUM1amRIaEJjbWR6TG5Ob2FXWjBLQ2s3SUM4dklISmxiVzkyWlhNZ1lXUmtaV1FnYlc5a1pXd2dkRzhnWVhKbmMxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdOMGVDQmhjeUJoYm5rN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tDRW9ZMjl1ZEdWNGRIVmhiR2w2WldRZ2FXNXpkR0Z1WTJWdlppQlFjbTl0YVhObEtTa2djbVYwZFhKdUlITnhkV0Z6YUVGeVozTW9ZMjl1ZEdWNGRIVmhiR2w2WldRcE8xeHVJQ0FnSUhKbGRIVnliaUJqYjI1MFpYaDBkV0ZzYVhwbFpDNTBhR1Z1S0hOeGRXRnphRUZ5WjNNcE8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
417
+ //# sourceMappingURL=crud-contract.js.map
418
+ //# sourceMappingURL=crud-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-contract.js","sourceRoot":"","sources":["crud-contract.js"],"names":[],"mappings":"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"}
@@ -16,5 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./crud-contract.cjs"), exports);
18
18
  __exportStar(require("./serialized-crud-contract.cjs"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29udHJhY3RzL2NydWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQWdDO0FBQ2hDLDhDQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NydWQtY29udHJhY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcmlhbGl6ZWQtY3J1ZC1jb250cmFjdFwiO1xuIl19
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLGdFQUE4QztBQUM5QyxzWUFBc1kiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jcnVkLWNvbnRyYWN0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJpYWxpemVkLWNydWQtY29udHJhY3QuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlkyOXVkSEpoWTNSekwyTnlkV1F2YVc1a1pYZ3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc2JVTkJRV2RETzBGQlEyaERMRGhEUVVFeVF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMk55ZFdRdFkyOXVkSEpoWTNSY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMM05sY21saGJHbDZaV1F0WTNKMVpDMWpiMjUwY21GamRGd2lPMXh1SWwxOSJdfQ==
19
+ //# sourceMappingURL=index.js.map
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,gEAA8C;AAC9C,iCAAiC"}