@decaf-ts/for-fabric 0.12.0 → 0.12.1

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 (503) hide show
  1. package/dist/for-fabric.cjs +3797 -2
  2. package/dist/for-fabric.js +3901 -2
  3. package/lib/cjs/bin/cli.cjs +2 -2
  4. package/lib/cjs/cli-module.cjs +28 -3
  5. package/lib/cjs/cli-utils.cjs +2 -2
  6. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  7. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  8. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  9. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  10. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  11. package/lib/cjs/client/collections/generation.cjs +2 -2
  12. package/lib/cjs/client/collections/index.cjs +2 -2
  13. package/lib/cjs/client/constants.cjs +2 -2
  14. package/lib/cjs/client/crypto.cjs +2 -2
  15. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  16. package/lib/cjs/client/erc20/index.cjs +2 -2
  17. package/lib/cjs/client/fabric-fs.cjs +2 -2
  18. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  19. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  20. package/lib/cjs/client/ids/index.cjs +2 -2
  21. package/lib/cjs/client/index.cjs +2 -2
  22. package/lib/cjs/client/indexes/generation.cjs +2 -2
  23. package/lib/cjs/client/indexes/index.cjs +2 -2
  24. package/lib/cjs/client/logging.cjs +2 -2
  25. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  26. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  27. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  28. package/lib/cjs/client/services/constants.cjs +2 -2
  29. package/lib/cjs/client/services/index.cjs +2 -2
  30. package/lib/cjs/client/types.cjs +2 -2
  31. package/lib/cjs/client/utils.cjs +2 -2
  32. package/lib/cjs/contract/Address.cjs +2 -2
  33. package/lib/cjs/contract/AddressContract.cjs +2 -2
  34. package/lib/cjs/contract/AuditContract.cjs +2 -2
  35. package/lib/cjs/contract/BatchContract.cjs +2 -2
  36. package/lib/cjs/contract/MarketContract.cjs +2 -2
  37. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  38. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  39. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  40. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  41. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  42. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  43. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  44. package/lib/cjs/contract/Product.cjs +2 -2
  45. package/lib/cjs/contract/ProductContract.cjs +2 -2
  46. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  47. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  48. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  49. package/lib/cjs/contract/User.cjs +2 -2
  50. package/lib/cjs/contract/UserContract.cjs +2 -2
  51. package/lib/cjs/contract/index.cjs +2 -2
  52. package/lib/cjs/contract/logging-context.cjs +2 -2
  53. package/lib/cjs/contract/models/Audit.cjs +2 -2
  54. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  55. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  56. package/lib/cjs/contract/models/Batch.cjs +2 -2
  57. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  58. package/lib/cjs/contract/models/History.cjs +2 -2
  59. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  60. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  61. package/lib/cjs/contract/models/Market.cjs +2 -2
  62. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  63. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  64. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  65. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  66. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  67. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  68. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  69. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  70. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  71. package/lib/cjs/contract/models/Product.cjs +2 -2
  72. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  73. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  74. package/lib/cjs/contract/models/constants.cjs +2 -2
  75. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  76. package/lib/cjs/contract/models/decorators.cjs +2 -2
  77. package/lib/cjs/contract/models/gtin.cjs +2 -2
  78. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  79. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  80. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  81. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  82. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  83. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  84. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  85. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  86. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  87. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  88. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  89. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  90. package/lib/cjs/contracts/auth/index.cjs +2 -2
  91. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  92. package/lib/cjs/contracts/crud/index.cjs +2 -2
  93. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  94. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  95. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  96. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  97. package/lib/cjs/contracts/index.cjs +2 -2
  98. package/lib/cjs/contracts/logging.cjs +2 -2
  99. package/lib/cjs/contracts/overrides.cjs +2 -2
  100. package/lib/cjs/contracts/types.cjs +2 -2
  101. package/lib/cjs/contracts/uuid.cjs +2 -2
  102. package/lib/cjs/index.cjs +2 -2
  103. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  104. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  105. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  106. package/lib/cjs/shared/constants.cjs +2 -2
  107. package/lib/cjs/shared/decorators.cjs +2 -2
  108. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  109. package/lib/cjs/shared/erc20/index.cjs +2 -2
  110. package/lib/cjs/shared/errors.cjs +2 -2
  111. package/lib/cjs/shared/events.cjs +2 -2
  112. package/lib/cjs/shared/fabric-types.cjs +2 -2
  113. package/lib/cjs/shared/index.cjs +2 -2
  114. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  115. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  116. package/lib/cjs/shared/math.cjs +2 -2
  117. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  118. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  119. package/lib/cjs/shared/model/Identity.cjs +2 -2
  120. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  121. package/lib/cjs/shared/model/index.cjs +2 -2
  122. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  123. package/lib/cjs/shared/overrides/index.cjs +2 -2
  124. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  125. package/lib/cjs/shared/types.cjs +2 -2
  126. package/lib/cjs/version.cjs +3 -3
  127. package/lib/esm/bin/cli.js +1 -1
  128. package/lib/esm/cli-module.js +27 -2
  129. package/lib/esm/cli-utils.js +1 -1
  130. package/lib/esm/client/FabricClientAdapter.js +1 -1
  131. package/lib/esm/client/FabricClientDispatch.js +1 -1
  132. package/lib/esm/client/FabricClientPaginator.js +1 -1
  133. package/lib/esm/client/FabricClientRepository.js +1 -1
  134. package/lib/esm/client/FabricClientStatement.js +1 -1
  135. package/lib/esm/client/collections/generation.js +1 -1
  136. package/lib/esm/client/collections/index.js +1 -1
  137. package/lib/esm/client/constants.js +1 -1
  138. package/lib/esm/client/crypto.js +1 -1
  139. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  140. package/lib/esm/client/erc20/index.js +1 -1
  141. package/lib/esm/client/fabric-fs.js +1 -1
  142. package/lib/esm/client/fabric-hsm.js +1 -1
  143. package/lib/esm/client/ids/id-extraction.js +1 -1
  144. package/lib/esm/client/ids/index.js +1 -1
  145. package/lib/esm/client/index.js +1 -1
  146. package/lib/esm/client/indexes/generation.js +1 -1
  147. package/lib/esm/client/indexes/index.js +1 -1
  148. package/lib/esm/client/logging.js +1 -1
  149. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  150. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  151. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  152. package/lib/esm/client/services/constants.js +1 -1
  153. package/lib/esm/client/services/index.js +1 -1
  154. package/lib/esm/client/types.js +1 -1
  155. package/lib/esm/client/utils.js +1 -1
  156. package/lib/esm/contract/Address.js +1 -1
  157. package/lib/esm/contract/AddressContract.js +1 -1
  158. package/lib/esm/contract/AuditContract.js +1 -1
  159. package/lib/esm/contract/BatchContract.js +1 -1
  160. package/lib/esm/contract/MarketContract.js +1 -1
  161. package/lib/esm/contract/OtherAuditContract.js +1 -1
  162. package/lib/esm/contract/OtherBatchContract.js +1 -1
  163. package/lib/esm/contract/OtherMarketContract.js +1 -1
  164. package/lib/esm/contract/OtherProductContract.js +1 -1
  165. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  166. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  167. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  168. package/lib/esm/contract/Product.js +1 -1
  169. package/lib/esm/contract/ProductContract.js +1 -1
  170. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  171. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  172. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  173. package/lib/esm/contract/User.js +1 -1
  174. package/lib/esm/contract/UserContract.js +1 -1
  175. package/lib/esm/contract/index.js +1 -1
  176. package/lib/esm/contract/logging-context.js +1 -1
  177. package/lib/esm/contract/models/Audit.js +1 -1
  178. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  179. package/lib/esm/contract/models/BaseModel.js +1 -1
  180. package/lib/esm/contract/models/Batch.js +1 -1
  181. package/lib/esm/contract/models/GtinOwner.js +1 -1
  182. package/lib/esm/contract/models/History.js +1 -1
  183. package/lib/esm/contract/models/Leaflet.js +1 -1
  184. package/lib/esm/contract/models/LeafletFile.js +1 -1
  185. package/lib/esm/contract/models/Market.js +1 -1
  186. package/lib/esm/contract/models/OtherAudit.js +1 -1
  187. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  188. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  189. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  190. package/lib/esm/contract/models/OtherMarket.js +1 -1
  191. package/lib/esm/contract/models/OtherProduct.js +1 -1
  192. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  193. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  194. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  195. package/lib/esm/contract/models/Product.js +1 -1
  196. package/lib/esm/contract/models/ProductStrength.js +1 -1
  197. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  198. package/lib/esm/contract/models/constants.js +1 -1
  199. package/lib/esm/contract/models/decorators-private.js +1 -1
  200. package/lib/esm/contract/models/decorators.js +1 -1
  201. package/lib/esm/contract/models/gtin.js +1 -1
  202. package/lib/esm/contract/models/history-dec.js +1 -1
  203. package/lib/esm/contracts/ContractAdapter.js +1 -1
  204. package/lib/esm/contracts/ContractContext.js +1 -1
  205. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  206. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  207. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  208. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  209. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  210. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  211. package/lib/esm/contracts/MigrationContract.js +1 -1
  212. package/lib/esm/contracts/PrivateSequence.js +1 -1
  213. package/lib/esm/contracts/auth/decorators.js +1 -1
  214. package/lib/esm/contracts/auth/index.js +1 -1
  215. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  216. package/lib/esm/contracts/crud/index.js +1 -1
  217. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  218. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  219. package/lib/esm/contracts/erc20/index.js +1 -1
  220. package/lib/esm/contracts/erc20/models.js +1 -1
  221. package/lib/esm/contracts/index.js +1 -1
  222. package/lib/esm/contracts/logging.js +1 -1
  223. package/lib/esm/contracts/overrides.js +1 -1
  224. package/lib/esm/contracts/types.js +1 -1
  225. package/lib/esm/contracts/uuid.js +1 -1
  226. package/lib/esm/index.js +1 -1
  227. package/lib/esm/shared/ClientSerializer.js +1 -1
  228. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  229. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  230. package/lib/esm/shared/constants.js +1 -1
  231. package/lib/esm/shared/decorators.js +1 -1
  232. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  233. package/lib/esm/shared/erc20/index.js +1 -1
  234. package/lib/esm/shared/errors.js +1 -1
  235. package/lib/esm/shared/events.js +1 -1
  236. package/lib/esm/shared/fabric-types.js +1 -1
  237. package/lib/esm/shared/index.js +1 -1
  238. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  239. package/lib/esm/shared/interfaces/index.js +1 -1
  240. package/lib/esm/shared/math.js +1 -1
  241. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  242. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  243. package/lib/esm/shared/model/Identity.js +1 -1
  244. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  245. package/lib/esm/shared/model/index.js +1 -1
  246. package/lib/esm/shared/overrides/Model.js +1 -1
  247. package/lib/esm/shared/overrides/index.js +1 -1
  248. package/lib/esm/shared/overrides/overrides.js +1 -1
  249. package/lib/esm/shared/types.js +1 -1
  250. package/lib/esm/version.js +2 -2
  251. package/lib/types/version.d.cts +1 -1
  252. package/lib/types/version.d.mts +1 -1
  253. package/package.json +7 -7
  254. package/dist/for-fabric.cjs.map +0 -1
  255. package/dist/for-fabric.js.map +0 -1
  256. package/lib/cjs/bin/cli.cjs.map +0 -1
  257. package/lib/cjs/cli-module.cjs.map +0 -1
  258. package/lib/cjs/cli-utils.cjs.map +0 -1
  259. package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
  260. package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
  261. package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
  262. package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
  263. package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
  264. package/lib/cjs/client/collections/generation.cjs.map +0 -1
  265. package/lib/cjs/client/collections/index.cjs.map +0 -1
  266. package/lib/cjs/client/constants.cjs.map +0 -1
  267. package/lib/cjs/client/crypto.cjs.map +0 -1
  268. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
  269. package/lib/cjs/client/erc20/index.cjs.map +0 -1
  270. package/lib/cjs/client/fabric-fs.cjs.map +0 -1
  271. package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
  272. package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
  273. package/lib/cjs/client/ids/index.cjs.map +0 -1
  274. package/lib/cjs/client/index.cjs.map +0 -1
  275. package/lib/cjs/client/indexes/generation.cjs.map +0 -1
  276. package/lib/cjs/client/indexes/index.cjs.map +0 -1
  277. package/lib/cjs/client/logging.cjs.map +0 -1
  278. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
  279. package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
  280. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
  281. package/lib/cjs/client/services/constants.cjs.map +0 -1
  282. package/lib/cjs/client/services/index.cjs.map +0 -1
  283. package/lib/cjs/client/types.cjs.map +0 -1
  284. package/lib/cjs/client/utils.cjs.map +0 -1
  285. package/lib/cjs/contract/Address.cjs.map +0 -1
  286. package/lib/cjs/contract/AddressContract.cjs.map +0 -1
  287. package/lib/cjs/contract/AuditContract.cjs.map +0 -1
  288. package/lib/cjs/contract/BatchContract.cjs.map +0 -1
  289. package/lib/cjs/contract/MarketContract.cjs.map +0 -1
  290. package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
  291. package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
  292. package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
  293. package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
  294. package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
  295. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
  296. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
  297. package/lib/cjs/contract/Product.cjs.map +0 -1
  298. package/lib/cjs/contract/ProductContract.cjs.map +0 -1
  299. package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
  300. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
  301. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
  302. package/lib/cjs/contract/User.cjs.map +0 -1
  303. package/lib/cjs/contract/UserContract.cjs.map +0 -1
  304. package/lib/cjs/contract/index.cjs.map +0 -1
  305. package/lib/cjs/contract/logging-context.cjs.map +0 -1
  306. package/lib/cjs/contract/models/Audit.cjs.map +0 -1
  307. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
  308. package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
  309. package/lib/cjs/contract/models/Batch.cjs.map +0 -1
  310. package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
  311. package/lib/cjs/contract/models/History.cjs.map +0 -1
  312. package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
  313. package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
  314. package/lib/cjs/contract/models/Market.cjs.map +0 -1
  315. package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
  316. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
  317. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
  318. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
  319. package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
  320. package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
  321. package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
  322. package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
  323. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
  324. package/lib/cjs/contract/models/Product.cjs.map +0 -1
  325. package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
  326. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
  327. package/lib/cjs/contract/models/constants.cjs.map +0 -1
  328. package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
  329. package/lib/cjs/contract/models/decorators.cjs.map +0 -1
  330. package/lib/cjs/contract/models/gtin.cjs.map +0 -1
  331. package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
  332. package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
  333. package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
  334. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
  335. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
  336. package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
  337. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
  338. package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
  339. package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
  340. package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
  341. package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
  342. package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
  343. package/lib/cjs/contracts/auth/index.cjs.map +0 -1
  344. package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
  345. package/lib/cjs/contracts/crud/index.cjs.map +0 -1
  346. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
  347. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
  348. package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
  349. package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
  350. package/lib/cjs/contracts/index.cjs.map +0 -1
  351. package/lib/cjs/contracts/logging.cjs.map +0 -1
  352. package/lib/cjs/contracts/overrides.cjs.map +0 -1
  353. package/lib/cjs/contracts/types.cjs.map +0 -1
  354. package/lib/cjs/contracts/uuid.cjs.map +0 -1
  355. package/lib/cjs/index.cjs.map +0 -1
  356. package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
  357. package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
  358. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
  359. package/lib/cjs/shared/constants.cjs.map +0 -1
  360. package/lib/cjs/shared/decorators.cjs.map +0 -1
  361. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
  362. package/lib/cjs/shared/erc20/index.cjs.map +0 -1
  363. package/lib/cjs/shared/errors.cjs.map +0 -1
  364. package/lib/cjs/shared/events.cjs.map +0 -1
  365. package/lib/cjs/shared/fabric-types.cjs.map +0 -1
  366. package/lib/cjs/shared/index.cjs.map +0 -1
  367. package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
  368. package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
  369. package/lib/cjs/shared/math.cjs.map +0 -1
  370. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
  371. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
  372. package/lib/cjs/shared/model/Identity.cjs.map +0 -1
  373. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
  374. package/lib/cjs/shared/model/index.cjs.map +0 -1
  375. package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
  376. package/lib/cjs/shared/overrides/index.cjs.map +0 -1
  377. package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
  378. package/lib/cjs/shared/types.cjs.map +0 -1
  379. package/lib/cjs/version.cjs.map +0 -1
  380. package/lib/esm/bin/cli.js.map +0 -1
  381. package/lib/esm/cli-module.js.map +0 -1
  382. package/lib/esm/cli-utils.js.map +0 -1
  383. package/lib/esm/client/FabricClientAdapter.js.map +0 -1
  384. package/lib/esm/client/FabricClientDispatch.js.map +0 -1
  385. package/lib/esm/client/FabricClientPaginator.js.map +0 -1
  386. package/lib/esm/client/FabricClientRepository.js.map +0 -1
  387. package/lib/esm/client/FabricClientStatement.js.map +0 -1
  388. package/lib/esm/client/collections/generation.js.map +0 -1
  389. package/lib/esm/client/collections/index.js.map +0 -1
  390. package/lib/esm/client/constants.js.map +0 -1
  391. package/lib/esm/client/crypto.js.map +0 -1
  392. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  393. package/lib/esm/client/erc20/index.js.map +0 -1
  394. package/lib/esm/client/fabric-fs.js.map +0 -1
  395. package/lib/esm/client/fabric-hsm.js.map +0 -1
  396. package/lib/esm/client/ids/id-extraction.js.map +0 -1
  397. package/lib/esm/client/ids/index.js.map +0 -1
  398. package/lib/esm/client/index.js.map +0 -1
  399. package/lib/esm/client/indexes/generation.js.map +0 -1
  400. package/lib/esm/client/indexes/index.js.map +0 -1
  401. package/lib/esm/client/logging.js.map +0 -1
  402. package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
  403. package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
  404. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
  405. package/lib/esm/client/services/constants.js.map +0 -1
  406. package/lib/esm/client/services/index.js.map +0 -1
  407. package/lib/esm/client/types.js.map +0 -1
  408. package/lib/esm/client/utils.js.map +0 -1
  409. package/lib/esm/contract/Address.js.map +0 -1
  410. package/lib/esm/contract/AddressContract.js.map +0 -1
  411. package/lib/esm/contract/AuditContract.js.map +0 -1
  412. package/lib/esm/contract/BatchContract.js.map +0 -1
  413. package/lib/esm/contract/MarketContract.js.map +0 -1
  414. package/lib/esm/contract/OtherAuditContract.js.map +0 -1
  415. package/lib/esm/contract/OtherBatchContract.js.map +0 -1
  416. package/lib/esm/contract/OtherMarketContract.js.map +0 -1
  417. package/lib/esm/contract/OtherProductContract.js.map +0 -1
  418. package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
  419. package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
  420. package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
  421. package/lib/esm/contract/Product.js.map +0 -1
  422. package/lib/esm/contract/ProductContract.js.map +0 -1
  423. package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
  424. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
  425. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
  426. package/lib/esm/contract/User.js.map +0 -1
  427. package/lib/esm/contract/UserContract.js.map +0 -1
  428. package/lib/esm/contract/index.js.map +0 -1
  429. package/lib/esm/contract/logging-context.js.map +0 -1
  430. package/lib/esm/contract/models/Audit.js.map +0 -1
  431. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
  432. package/lib/esm/contract/models/BaseModel.js.map +0 -1
  433. package/lib/esm/contract/models/Batch.js.map +0 -1
  434. package/lib/esm/contract/models/GtinOwner.js.map +0 -1
  435. package/lib/esm/contract/models/History.js.map +0 -1
  436. package/lib/esm/contract/models/Leaflet.js.map +0 -1
  437. package/lib/esm/contract/models/LeafletFile.js.map +0 -1
  438. package/lib/esm/contract/models/Market.js.map +0 -1
  439. package/lib/esm/contract/models/OtherAudit.js.map +0 -1
  440. package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
  441. package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
  442. package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
  443. package/lib/esm/contract/models/OtherMarket.js.map +0 -1
  444. package/lib/esm/contract/models/OtherProduct.js.map +0 -1
  445. package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
  446. package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
  447. package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
  448. package/lib/esm/contract/models/Product.js.map +0 -1
  449. package/lib/esm/contract/models/ProductStrength.js.map +0 -1
  450. package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
  451. package/lib/esm/contract/models/constants.js.map +0 -1
  452. package/lib/esm/contract/models/decorators-private.js.map +0 -1
  453. package/lib/esm/contract/models/decorators.js.map +0 -1
  454. package/lib/esm/contract/models/gtin.js.map +0 -1
  455. package/lib/esm/contract/models/history-dec.js.map +0 -1
  456. package/lib/esm/contracts/ContractAdapter.js.map +0 -1
  457. package/lib/esm/contracts/ContractContext.js.map +0 -1
  458. package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
  459. package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
  460. package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
  461. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  462. package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
  463. package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
  464. package/lib/esm/contracts/MigrationContract.js.map +0 -1
  465. package/lib/esm/contracts/PrivateSequence.js.map +0 -1
  466. package/lib/esm/contracts/auth/decorators.js.map +0 -1
  467. package/lib/esm/contracts/auth/index.js.map +0 -1
  468. package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
  469. package/lib/esm/contracts/crud/index.js.map +0 -1
  470. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
  471. package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
  472. package/lib/esm/contracts/erc20/index.js.map +0 -1
  473. package/lib/esm/contracts/erc20/models.js.map +0 -1
  474. package/lib/esm/contracts/index.js.map +0 -1
  475. package/lib/esm/contracts/logging.js.map +0 -1
  476. package/lib/esm/contracts/overrides.js.map +0 -1
  477. package/lib/esm/contracts/types.js.map +0 -1
  478. package/lib/esm/contracts/uuid.js.map +0 -1
  479. package/lib/esm/index.js.map +0 -1
  480. package/lib/esm/shared/ClientSerializer.js.map +0 -1
  481. package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
  482. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
  483. package/lib/esm/shared/constants.js.map +0 -1
  484. package/lib/esm/shared/decorators.js.map +0 -1
  485. package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
  486. package/lib/esm/shared/erc20/index.js.map +0 -1
  487. package/lib/esm/shared/errors.js.map +0 -1
  488. package/lib/esm/shared/events.js.map +0 -1
  489. package/lib/esm/shared/fabric-types.js.map +0 -1
  490. package/lib/esm/shared/index.js.map +0 -1
  491. package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
  492. package/lib/esm/shared/interfaces/index.js.map +0 -1
  493. package/lib/esm/shared/math.js.map +0 -1
  494. package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
  495. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  496. package/lib/esm/shared/model/Identity.js.map +0 -1
  497. package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
  498. package/lib/esm/shared/model/index.js.map +0 -1
  499. package/lib/esm/shared/overrides/Model.js.map +0 -1
  500. package/lib/esm/shared/overrides/index.js.map +0 -1
  501. package/lib/esm/shared/overrides/overrides.js.map +0 -1
  502. package/lib/esm/shared/types.js.map +0 -1
  503. package/lib/esm/version.js.map +0 -1
@@ -592,5 +592,5 @@ function sharedData(collection) {
592
592
  })
593
593
  .apply();
594
594
  }
595
- //# sourceMappingURL=decorators.js.map
596
- //# sourceMappingURL=decorators.js.map
595
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBR2xCLGdCQUFnQixHQUdqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDYixRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUNOLFlBQVksRUFDWixFQUFFLEdBQ0gsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQW9CO0FBSTlDLE9BQU8sRUFDTCxLQUFLLEVBRUwsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCw4QkFBNkI7QUFHN0I7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLFFBQTZDO0lBRTdDLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDaEMsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDbEQsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sVUFBVSxLQUFLO0lBQ25CLE9BQU8sVUFDTCxNQUFXLEVBQ1gsV0FBbUIsRUFDbkIsVUFBOEI7UUFFOUIsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUV4QyxV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bkIsQ0FBQztTQUNELEtBQUssRUFBRSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgUmVwbyxcbiAgQ29udGV4dCxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbiAgUmVwb3NpdG9yeSxcbiAgQ29udGV4dE9mLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7XG4gIGdlbmVyYXRlZCxcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgb25DcmVhdGUsXG4gIG9uRGVsZXRlLFxuICBvblJlYWQsXG4gIG9uVXBkYXRlLFxuICByZWFkb25seSxcbiAgdHJhbnNpZW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIERCS2V5cyxcbiAgREJPcGVyYXRpb25zLFxuICBvbixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNNb2RlbEtleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgQ29udGV4dCBhcyBITENvbnRleHQgfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuaW1wb3J0IHsgQ2xpZW50SWRlbnRpdHkgfSBmcm9tIFwiZmFicmljLXNoaW0tYXBpXCI7XG5pbXBvcnQgeyBGYWJyaWNFUkMyMENvbnRyYWN0IH0gZnJvbSBcIi4uL2NvbnRyYWN0cy9lcmMyMC9lcmMyMGNvbnRyYWN0XCI7XG5pbXBvcnQge1xuICBhcHBseSxcbiAgQ29uc3RydWN0b3IsXG4gIERlY29yYXRpb24sXG4gIG1ldGFkYXRhLFxuICBNZXRhZGF0YSxcbiAgcHJvcCxcbiAgcHJvcE1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0ZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RGbGFncyB9IGZyb20gXCIuLi9jb250cmFjdHMvdHlwZXNcIjtcbmltcG9ydCBcIi4uL3NoYXJlZC9vdmVycmlkZXNcIjtcbmltcG9ydCB7IHR5cGUgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRyYWN0cy9Db250cmFjdENvbnRleHRcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXh0cmFjdHMgdGhlIE1TUCBJRCBmcm9tIGVpdGhlciBhIHN0cmluZyBvciBDbGllbnRJZGVudGl0eSBvYmplY3RcbiAqIEBwYXJhbSBpZGVudGl0eSAtIFRoZSBpZGVudGl0eSB2YWx1ZSB3aGljaCBjYW4gYmUgYSBzdHJpbmcgTVNQIElEIG9yIENsaWVudElkZW50aXR5IG9iamVjdFxuICogQHJldHVybnMgVGhlIE1TUCBJRCBhcyBhIHN0cmluZywgb3IgdW5kZWZpbmVkIGlmIG5vdCBhdmFpbGFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RNc3BJZChcbiAgaWRlbnRpdHk6IHN0cmluZyB8IENsaWVudElkZW50aXR5IHwgdW5kZWZpbmVkXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWlkZW50aXR5KSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAodHlwZW9mIGlkZW50aXR5ID09PSBcInN0cmluZ1wiKSByZXR1cm4gaWRlbnRpdHk7XG4gIHJldHVybiBpZGVudGl0eS5nZXRNU1BJRCgpO1xufVxuXG4vKipcbiAqIERlY29yYXRvciBmb3IgbWFya2luZyBtZXRob2RzIHRoYXQgcmVxdWlyZSBvd25lcnNoaXAgYXV0aG9yaXphdGlvbi5cbiAqIENoZWNrcyB0aGUgb3duZXIgb2YgdGhlIHRva2VuIGJlZm9yZSBhbGxvd2luZyB0aGUgbWV0aG9kIHRvIGJlIGV4ZWN1dGVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBUb2tlbkNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICogICBAT3duZXIoKVxuICogICBhc3luYyBNaW50KGN0eDogQ29udGV4dCwgYW1vdW50OiBudW1iZXIpIHtcbiAqICAgICAvLyBNaW50IHRva2VuIGxvZ2ljXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEByZXR1cm5zIHtNZXRob2REZWNvcmF0b3J9IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IGNoZWNrcyBvd25lcnNoaXAgYXV0aG9yaXphdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE93bmVyKCkge1xuICByZXR1cm4gZnVuY3Rpb24gKFxuICAgIHRhcmdldDogYW55LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yXG4gICkge1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBhc3luYyBmdW5jdGlvbiAoXG4gICAgICB0aGlzOiBGYWJyaWNFUkMyMENvbnRyYWN0LFxuICAgICAgLi4uYXJnczogYW55W11cbiAgICApIHtcbiAgICAgIGNvbnN0IGN0eDogSExDb250ZXh0ID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGFjb3VudElkID0gY3R4LmNsaWVudElkZW50aXR5LmdldElEKCk7XG5cbiAgICAgIGNvbnN0IHNlbGVjdCA9IGF3YWl0ICh0aGlzIGFzIEZhYnJpY0VSQzIwQ29udHJhY3QpW1xuICAgICAgICBcInRva2VuUmVwb3NpdG9yeVwiXG4gICAgICBdLnNlbGVjdCgpO1xuXG4gICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpO1xuXG4gICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFwiTm8gdG9rZW5zIGF2YWlhbGJsZVwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2Vucy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUbyBtYW55IHRva2VuIGF2YWlsYWJsZSA6ICR7dG9rZW5zLmxlbmd0aH1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2Vuc1swXS5vd25lciAhPSBhY291bnRJZCkge1xuICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICAgIGBVc2VyIG5vdCBhdXRob3JpemVkIHRvIHJ1biAke3Byb3BlcnR5S2V5fSBvbiB0aGUgdG9rZW5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvd25lZEJ5T25DcmVhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPixcbiAgUiBleHRlbmRzIFJlcG88TT4sXG4gIFYsXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0T2Y8Uj4sXG4gIGRhdGE6IFYsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHN0dWIgfSA9IGNvbnRleHQgYXMgYW55O1xuXG4gIGNvbnN0IGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlID1cbiAgICBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGVcIikgfHwgZmFsc2U7XG5cbiAgY29uc3QgY3JlYXRvciA9IGF3YWl0IHN0dWIuZ2V0Q3JlYXRvcigpO1xuICBsZXQgb3duZXIgPSBjcmVhdG9yLm1zcGlkO1xuICBjb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgIGBFeHBlY3RlZCBtc3BpZCB0byBiZSAke21vZGVsW2tleV19IHwgJHtvd25lcn0uIFxcbiBVc2luZyBhbGxvd0dlbmVyYXRpb25PdmVycmlkZTogJHthbGxvd0dlbmVyYXRpb25PdmVycmlkZX1gXG4gICk7XG5cbiAgaWYgKGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlKSBvd25lciA9IG1vZGVsW2tleV0gPyBtb2RlbFtrZXldIDogb3duZXI7XG5cbiAgY29uc3Qgc2V0T3duZWRCeUtleVZhbHVlID0gZnVuY3Rpb24gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFyZ2V0OiBNLFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludFxuICApIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSwge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuICBzZXRPd25lZEJ5S2V5VmFsdWUobW9kZWwsIGtleSBhcyBzdHJpbmcsIG93bmVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG93bmVkQnkoKSB7XG4gIGZ1bmN0aW9uIG93bmVkQnkoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmo6IGFueSwgYXR0cmlidXRlPzogYW55KSB7XG4gICAgICByZXR1cm4gYXBwbHkoXG4gICAgICAgIHJlcXVpcmVkKCksXG4gICAgICAgIGdlbmVyYXRlZCgpLFxuICAgICAgICByZWFkb25seSgpLFxuICAgICAgICBvbkNyZWF0ZShvd25lZEJ5T25DcmVhdGUpLFxuICAgICAgICBwcm9wTWV0YWRhdGEoXG4gICAgICAgICAgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5PV05FRF9CWSksXG4gICAgICAgICAgYXR0cmlidXRlXG4gICAgICAgIClcbiAgICAgICkob2JqLCBhdHRyaWJ1dGUpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLk9XTkVEX0JZKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBvd25lZEJ5LFxuICAgICAgYXJnczogW10sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWRPbkNyZWF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+LFxuICBSIGV4dGVuZHMgUmVwbzxNPixcbiAgVixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHRPZjxSPixcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgc3R1YiB9ID0gY29udGV4dCBhcyBhbnk7XG4gIG1vZGVsW2tleV0gPSBzdHViLmdldFR4SUQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWQoKSB7XG4gIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWQoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmo6IGFueSwgYXR0cmlidXRlPzogYW55KSB7XG4gICAgICByZXR1cm4gYXBwbHkoXG4gICAgICAgIHJlcXVpcmVkKCksXG4gICAgICAgIHJlYWRvbmx5KCksXG4gICAgICAgIG9uQ3JlYXRlKHRyYW5zYWN0aW9uSWRPbkNyZWF0ZSksXG4gICAgICAgIG9uVXBkYXRlKHRyYW5zYWN0aW9uSWRPbkNyZWF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YShcbiAgICAgICAgICBNZXRhZGF0YS5rZXkoXG4gICAgICAgICAgICBGYWJyaWNNb2RlbEtleXMuRkFCUklDLFxuICAgICAgICAgICAgYXR0cmlidXRlLFxuICAgICAgICAgICAgRmFicmljTW9kZWxLZXlzLlRSQU5TQUNUSU9OX0lEXG4gICAgICAgICAgKSxcbiAgICAgICAgICBhdHRyaWJ1dGVcbiAgICAgICAgKVxuICAgICAgKShvYmosIGF0dHJpYnV0ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuVFJBTlNBQ1RJT05fSUQpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IHRyYW5zYWN0aW9uSWQsXG4gICAgICBhcmdzOiBbXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgdHlwZSBNaXJyb3JDb25kaXRpb24gPSAobXNwOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIE1pcnJvck1ldGFkYXRhID0ge1xuICBjb25kaXRpb24/OiBNaXJyb3JDb25kaXRpb247XG4gIHJlc29sdmVyOiBDb2xsZWN0aW9uUmVzb2x2ZXIgfCBzdHJpbmc7XG4gIG1zcElkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXZhbE1pcnJvck1ldGFkYXRhPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNLFxuICByZXNvbHZlcjogdW5kZWZpbmVkIHwgc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyLFxuICBjdHg6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz5cbikge1xuICBsZXQgY29sbGVjdGlvbjogQ29sbGVjdGlvblJlc29sdmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkID0gcmVzb2x2ZXI7XG4gIGlmICh0eXBlb2YgY29sbGVjdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBvd25lciA9XG4gICAgICAgIE1vZGVsLm93bmVyT2YobW9kZWwpIHx8IGN0eC5nZXQoXCJzdHViXCIpLmdldENyZWF0b3IoKS50b1N0cmluZygpO1xuICAgICAgaWYgKHJlc29sdmVyICYmIHR5cGVvZiByZXNvbHZlciA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBjb2xsZWN0aW9uID0gYXdhaXQgcmVzb2x2ZXIobW9kZWwsIG93bmVyLCBjdHgpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVzb2x2ZSBjb2xsZWN0aW9uIG1pcnJvciBuYW1lOiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb2xsZWN0aW9uIHx8IHR5cGVvZiBjb2xsZWN0aW9uICE9PSBcInN0cmluZ1wiKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYE5vIGNvbGxlY3Rpb24gZm91bmQgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICApO1xuICByZXR1cm4gY29sbGVjdGlvbjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1pcnJvckhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4sXG4gIGRhdGE6IE1pcnJvck1ldGFkYXRhLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShtb2RlbCwgZGF0YS5yZXNvbHZlciwgY29udGV4dCk7XG4gIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQgYXMgRmFicmljQ29udHJhY3RDb250ZXh0O1xuICBjb25zdCBzb3VyY2VNb2RlbCA9IG1vZGVsO1xuICAvLyBQdXQgbWlycm9yIGZsYWdzIGRpcmVjdGx5IG9uIGNvbnRleHQgc28gYWRhcHRlci5wcmVwYXJlKCkgYW5kIGFkYXB0ZXIuY3JlYXRlKCkgY2FuIHNlZSB0aGVtXG4gIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHRydWUpO1xuICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgY29sbGVjdGlvbik7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCAodGhpcyBhcyBhbnkpLl9vdmVycmlkZXMsIHtcbiAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICBtaXJyb3JDb2xsZWN0aW9uOiBjb2xsZWN0aW9uLFxuICAgICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICAgIH0gYXMgYW55KVxuICAgICk7XG4gICAgY29uc3QgbWlycm9yID0gYXdhaXQgcmVwby5jcmVhdGUoc291cmNlTW9kZWwsIGNvbnRleHQpO1xuICAgIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgICBgTWlycm9yIGZvciAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gY3JlYXRlZCB3aXRoICR7TW9kZWwucGsobW9kZWwpIGFzIHN0cmluZ306ICR7bWlycm9yW01vZGVsLnBrKG1vZGVsKV19YFxuICAgICk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8gQ2xlYW4gdXAgbWlycm9yIGZsYWdzIGZyb20gY29udGV4dFxuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU1pcnJvckhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4sXG4gIGRhdGE6IE1pcnJvck1ldGFkYXRhLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShtb2RlbCwgZGF0YS5yZXNvbHZlciwgY29udGV4dCk7XG4gIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQgYXMgRmFicmljQ29udHJhY3RDb250ZXh0O1xuICBjb25zdCBzb3VyY2VNb2RlbCA9IG1vZGVsO1xuICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB0cnVlKTtcbiAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIGNvbGxlY3Rpb24pO1xuICB0cnkge1xuICAgIGNvbnN0IHJlcG8gPSB0aGlzLm92ZXJyaWRlKFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgKHRoaXMgYXMgYW55KS5fb3ZlcnJpZGVzLCB7XG4gICAgICAgIG1pcnJvcjogdHJ1ZSxcbiAgICAgICAgbWlycm9yQ29sbGVjdGlvbjogY29sbGVjdGlvbixcbiAgICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgICAgIGFwcGx5VXBkYXRlVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICAgIG1lcmdlRm9yVXBkYXRlOiBmYWxzZSxcbiAgICAgIH0gYXMgYW55KVxuICAgICk7XG4gICAgYXdhaXQgcmVwby51cGRhdGUoc291cmNlTW9kZWwsIGNvbnRleHQpO1xuICAgIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgICBgTWlycm9yIGZvciAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gdXBkYXRlZDogJHsobW9kZWwgYXMgYW55KVtNb2RlbC5wayhtb2RlbCldfWBcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZU1pcnJvckhhbmRsZXI8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4sXG4gIGRhdGE6IE1pcnJvck1ldGFkYXRhLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShtb2RlbCwgZGF0YS5yZXNvbHZlciwgY29udGV4dCk7XG4gIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQgYXMgRmFicmljQ29udHJhY3RDb250ZXh0O1xuICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB0cnVlKTtcbiAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIGNvbGxlY3Rpb24pO1xuICBmYWJyaWNDdHgucHV0KFwic2VncmVnYXRlZFwiIGFzIGFueSwgY29sbGVjdGlvbik7XG4gIHRyeSB7XG4gICAgY29uc3QgcGtQcm9wID0gTW9kZWwucGsobW9kZWwpIGFzIGtleW9mIE07XG4gICAgY29uc3QgaWQgPSBtb2RlbFtwa1Byb3BdO1xuICAgIGNvbnN0IHJlcG8gPSB0aGlzLm92ZXJyaWRlKFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgKHRoaXMgYXMgYW55KS5fb3ZlcnJpZGVzLCB7XG4gICAgICAgIHNlZ3JlZ2F0ZWQ6IGNvbGxlY3Rpb24sXG4gICAgICAgIG1pcnJvcjogdHJ1ZSxcbiAgICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgICB9IGFzIGFueSlcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXBvLmRlbGV0ZShpZCBhcyBhbnksIGNvbnRleHQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gTWF5IGFscmVhZHkgYmUgZGVsZXRlZCBieSBhZGFwdGVyLmRlbGV0ZVNlZ3JlZ2F0ZWRDb2xsZWN0aW9uc1xuICAgIH1cbiAgICBjb250ZXh0LmxvZ2dlci5pbmZvKFxuICAgICAgYE1pcnJvciBmb3IgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGRlbGV0ZWQ6ICR7U3RyaW5nKGlkKX1gXG4gICAgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICAgIGZhYnJpY0N0eC5wdXQoXCJzZWdyZWdhdGVkXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtaXJyb3JXcml0ZUd1YXJkPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+LFxuICBkYXRhOiBNaXJyb3JNZXRhZGF0YSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBrZXk6IGtleW9mIE0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoXG4gICAgY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKSBhcyBzdHJpbmcgfCBDbGllbnRJZGVudGl0eSB8IHVuZGVmaW5lZFxuICApO1xuICBpZiAoIW1zcCkgcmV0dXJuO1xuICBpZiAobXNwID09PSBkYXRhLm1zcElkIHx8IChkYXRhLmNvbmRpdGlvbiAmJiBkYXRhLmNvbmRpdGlvbihtc3ApKSkge1xuICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICBgT3JnYW5pemF0aW9uICR7bXNwfSBpcyBub3QgYXV0aG9yaXplZCB0byBtb2RpZnkgbWlycm9yZWQgZGF0YWBcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkTWlycm9ySGFuZGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPixcbiAgZGF0YTogTWlycm9yTWV0YWRhdGEsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoXG4gICAgY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKSBhcyBzdHJpbmcgfCBDbGllbnRJZGVudGl0eSB8IHVuZGVmaW5lZFxuICApO1xuXG4gIGlmICghbXNwKSByZXR1cm47XG5cbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShtb2RlbCwgZGF0YS5yZXNvbHZlciwgY29udGV4dCk7XG4gIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQgYXMgRmFicmljQ29udHJhY3RDb250ZXh0O1xuICBjb25zdCBtYXRjaGVzID0gbXNwID09PSBkYXRhLm1zcElkIHx8IChkYXRhLmNvbmRpdGlvbiAmJiBkYXRhLmNvbmRpdGlvbihtc3ApKTtcblxuICBpZiAobWF0Y2hlcykge1xuICAgIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgICBgTWlycm9yIHJlYWQ6IE1TUCAke21zcH0gbWF0Y2hlcywgcm91dGluZyByZWFkcyB0byBtaXJyb3IgY29sbGVjdGlvbiAke2NvbGxlY3Rpb259YFxuICAgICk7XG4gICAgLy8gUm91dGUgcmVhZHMgZXhjbHVzaXZlbHkgdGhyb3VnaCB0aGUgbWlycm9yIGNvbGxlY3Rpb25cbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB0cnVlKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgY29sbGVjdGlvbik7XG4gICAgZmFicmljQ3R4LnB1dChcImZ1bGx5U2VncmVnYXRlZFwiLCB0cnVlKTtcbiAgICBmYWJyaWNDdHgucmVhZEZyb20oY29sbGVjdGlvbik7XG4gIH1cbiAgLy8gV2hlbiBNU1AgZG9lcyBOT1QgbWF0Y2gsIG5vcm1hbCByZWFkIGZsb3cg4oCUIGFsbCBkYXRhIGlzIGluIHB1YmxpYyBzdGF0ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWlycm9yKFxuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgfCBzdHJpbmcsXG4gIG1zcElkT3JDb25kaXRpb24/OiBzdHJpbmcgfCBNaXJyb3JDb25kaXRpb24sXG4gIGNvbmRpdGlvbj86IE1pcnJvckNvbmRpdGlvblxuKSB7XG4gIGNvbnN0IGlzQ29uZGl0aW9uT25seSA9XG4gICAgdHlwZW9mIG1zcElkT3JDb25kaXRpb24gIT09IFwic3RyaW5nXCIgJiYgQm9vbGVhbihtc3BJZE9yQ29uZGl0aW9uKTtcbiAgY29uc3QgbXNwSWQgPSBpc0NvbmRpdGlvbk9ubHlcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogKG1zcElkT3JDb25kaXRpb24gYXMgc3RyaW5nIHwgdW5kZWZpbmVkKTtcbiAgY29uc3QgY29uZCA9IGlzQ29uZGl0aW9uT25seVxuICAgID8gKG1zcElkT3JDb25kaXRpb24gYXMgTWlycm9yQ29uZGl0aW9uKVxuICAgIDogY29uZGl0aW9uO1xuXG4gIGZ1bmN0aW9uIG1pcnJvcihcbiAgICByZXNvbHZlcjogQ29sbGVjdGlvblJlc29sdmVyIHwgc3RyaW5nLFxuICAgIG1zcElkOiBzdHJpbmcsXG4gICAgY29uZGl0aW9uPzogTWlycm9yQ29uZGl0aW9uXG4gICkge1xuICAgIGNvbnN0IG1ldGE6IE1pcnJvck1ldGFkYXRhID0ge1xuICAgICAgY29uZGl0aW9uOiBjb25kaXRpb24sXG4gICAgICBtc3BJZDogbXNwSWQsXG4gICAgICByZXNvbHZlcjogcmVzb2x2ZXIsXG4gICAgfTtcbiAgICByZXR1cm4gYXBwbHkoXG4gICAgICBtZXRhZGF0YShcbiAgICAgICAgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIEZhYnJpY01vZGVsS2V5cy5NSVJST1IpLFxuICAgICAgICBtZXRhXG4gICAgICApLFxuICAgICAgLy8gUmVhZCBoYW5kbGVyIHJ1bnMgZWFybHkgKHByaW9yaXR5IDMwKSB0byBzZXQgdXAgY29udGV4dCBiZWZvcmUgYW55IHJlYWRzXG4gICAgICBvblJlYWQocmVhZE1pcnJvckhhbmRsZXIgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiAzMCB9KSxcbiAgICAgIC8vIFdyaXRlIGd1YXJkcyDigJQgcmVqZWN0IG1hdGNoaW5nIE1TUHMgYmVmb3JlIGFueSBwcm9jZXNzaW5nXG4gICAgICBvbkNyZWF0ZShtaXJyb3JXcml0ZUd1YXJkIGFzIGFueSwgbWV0YSwgeyBwcmlvcml0eTogMjAgfSksXG4gICAgICBvblVwZGF0ZShtaXJyb3JXcml0ZUd1YXJkIGFzIGFueSwgbWV0YSwgeyBwcmlvcml0eTogMjAgfSksXG4gICAgICBvbkRlbGV0ZShtaXJyb3JXcml0ZUd1YXJkIGFzIGFueSwgbWV0YSwgeyBwcmlvcml0eTogMjAgfSksXG4gICAgICAvLyBNaXJyb3Igc3luYyBoYW5kbGVycyDigJQgd3JpdGUgZnVsbCBtb2RlbCBhZnRlciBvdGhlciBoYW5kbGVycyAocHJpb3JpdHkgMTAwKVxuICAgICAgb25DcmVhdGUoY3JlYXRlTWlycm9ySGFuZGxlciBhcyBhbnksIG1ldGEsIHsgcHJpb3JpdHk6IDEwMCB9KSxcbiAgICAgIG9uVXBkYXRlKHVwZGF0ZU1pcnJvckhhbmRsZXIgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiAxMDAgfSksXG4gICAgICBvbkRlbGV0ZShkZWxldGVNaXJyb3JIYW5kbGVyIGFzIGFueSwgbWV0YSwgeyBwcmlvcml0eTogMTAwIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuTUlSUk9SKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBtaXJyb3IsXG4gICAgICBhcmdzOiBbY29sbGVjdGlvbiwgbXNwSWQsIGNvbmRdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG5cbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25SZXNvbHZlciA9IDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSB8IENvbnN0cnVjdG9yPE0+LFxuICBtc3A/OiBzdHJpbmcsXG4gIC4uLmFyZ3M6IGFueVtdXG4pID0+IHN0cmluZztcblxuZXhwb3J0IGNvbnN0IE1vZGVsQ29sbGVjdGlvbjogQ29sbGVjdGlvblJlc29sdmVyID0gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNIHwgQ29uc3RydWN0b3I8TT4sXG4gIG1zcElkPzogc3RyaW5nXG4pID0+IHtcbiAgY29uc3Qgb3JnTmFtZSA9XG4gICAgbXNwSWQgfHwgKHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gTW9kZWwub3duZXJPZihtb2RlbCkgOiB1bmRlZmluZWQpO1xuICBjb25zdCBjb25zdHIgPSB0eXBlb2YgbW9kZWwgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsIDogbW9kZWwuY29uc3RydWN0b3I7XG4gIGlmICghb3JnTmFtZSlcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBNb2RlbCAke2NvbnN0ci5uYW1lfSBpcyBub3Qgb3duZWQgYnkgYW55IG9yZ2FuaXphdGlvbi4gZGlkIHlvdSB1c2UgQG93bmVkQnkoKSAob3IgcHJvdmlkZSB0aGUgbmFtZSk/YFxuICAgICk7XG4gIHJldHVybiBgJHt0b1Bhc2NhbENhc2UoY29uc3RyLm5hbWUpfSR7b3JnTmFtZSA/IHRvUGFzY2FsQ2FzZShvcmdOYW1lKSA6IFwiXCJ9YDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBOYW1lc3BhY2VDb2xsZWN0aW9uKG5hbWVzcGFjZTogc3RyaW5nKTogQ29sbGVjdGlvblJlc29sdmVyIHtcbiAgcmV0dXJuIDxNIGV4dGVuZHMgTW9kZWw+KG1vZGVsOiBNIHwgQ29uc3RydWN0b3I8TT4sIG1zcElkPzogc3RyaW5nKSA9PiB7XG4gICAgY29uc3Qgb3JnTmFtZSA9XG4gICAgICBtc3BJZCB8fCAodHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyBNb2RlbC5vd25lck9mKG1vZGVsKSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgY29uc3RyID0gdHlwZW9mIG1vZGVsID09PSBcImZ1bmN0aW9uXCIgPyBtb2RlbCA6IG1vZGVsLmNvbnN0cnVjdG9yO1xuICAgIGlmICghb3JnTmFtZSlcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgTW9kZWwgJHtjb25zdHIubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2BcbiAgICAgICk7XG4gICAgcmV0dXJuIGAke25hbWVzcGFjZX0ke29yZ05hbWUgPyB0b1Bhc2NhbENhc2Uob3JnTmFtZSkgOiBcIlwifWA7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBJbXBsaWNpdFByaXZhdGVDb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgPSA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwSWQ/OiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBvcmdOYW1lID1cbiAgICBtc3BJZCB8fCAodHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyBNb2RlbC5vd25lck9mKG1vZGVsKSA6IHVuZGVmaW5lZCk7XG4gIGlmICghb3JnTmFtZSlcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBNb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9IGlzIG5vdCBvd25lZCBieSBhbnkgb3JnYW5pemF0aW9uLiBkaWQgeW91IHVzZSBAb3duZWRCeSgpIChvciBwcm92aWRlIHRoZSBuYW1lKT9gXG4gICAgKTtcbiAgcmV0dXJuIGBfXyR7dG9QYXNjYWxDYXNlKG9yZ05hbWUpfVByaXZhdGVDb2xsZWN0aW9uYDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGEgPSB7XG4gIGNvbGxlY3Rpb25zOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXI7XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQcmlvcml0eSBmb3IgZWFybHkgY29sbGVjdGlvbiBleHRyYWN0aW9uIChiZWZvcmUgcGsgZ2VuZXJhdGlvbiBhdCBwcmlvcml0eSA2MClcbiAqIEBzdW1tYXJ5IFRoaXMgcHJpb3JpdHkgZW5zdXJlcyBjb2xsZWN0aW9ucyBhcmUgcmVnaXN0ZXJlZCBpbiBjb250ZXh0IGJlZm9yZSBhbnkgc2VxdWVuY2VcbiAqIG9wZXJhdGlvbnMgb2NjdXIsIGFsbG93aW5nIHNlcXVlbmNlcyB0byBiZSByZXBsaWNhdGVkIHRvIHByaXZhdGUvc2hhcmVkIGNvbGxlY3Rpb25zLlxuICovXG5leHBvcnQgY29uc3QgU0VHUkVHQVRFRF9DT0xMRUNUSU9OX0VYVFJBQ1RJT05fUFJJT1JJVFkgPSAzNTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5U2VncmVnYXRpb25GbGFnczxNIGV4dGVuZHMgTW9kZWw+KFxuICBjbGF6ejogTSxcbiAgY29sbGVjdGlvbnM6IHN0cmluZ1tdLFxuICBjdHg6IGFueVxuKSB7XG4gIC8vIFJlZ2lzdGVyIGNvbGxlY3Rpb25zIGVhcmx5IHVzaW5nIHJlYWRGcm9tIC0gdGhpcyBhbGxvd3Mgc2VxdWVuY2UgY29kZVxuICAvLyB0byBrbm93IHdoaWNoIGNvbGxlY3Rpb25zIHRvIHJlcGxpY2F0ZSB0byBkdXJpbmcgcGsgZ2VuZXJhdGlvblxuICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgIChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5yZWFkRnJvbShjb2xsZWN0aW9ucyk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBtb2RlbCBpcyBmdWxseSBzZWdyZWdhdGVkIChhbGwgbm9uLXBrIHByb3BlcnRpZXMgYXJlIHByaXZhdGUvc2hhcmVkL3RyYW5zaWVudCkuXG4gIC8vIFVzZSBNb2RlbC5zZWdyZWdhdGUoKSB3aGljaCBpcyB0aGUgY2Fub25pY2FsIHdheSB0byBkZXRlcm1pbmUgd2hhdCdzIHRyYW5zaWVudCxcbiAgLy8gcmF0aGVyIHRoYW4gcmVhZGluZyBEQktleXMuVFJBTlNJRU5UIG1ldGFkYXRhIHdoaWNoIG1heSBub3QgYWNjdW11bGF0ZSBjb3JyZWN0bHlcbiAgLy8gd2hlbiBjbGFzcy1sZXZlbCBAcHJpdmF0ZURhdGEgYXBwbGllcyBkZWNvcmF0b3JzIGl0ZXJhdGl2ZWx5LlxuICBpZiAoIWN0eC5pc0Z1bGx5U2VncmVnYXRlZCAmJiBjb2xsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICBpZiAoIWhhc1B1YmxpY1Byb3BlcnRpZXMoY2xhenouY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8TT4pKSB7XG4gICAgICBjdHgubWFya0Z1bGx5U2VncmVnYXRlZCgpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlNaXJyb3JGbGFnczxNIGV4dGVuZHMgTW9kZWw+KFxuICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gIG1zcDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuKSB7XG4gIGlmICghbXNwKSByZXR1cm47XG4gIGNvbnN0IG1pcnJvck1ldGEgPSBNb2RlbC5taXJyb3JlZEF0KGNsYXp6KTtcbiAgaWYgKCFtaXJyb3JNZXRhKSByZXR1cm47XG4gIGNvbnN0IG1hdGNoZXMgPVxuICAgIG1zcCA9PT0gbWlycm9yTWV0YS5tc3BJZCB8fFxuICAgIChtaXJyb3JNZXRhLmNvbmRpdGlvbiAmJiBtaXJyb3JNZXRhLmNvbmRpdGlvbihtc3ApKTtcbiAgaWYgKCFtYXRjaGVzKSByZXR1cm47XG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEoXG4gICAgbmV3IGNsYXp6KCksXG4gICAgbWlycm9yTWV0YS5yZXNvbHZlcixcbiAgICBjdHhcbiAgKTtcbiAgLy8gTWlycm9yIE1TUCBtYXRjaGVzIOKAlCByb3V0ZSByZWFkcyBleGNsdXNpdmVseSB0aHJvdWdoIHRoZSBtaXJyb3JcbiAgLy8gY29sbGVjdGlvbi4gQ2xlYXIgYW55IHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjb2xsZWN0aW9ucyBzbyBxdWVyaWVzXG4gIC8vIGdvIE9OTFkgdG8gdGhlIG1pcnJvciwgbm90IHRvIHRoZSByZWd1bGFyIHByaXZhdGUvc2hhcmVkIG9uZXMuXG4gIGN0eC5wdXQoXCJzZWdyZWdhdGVSZWFkXCIsIHVuZGVmaW5lZCk7XG4gIGN0eC5wdXQoXCJzZWdyZWdhdGVSZWFkU3RhY2tcIiwgdW5kZWZpbmVkKTtcbiAgY3R4LnB1dChcImZ1bGx5U2VncmVnYXRlZFwiLCB0cnVlKTtcbiAgY3R4LnB1dChcIm1pcnJvclwiIGFzIGFueSwgdHJ1ZSk7XG4gIGN0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIgYXMgYW55LCBjb2xsZWN0aW9uKTtcbiAgY3R4LnJlYWRGcm9tKGNvbGxlY3Rpb24pO1xufVxuXG5mdW5jdGlvbiBoYXNQdWJsaWNQcm9wZXJ0aWVzPE0gZXh0ZW5kcyBNb2RlbD4oY2xheno6IENvbnN0cnVjdG9yPE0+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGF0dHJpYnV0ZXMgPSBNZXRhZGF0YS5nZXRBdHRyaWJ1dGVzKGNsYXp6KSB8fCBbXTtcbiAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gIGNvbnN0IHRyYW5zaWVudE1ldGEgPSBNZXRhZGF0YS5nZXQoY2xhenogYXMgYW55LCBEQktleXMuVFJBTlNJRU5UKSB8fCB7fTtcbiAgY29uc3QgcHJpdmF0ZU1ldGEgPVxuICAgIE1ldGFkYXRhLmdldChjbGF6eiBhcyBhbnksIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuUFJJVkFURSkpIHx8IHt9O1xuICBjb25zdCBzaGFyZWRNZXRhID1cbiAgICBNZXRhZGF0YS5nZXQoY2xhenogYXMgYW55LCBNZXRhZGF0YS5rZXkoRmFicmljTW9kZWxLZXlzLlNIQVJFRCkpIHx8IHt9O1xuXG4gIHJldHVybiBhdHRyaWJ1dGVzLnNvbWUoKGF0dHIpID0+IHtcbiAgICBpZiAoYXR0ciA9PT0gcGspIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYXR0ciBpbiB0cmFuc2llbnRNZXRhKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGF0dHIgaW4gcHJpdmF0ZU1ldGEpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYXR0ciBpbiBzaGFyZWRNZXRhKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFYXJseSBoYW5kbGVyIHRvIGV4dHJhY3QgYW5kIHJlZ2lzdGVyIGNvbGxlY3Rpb25zIGluIGNvbnRleHRcbiAqIEBzdW1tYXJ5IFJ1bnMgd2l0aCBwcmlvcml0eSA8IDQwIHRvIGV4dHJhY3QgY29sbGVjdGlvbiBuYW1lcyBiZWZvcmUgcGsgZ2VuZXJhdGlvbiAocHJpb3JpdHkgNjApLlxuICogVGhpcyBhbGxvd3MgRmFicmljQ29udHJhY3RTZXF1ZW5jZSB0byBrbm93IHdoaWNoIGNvbGxlY3Rpb25zIHRvIHJlcGxpY2F0ZSB0by5cbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSB0aGF0IGV4dGVuZHMgTW9kZWxcbiAqIEBwYXJhbSB7Q29udGV4dE9mPFJlcG9zaXRvcnk8TSwgYW55Pj59IGNvbnRleHQgLSBUaGUgZXhlY3V0aW9uIGNvbnRleHRcbiAqIEBwYXJhbSB7U2VncmVnYXRlZERhdGFNZXRhZGF0YSB8IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXX0gZGF0YSAtIFRoZSBzZWdyZWdhdGVkIGRhdGEgbWV0YWRhdGFcbiAqIEBwYXJhbSB7c3RyaW5nIHwgc3RyaW5nW119IGtleXMgLSBUaGUgcHJvcGVydHkga2V5KHMpIGJlaW5nIHNlZ3JlZ2F0ZWRcbiAqIEBwYXJhbSB7TX0gbW9kZWwgLSBUaGUgbW9kZWwgaW5zdGFuY2VcbiAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleHRyYWN0U2VncmVnYXRlZENvbGxlY3Rpb25zPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IFJlcG9zaXRvcnk8TSwgYW55PixcbiAgY29udGV4dDogQ29udGV4dE9mPHR5cGVvZiB0aGlzPixcbiAgZGF0YTogU2VncmVnYXRlZERhdGFNZXRhZGF0YSB8IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXSxcbiAga2V5czoga2V5b2YgTSB8IChrZXlvZiBNKVtdLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRhdGFBcnJheSA9IChcbiAgICBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXVxuICApIGFzIFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXTtcblxuICBjb25zdCBtID1cbiAgICBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGVcIikgfHwgZmFsc2VcbiAgICAgID8gY29udGV4dC5nZXRPclVuZGVmaW5lZChcIm93bmVyT3ZlcnJpZGVcIilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG1zcCA9XG4gICAgbSB8fCBNb2RlbC5vd25lck9mKG1vZGVsKSB8fCBleHRyYWN0TXNwSWQoY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKSk7XG5cbiAgaWYgKCFtc3ApIHtcbiAgICAvLyBDYW4ndCBleHRyYWN0IGNvbGxlY3Rpb25zIHdpdGhvdXQgTVNQLCB3aWxsIGJlIGNhdWdodCBieSBsYXRlciBoYW5kbGVyc1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNvbGxlY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIGRhdGFBcnJheSkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IG1ldGFkYXRhLmNvbGxlY3Rpb25zO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPVxuICAgICAgdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBpZiAoY29sbGVjdGlvbiAmJiAhY29sbGVjdGlvbnMuaW5jbHVkZXMoY29sbGVjdGlvbikpIHtcbiAgICAgIGNvbGxlY3Rpb25zLnB1c2goY29sbGVjdGlvbik7XG4gICAgfVxuICB9XG4gIGFwcGx5U2VncmVnYXRpb25GbGFncyhtb2RlbCwgY29sbGVjdGlvbnMsIGNvbnRleHQpO1xuXG4gIC8vIFN0b3JlIHNlZ3JlZ2F0aW9uIG1ldGFkYXRhIHBlci1zZXF1ZW5jZSBzbyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIGNhbiBkZWNpZGVcbiAgLy8gd2hlcmUgdG8gc3RvcmUvcmVwbGljYXRlIHNlcXVlbmNlIHJlY29yZHMgKHB1YmxpYyB2cyBwcml2YXRlL3NoYXJlZCkuXG4gIC8vXG4gIC8vIC0gYEBwaygpYCBzZXF1ZW5jZXMgdXNlIHRoZSBzaGFyZWQgbmFtZSBgJHt0YWJsZX1fcGtgIChubyBpZCBjb21wb25lbnQpLlxuICAvLyAtIGBAc2VxdWVuY2UoKWAgLyBwZXJzaXN0ZW50IGBAdmVyc2lvbih0cnVlKWAgc2VxdWVuY2VzIGFyZSBwZXItbW9kZWwtaW5zdGFuY2U6XG4gIC8vICAgYCR7dGFibGV9XyR7aWR9XyR7cHJvcGVydHl9YC5cbiAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXlzKSA/IGtleXMgOiBba2V5c10pIGFzIChrZXlvZiBNKVtdO1xuICBjb25zdCBwa0tleSA9IE1vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSkgYXMga2V5b2YgTTtcbiAgY29uc3QgcGtTZXFOYW1lID0gTW9kZWwuc2VxdWVuY2VOYW1lKG1vZGVsLCBcInBrXCIpO1xuXG4gIGNvbnN0IGlkVmFsdWUgPSAobW9kZWwgYXMgYW55KVtwa0tleSBhcyBhbnldO1xuICBjb25zdCBjYW5CdWlsZFBlckluc3RhbmNlID1cbiAgICB0eXBlb2YgaWRWYWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpZFZhbHVlICE9PSBudWxsO1xuXG4gIC8vIEFsd2F5cyB1bmlvbiBjb2xsZWN0aW9ucyBmb3IgdGhlIHBrIHNlcXVlbmNlIHdoZW4gdGhlIG1vZGVsIHVzZXMgc2VncmVnYXRlZCBkYXRhLlxuICAoY29udGV4dCBhcyBhbnkpLnNldFNlcXVlbmNlU2VncmVnYXRpb24oXG4gICAgcGtTZXFOYW1lLFxuICAgIChjb250ZXh0IGFzIGFueSkuaXNGdWxseVNlZ3JlZ2F0ZWQsXG4gICAgY29sbGVjdGlvbnNcbiAgKTtcblxuICAvLyBGb3IgcGVyLXByb3BlcnR5IHNlcXVlbmNlcywgb25seSByZWdpc3RlciB3aGVuIHdlIGNhbiBjb21wdXRlIGFuIGlkLXNjb3BlZCBuYW1lLlxuICAvLyBUaGlzIGtlZXBzIHNlcXVlbmNlcyBjb25zdHJhaW5lZCB0byB0aGUgY29sbGVjdGlvbnMgdGhlIGF0dHJpYnV0ZSBleGlzdHMgaW4uXG4gIGlmIChjYW5CdWlsZFBlckluc3RhbmNlKSB7XG4gICAgZm9yIChjb25zdCBrIG9mIGtleUFycmF5KSB7XG4gICAgICBjb25zdCBwcm9wU2VxTmFtZSA9IE1vZGVsLnNlcXVlbmNlTmFtZShtb2RlbCwgU3RyaW5nKGlkVmFsdWUpLCBTdHJpbmcoaykpO1xuICAgICAgKGNvbnRleHQgYXMgYW55KS5zZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKFxuICAgICAgICBwcm9wU2VxTmFtZSxcbiAgICAgICAgKGNvbnRleHQgYXMgYW55KS5pc0Z1bGx5U2VncmVnYXRlZCxcbiAgICAgICAgY29sbGVjdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uQ3JlYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IFJlcG9zaXRvcnk8TSwgYW55PixcbiAgY29udGV4dDogQ29udGV4dE9mPHR5cGVvZiB0aGlzPixcbiAgZGF0YTogU2VncmVnYXRlZERhdGFNZXRhZGF0YSB8IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXSxcbiAga2V5czoga2V5b2YgTSB8IChrZXlvZiBNKVtdLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRhdGFBcnJheSA9IChcbiAgICBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXVxuICApIGFzIFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXTtcbiAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXlzKSA/IGtleXMgOiBba2V5c10pIGFzIChrZXlvZiBNKVtdO1xuICBpZiAoa2V5QXJyYXkubGVuZ3RoICE9PSBkYXRhQXJyYXkubGVuZ3RoKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYFNlZ3JlZ2F0ZWQgZGF0YSBrZXlzIGFuZCBtZXRhZGF0YSBsZW5ndGggbWlzbWF0Y2hgXG4gICAgKTtcblxuICBjb25zdCBtc3AgPVxuICAgIE1vZGVsLm93bmVyT2YobW9kZWwpIHx8XG4gICAgZXh0cmFjdE1zcElkKFxuICAgICAgY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKSBhcyBzdHJpbmcgfCBDbGllbnRJZGVudGl0eSB8IHVuZGVmaW5lZFxuICAgICk7XG4gIGlmICghbXNwKVxuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBgVGhlcmUncyBubyBhc3NpZ25lZCBvcmdhbml6YXRpb24gZm9yIG1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gXG4gICAgKTtcblxuICBjb25zdCBjb2xsZWN0aW9uUmVzb2x2ZXIgPSBkYXRhQXJyYXlbMF0uY29sbGVjdGlvbnM7XG4gIGNvbnN0IGNvbGxlY3Rpb24gPVxuICAgIHR5cGVvZiBjb2xsZWN0aW9uUmVzb2x2ZXIgPT09IFwic3RyaW5nXCJcbiAgICAgID8gY29sbGVjdGlvblJlc29sdmVyXG4gICAgICA6IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcblxuICAvLyBWYWxpZGF0ZSBhbGwga2V5cyByZXNvbHZlIHRvIHRoZSBzYW1lIGNvbGxlY3Rpb25cbiAga2V5QXJyYXkuZm9yRWFjaCgoX2ssIGkpID0+IHtcbiAgICBjb25zdCBjID1cbiAgICAgIHR5cGVvZiBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnNcbiAgICAgICAgOiBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnMobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgaWYgKGMgIT09IGNvbGxlY3Rpb24pXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgYFNlZ3JlZ2F0ZWQgZGF0YSBjb2xsZWN0aW9uIG1pc21hdGNoOiAke2N9IHZzICR7Y29sbGVjdGlvbn1gXG4gICAgICApO1xuICB9KTtcblxuICBjb25zdCBrZXlTdHJpbmdzID0ga2V5QXJyYXkubWFwKChrZXkpID0+IFN0cmluZyhrZXkpKTtcbiAgLy8gU3RvcmUgdGhlIHNlZ3JlZ2F0ZWQgbW9kZWwg4oCUIHByZXBhcmUoKSB3aWxsIGZpbHRlciB0byBjb2xsZWN0aW9uLXNwZWNpZmljIGZpZWxkc1xuICAoY29udGV4dCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQpLndyaXRlVG8oY29sbGVjdGlvbiwga2V5U3RyaW5ncyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uUmVhZDxNIGV4dGVuZHMgTW9kZWw+KFxuICB0aGlzOiBSZXBvc2l0b3J5PE0sIGFueT4sXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljRmxhZ3M+LFxuICBkYXRhOiBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdLFxuICBrZXlzOiBrZXlvZiBNIHwgKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGF0YUFycmF5ID0gKFxuICAgIEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW2RhdGFdXG4gICkgYXMgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdO1xuICBjb25zdCBrZXlBcnJheSA9IChBcnJheS5pc0FycmF5KGtleXMpID8ga2V5cyA6IFtrZXlzXSkgYXMgKGtleW9mIE0pW107XG4gIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGBcbiAgICApO1xuXG4gIGNvbnN0IG0gPVxuICAgIGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZVxuICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgbXNwID1cbiAgICBtIHx8IE1vZGVsLm93bmVyT2YobW9kZWwpIHx8IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgaWYgKCFtc3ApXG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgY29uc3QgY29sbGVjdGlvbiA9XG4gICAgdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgIDogYXdhaXQgY29sbGVjdGlvblJlc29sdmVyKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuXG4gIChjb250ZXh0IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkucmVhZEZyb20oY29sbGVjdGlvbik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uVXBkYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IFJlcG9zaXRvcnk8TSwgYW55PixcbiAgY29udGV4dDogQ29udGV4dE9mPHR5cGVvZiB0aGlzPixcbiAgZGF0YTogU2VncmVnYXRlZERhdGFNZXRhZGF0YSB8IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGFbXSxcbiAga2V5OiBrZXlvZiBNIHwgKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG9sZE1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGF0YUFycmF5ID0gKFxuICAgIEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW2RhdGFdXG4gICkgYXMgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdO1xuICBjb25zdCBrZXlBcnJheSA9IChBcnJheS5pc0FycmF5KGtleSkgPyBrZXkgOiBba2V5XSkgYXMgKGtleW9mIE0pW107XG4gIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGBcbiAgICApO1xuXG4gIGNvbnN0IG1zcCA9XG4gICAgTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICBleHRyYWN0TXNwSWQoXG4gICAgICBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzIHN0cmluZyB8IENsaWVudElkZW50aXR5IHwgdW5kZWZpbmVkXG4gICAgKTtcbiAgaWYgKCFtc3ApXG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgY29uc3QgY29sbGVjdGlvbiA9XG4gICAgdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgIDogY29sbGVjdGlvblJlc29sdmVyKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuXG4gIGtleUFycmF5LmZvckVhY2goKGssIGkpID0+IHtcbiAgICBjb25zdCBjID1cbiAgICAgIHR5cGVvZiBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnNcbiAgICAgICAgOiBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnMobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgaWYgKGMgIT09IGNvbGxlY3Rpb24pXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgYFNlZ3JlZ2F0ZWQgZGF0YSBjb2xsZWN0aW9uIG1pc21hdGNoOiAke2N9IHZzICR7Y29sbGVjdGlvbn1gXG4gICAgICApO1xuICB9KTtcblxuICBjb25zdCBrZXlTdHJpbmdzID0gKGtleUFycmF5IGFzIChrZXlvZiBNKVtdKS5tYXAoKGtleSkgPT4gU3RyaW5nKGtleSkpO1xuICAvLyBTdG9yZSB0aGUgb3JpZ2luYWwgbW9kZWwg4oCUIHByZXBhcmUoKSB3aWxsIGZpbHRlciB0byBjb2xsZWN0aW9uLXNwZWNpZmljIGZpZWxkc1xuICAoY29udGV4dCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQpLndyaXRlVG8oY29sbGVjdGlvbiwga2V5U3RyaW5ncyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uRGVsZXRlPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4gIFYgZXh0ZW5kcyBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dE9mPFI+LFxuICBkYXRhOiBWIHwgVltdLFxuICBrZXk6IChrZXlvZiBNKVtdLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSkgYXMgVltdO1xuICBjb25zdCBrZXlBcnJheSA9IChBcnJheS5pc0FycmF5KGtleSkgPyBrZXkgOiBba2V5XSkgYXMgKGtleW9mIE0pW107XG4gIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGBcbiAgICApO1xuXG4gIGNvbnN0IG0gPVxuICAgIGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZVxuICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgbXNwID1cbiAgICBtIHx8XG4gICAgTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICBleHRyYWN0TXNwSWQoXG4gICAgICBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzIHN0cmluZyB8IENsaWVudElkZW50aXR5IHwgdW5kZWZpbmVkXG4gICAgKTtcbiAgaWYgKCFtc3ApXG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgY29uc3QgY29sbGVjdGlvbiA9XG4gICAgdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgIDogY29sbGVjdGlvblJlc29sdmVyKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuXG4gIChjb250ZXh0IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkucmVhZEZyb20oY29sbGVjdGlvbik7XG59XG5cbmZ1bmN0aW9uIHNlZ3JlZ2F0ZWQoXG4gIGNvbGxlY3Rpb246IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcixcbiAgdHlwZTogRmFicmljTW9kZWxLZXlzLlBSSVZBVEUgfCBGYWJyaWNNb2RlbEtleXMuU0hBUkVELFxuICBmaWx0ZXI/OiAocHJvcE5hbWU6IHN0cmluZykgPT4gYm9vbGVhblxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBpbm5lclNlZ3JlZ2F0ZWQodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5S2V5PzogYW55KSB7XG4gICAgZnVuY3Rpb24gc2VncmVnYXRlZERlYyh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICAgIGNvbnN0IGtleSA9IE1ldGFkYXRhLmtleSh0eXBlLCBwcm9wZXJ0eUtleSk7XG4gICAgICBjb25zdCBjb25zdHI6IENvbnN0cnVjdG9yID0gdGFyZ2V0LmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yO1xuXG4gICAgICBjb25zdCBtZXRhID0gTWV0YWRhdGEuZ2V0KGNvbnN0ciBhcyBDb25zdHJ1Y3Rvciwga2V5KSB8fCB7fTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gbmV3IFNldChtZXRhLmNvbGxlY3Rpb25zIHx8IFtdKTtcbiAgICAgIGNvbGxlY3Rpb25zLmFkZChjb2xsZWN0aW9uKTtcbiAgICAgIG1ldGEuY29sbGVjdGlvbnMgPSBbLi4uY29sbGVjdGlvbnNdO1xuICAgICAgTWV0YWRhdGEuc2V0KGNvbnN0ciBhcyBDb25zdHJ1Y3Rvciwga2V5LCBtZXRhKTtcblxuICAgICAgY29uc3QgY29uc3RyTWV0YSA9IE1ldGFkYXRhLmdldChjb25zdHIgYXMgQ29uc3RydWN0b3IsIHR5cGUpIHx8IHt9O1xuICAgICAgY29uc3QgY29uc3RyQ29sbGVjdGlvbnMgPSBuZXcgU2V0KGNvbnN0ck1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgY29uc3RyQ29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgY29uc3RyTWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb25zdHJDb2xsZWN0aW9uc107XG4gICAgICBNZXRhZGF0YS5zZXQoY29uc3RyIGFzIENvbnN0cnVjdG9yLCB0eXBlLCBjb25zdHJNZXRhKTtcblxuICAgICAgY29uc3QgdHJhbnNpZW50TWV0YSA9XG4gICAgICAgIE1ldGFkYXRhLmdldChjb25zdHIgYXMgQ29uc3RydWN0b3IsIERCS2V5cy5UUkFOU0lFTlQpIHx8IHt9O1xuICAgICAgY29uc3QgdXBkYXRlZFRyYW5zaWVudE1ldGEgPSB7XG4gICAgICAgIC4uLnRyYW5zaWVudE1ldGEsXG4gICAgICAgIFtwcm9wZXJ0eUtleSBhcyBhbnldOiB7fSxcbiAgICAgIH07XG4gICAgICBNZXRhZGF0YS5zZXQoXG4gICAgICAgIGNvbnN0ciBhcyBDb25zdHJ1Y3RvcixcbiAgICAgICAgREJLZXlzLlRSQU5TSUVOVCxcbiAgICAgICAgdXBkYXRlZFRyYW5zaWVudE1ldGFcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVjczogYW55W10gPSBbXTtcbiAgICBpZiAoIXByb3BlcnR5S2V5KSB7XG4gICAgICAvLyBkZWNvcmF0ZWQgYXQgdGhlIGNsYXNzIGxldmVsXG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gTWV0YWRhdGEuZ2V0QXR0cmlidXRlcyh0YXJnZXQgYXMgQ29uc3RydWN0b3IpO1xuICAgICAgcHJvcGVydGllcz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICBpZiAoIWZpbHRlciB8fCBmaWx0ZXIocCkpIHtcbiAgICAgICAgICBzZWdyZWdhdGVkKGNvbGxlY3Rpb24sIHR5cGUpKCh0YXJnZXQgYXMgYW55KS5wcm90b3R5cGUsIHApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGdyb3VwTmFtZSA9XG4gICAgICAgIHR5cGVvZiBjb2xsZWN0aW9uID09PSBcInN0cmluZ1wiID8gY29sbGVjdGlvbiA6IGNvbGxlY3Rpb24udG9TdHJpbmcoKTtcbiAgICAgIC8vIFVzZSBkaWZmZXJlbnQgZ3JvdXAgbmFtZXMgZm9yIGV4dHJhY3Rpb24gdnMgZGF0YSBoYW5kbGVycyB0byBwcmV2ZW50IG1lcmdpbmdcbiAgICAgIGNvbnN0IGV4dHJhY3RHcm91cE5hbWUgPSBgJHtncm91cE5hbWV9OmV4dHJhY3RgO1xuICAgICAgY29uc3QgZGF0YUdyb3VwTmFtZSA9IGAke2dyb3VwTmFtZX06ZGF0YWA7XG4gICAgICBjb25zdCBlYXJseUV4dHJhY3Rpb25NZXRhID0geyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9O1xuICAgICAgY29uc3QgZWFybHlFeHRyYWN0aW9uR3JvdXBTb3J0ID0ge1xuICAgICAgICBwcmlvcml0eTogU0VHUkVHQVRFRF9DT0xMRUNUSU9OX0VYVFJBQ1RJT05fUFJJT1JJVFksXG4gICAgICAgIGdyb3VwOiBleHRyYWN0R3JvdXBOYW1lLFxuICAgICAgfTtcbiAgICAgIGRlY3MucHVzaChcbiAgICAgICAgcHJvcCgpLFxuICAgICAgICB0cmFuc2llbnQoKSxcbiAgICAgICAgc2VncmVnYXRlZERlYyxcbiAgICAgICAgLy8gRWFybHkgZXh0cmFjdGlvbiBoYW5kbGVycyAtIHJ1biBCRUZPUkUgcGsgZ2VuZXJhdGlvbiAocHJpb3JpdHkgNjApXG4gICAgICAgIC8vIFRoaXMgZW5zdXJlcyBjb2xsZWN0aW9ucyBhcmUgcmVnaXN0ZXJlZCBpbiBjb250ZXh0IGZvciBzZXF1ZW5jZSByZXBsaWNhdGlvblxuICAgICAgICAvLyBXZSByZWdpc3RlciBmb3IgZWFjaCBvcGVyYXRpb24gZXhwbGljaXRseSB0byBlbnN1cmUgcHJvcGVyIGhhbmRsZXIgbG9va3VwXG4gICAgICAgIG9uKFxuICAgICAgICAgIERCT3BlcmF0aW9ucy5BTEwsXG4gICAgICAgICAgZXh0cmFjdFNlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyBhcyBhbnksXG4gICAgICAgICAgZWFybHlFeHRyYWN0aW9uTWV0YSxcbiAgICAgICAgICBlYXJseUV4dHJhY3Rpb25Hcm91cFNvcnRcbiAgICAgICAgKSxcbiAgICAgICAgLy8gTWFpbiBoYW5kbGVycyBmb3Igc2VncmVnYXRlZCBkYXRhIG9wZXJhdGlvbnMgKHByaW9yaXR5IDk1KVxuICAgICAgICBvbkNyZWF0ZShcbiAgICAgICAgICBzZWdyZWdhdGVkRGF0YU9uQ3JlYXRlLFxuICAgICAgICAgIHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcmlvcml0eTogOTUsXG4gICAgICAgICAgICBncm91cDogZGF0YUdyb3VwTmFtZSxcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIG9uUmVhZChcbiAgICAgICAgICBzZWdyZWdhdGVkRGF0YU9uUmVhZCBhcyBhbnksXG4gICAgICAgICAgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgb25VcGRhdGUoXG4gICAgICAgICAgc2VncmVnYXRlZERhdGFPblVwZGF0ZSBhcyBhbnksXG4gICAgICAgICAgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgb25EZWxldGUoXG4gICAgICAgICAgc2VncmVnYXRlZERhdGFPbkRlbGV0ZSBhcyBhbnksXG4gICAgICAgICAgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcGx5KC4uLmRlY3MpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZURhdGEoXG4gIGNvbGxlY3Rpb246IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlciA9IEltcGxpY2l0UHJpdmF0ZUNvbGxlY3Rpb25cbikge1xuICBmdW5jdGlvbiBwcml2YXRlRGF0YShjb2xsZWN0aW9uOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIpIHtcbiAgICByZXR1cm4gc2VncmVnYXRlZChjb2xsZWN0aW9uLCBGYWJyaWNNb2RlbEtleXMuUFJJVkFURSk7XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLlBSSVZBVEUpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IHByaXZhdGVEYXRhLFxuICAgICAgYXJnczogW2NvbGxlY3Rpb25dLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaGFyZWREYXRhKGNvbGxlY3Rpb246IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcikge1xuICBmdW5jdGlvbiBzaGFyZWREYXRhKGNvbGxlY3Rpb246IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcikge1xuICAgIHJldHVybiBzZWdyZWdhdGVkKGNvbGxlY3Rpb24sIEZhYnJpY01vZGVsS2V5cy5TSEFSRUQpO1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5TSEFSRUQpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IHNoYXJlZERhdGEsXG4gICAgICBhcmdzOiBbY29sbGVjdGlvbl0sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cbiJdfQ==
596
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsb0NBTUM7QUFpQkQsc0JBcUJDO0FBQ0QsMENBaUJDO0FBQ0QsMEJBWUM7QUFDRCxzREFHQztBQUNELHNDQVlDO0FBQ0QsZ0RBZUM7QUFDRCxrREFzQkM7QUFDRCxrREFzQkM7QUFDRCxrREE0QkM7QUFDRCw0Q0FXQztBQUNELDhDQWdCQztBQUNELHdCQTRCQztBQVFELGtEQVFDO0FBYUQsc0RBZUM7QUFDRCw0Q0FvQkM7QUE4QkQsb0VBMENDO0FBQ0Qsd0RBd0JDO0FBQ0Qsb0RBZ0JDO0FBQ0Qsd0RBeUJDO0FBQ0Qsd0RBa0JDO0FBbUVELGtDQVVDO0FBQ0QsZ0NBVUM7QUFyakJELHlDQUF1RTtBQUN2RSwyREFBeUw7QUFDekwseUVBQWlFO0FBQ2pFLGlEQUFpRDtBQUNqRCxxREFBa0c7QUFDbEcsK0NBQWlEO0FBQ2pELGdDQUE4QjtBQUM5Qjs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLFFBQVE7SUFDakMsSUFBSSxDQUFDLFFBQVE7UUFDVCxPQUFPLFNBQVMsQ0FBQztJQUNyQixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDNUIsT0FBTyxRQUFRLENBQUM7SUFDcEIsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUNEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFNBQWdCLEtBQUs7SUFDakIsT0FBTyxVQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVTtRQUM1QyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxXQUFXLEdBQUcsSUFBSTtZQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FB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RUFBRSxFQUFFO2dCQUM5RCxRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsYUFBYTthQUN2QixDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7UUFDRCxPQUFPLElBQUEsa0JBQUssRUFBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBQ0QsU0FBZ0IsV0FBVyxDQUFDLFVBQVUsR0FBRyxpQ0FBeUI7SUFDOUQsU0FBUyxXQUFXLENBQUMsVUFBVTtRQUMzQixPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsOEJBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsT0FBTyx1QkFBVSxDQUFDLEdBQUcsQ0FBQyw4QkFBZSxDQUFDLE9BQU8sQ0FBQztTQUN6QyxNQUFNLENBQUM7UUFDUixTQUFTLEVBQUUsV0FBVztRQUN0QixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7S0FDckIsQ0FBQztTQUNHLEtBQUssRUFBRSxDQUFDO0FBQ2pCLENBQUM7QUFDRCxTQUFnQixVQUFVLENBQUMsVUFBVTtJQUNqQyxTQUFTLFVBQVUsQ0FBQyxVQUFVO1FBQzFCLE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSw4QkFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxPQUFPLHVCQUFVLENBQUMsR0FBRyxDQUFDLDhCQUFlLENBQUMsTUFBTSxDQUFDO1NBQ3hDLE1BQU0sQ0FBQztRQUNSLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUNyQixDQUFDO1NBQ0csS0FBSyxFQUFFLENBQUM7QUFDakIsQ0FBQztBQUNELDB5dEVBQTB5dEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRob3JpemF0aW9uRXJyb3IsIFVuc3VwcG9ydGVkRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZWQsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIG9uQ3JlYXRlLCBvbkRlbGV0ZSwgb25SZWFkLCBvblVwZGF0ZSwgcmVhZG9ubHksIHRyYW5zaWVudCwgVmFsaWRhdGlvbkVycm9yLCBEQktleXMsIERCT3BlcmF0aW9ucywgb24sIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNNb2RlbEtleXMgfSBmcm9tIFwiLi9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IGFwcGx5LCBEZWNvcmF0aW9uLCBtZXRhZGF0YSwgTWV0YWRhdGEsIHByb3AsIHByb3BNZXRhZGF0YSwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IFwiLi9vdmVycmlkZXMvaW5kZXguanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4dHJhY3RzIHRoZSBNU1AgSUQgZnJvbSBlaXRoZXIgYSBzdHJpbmcgb3IgQ2xpZW50SWRlbnRpdHkgb2JqZWN0XG4gKiBAcGFyYW0gaWRlbnRpdHkgLSBUaGUgaWRlbnRpdHkgdmFsdWUgd2hpY2ggY2FuIGJlIGEgc3RyaW5nIE1TUCBJRCBvciBDbGllbnRJZGVudGl0eSBvYmplY3RcbiAqIEByZXR1cm5zIFRoZSBNU1AgSUQgYXMgYSBzdHJpbmcsIG9yIHVuZGVmaW5lZCBpZiBub3QgYXZhaWxhYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TXNwSWQoaWRlbnRpdHkpIHtcbiAgICBpZiAoIWlkZW50aXR5KVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgaWRlbnRpdHkgPT09IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICByZXR1cm4gaWRlbnRpdHkuZ2V0TVNQSUQoKTtcbn1cbi8qKlxuICogRGVjb3JhdG9yIGZvciBtYXJraW5nIG1ldGhvZHMgdGhhdCByZXF1aXJlIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICogQ2hlY2tzIHRoZSBvd25lciBvZiB0aGUgdG9rZW4gYmVmb3JlIGFsbG93aW5nIHRoZSBtZXRob2QgdG8gYmUgZXhlY3V0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFRva2VuQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIEBPd25lcigpXG4gKiAgIGFzeW5jIE1pbnQoY3R4OiBDb250ZXh0LCBhbW91bnQ6IG51bWJlcikge1xuICogICAgIC8vIE1pbnQgdG9rZW4gbG9naWNcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogQHJldHVybnMge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgY2hlY2tzIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT3duZXIoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHByb3BlcnR5S2V5LCBkZXNjcmlwdG9yKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSBhcmdzWzBdO1xuICAgICAgICAgICAgY29uc3QgYWNvdW50SWQgPSBjdHguY2xpZW50SWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdCA9IGF3YWl0IHRoaXNbXCJ0b2tlblJlcG9zaXRvcnlcIl0uc2VsZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpO1xuICAgICAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFwiTm8gdG9rZW5zIGF2YWlhbGJsZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUbyBtYW55IHRva2VuIGF2YWlsYWJsZSA6ICR7dG9rZW5zLmxlbmd0aH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbnNbMF0ub3duZXIgIT0gYWNvdW50SWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBVc2VyIG5vdCBhdXRob3JpemVkIHRvIHJ1biAke3Byb3BlcnR5S2V5fSBvbiB0aGUgdG9rZW5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvd25lZEJ5T25DcmVhdGUoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IHsgc3R1YiB9ID0gY29udGV4dDtcbiAgICBjb25zdCBhbGxvd0dlbmVyYXRpb25PdmVycmlkZSA9IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZTtcbiAgICBjb25zdCBjcmVhdG9yID0gYXdhaXQgc3R1Yi5nZXRDcmVhdG9yKCk7XG4gICAgbGV0IG93bmVyID0gY3JlYXRvci5tc3BpZDtcbiAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBFeHBlY3RlZCBtc3BpZCB0byBiZSAke21vZGVsW2tleV19IHwgJHtvd25lcn0uIFxcbiBVc2luZyBhbGxvd0dlbmVyYXRpb25PdmVycmlkZTogJHthbGxvd0dlbmVyYXRpb25PdmVycmlkZX1gKTtcbiAgICBpZiAoYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGUpXG4gICAgICAgIG93bmVyID0gbW9kZWxba2V5XSA/IG1vZGVsW2tleV0gOiBvd25lcjtcbiAgICBjb25zdCBzZXRPd25lZEJ5S2V5VmFsdWUgPSBmdW5jdGlvbiAodGFyZ2V0LCBwcm9wZXJ0eUtleSwgdmFsdWUpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgc2V0T3duZWRCeUtleVZhbHVlKG1vZGVsLCBrZXksIG93bmVyKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBvd25lZEJ5KCkge1xuICAgIGZ1bmN0aW9uIG93bmVkQnkoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAob2JqLCBhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShyZXF1aXJlZCgpLCBnZW5lcmF0ZWQoKSwgcmVhZG9ubHkoKSwgb25DcmVhdGUob3duZWRCeU9uQ3JlYXRlKSwgcHJvcE1ldGFkYXRhKE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuRkFCUklDLCBGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpLCBhdHRyaWJ1dGUpKShvYmosIGF0dHJpYnV0ZSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IG93bmVkQnksXG4gICAgICAgIGFyZ3M6IFtdLFxuICAgIH0pXG4gICAgICAgIC5hcHBseSgpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWRPbkNyZWF0ZShjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsKSB7XG4gICAgY29uc3QgeyBzdHViIH0gPSBjb250ZXh0O1xuICAgIG1vZGVsW2tleV0gPSBzdHViLmdldFR4SUQoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2FjdGlvbklkKCkge1xuICAgIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWQoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAob2JqLCBhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShyZXF1aXJlZCgpLCByZWFkb25seSgpLCBvbkNyZWF0ZSh0cmFuc2FjdGlvbklkT25DcmVhdGUpLCBvblVwZGF0ZSh0cmFuc2FjdGlvbklkT25DcmVhdGUpLCBwcm9wTWV0YWRhdGEoTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIGF0dHJpYnV0ZSwgRmFicmljTW9kZWxLZXlzLlRSQU5TQUNUSU9OX0lEKSwgYXR0cmlidXRlKSkob2JqLCBhdHRyaWJ1dGUpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLlRSQU5TQUNUSU9OX0lEKVxuICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiB0cmFuc2FjdGlvbklkLFxuICAgICAgICBhcmdzOiBbXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIHJlc29sdmVyLCBjdHgpIHtcbiAgICBsZXQgY29sbGVjdGlvbiA9IHJlc29sdmVyO1xuICAgIGlmICh0eXBlb2YgY29sbGVjdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgb3duZXIgPSBNb2RlbC5vd25lck9mKG1vZGVsKSB8fCBjdHguZ2V0KFwic3R1YlwiKS5nZXRDcmVhdG9yKCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlciAmJiB0eXBlb2YgcmVzb2x2ZXIgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uID0gYXdhaXQgcmVzb2x2ZXIobW9kZWwsIG93bmVyLCBjdHgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJlc29sdmUgY29sbGVjdGlvbiBtaXJyb3IgbmFtZTogJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghY29sbGVjdGlvbiB8fCB0eXBlb2YgY29sbGVjdGlvbiAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGNvbGxlY3Rpb24gZm91bmQgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgY29uc3Qgc291cmNlTW9kZWwgPSBtb2RlbDtcbiAgICAvLyBQdXQgbWlycm9yIGZsYWdzIGRpcmVjdGx5IG9uIGNvbnRleHQgc28gYWRhcHRlci5wcmVwYXJlKCkgYW5kIGFkYXB0ZXIuY3JlYXRlKCkgY2FuIHNlZSB0aGVtXG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiLCB0cnVlKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiLCBjb2xsZWN0aW9uKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXBvID0gdGhpcy5vdmVycmlkZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vdmVycmlkZXMsIHtcbiAgICAgICAgICAgIG1pcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgIG1pcnJvckNvbGxlY3Rpb246IGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgbWlycm9yID0gYXdhaXQgcmVwby5jcmVhdGUoc291cmNlTW9kZWwsIGNvbnRleHQpO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBjcmVhdGVkIHdpdGggJHtNb2RlbC5wayhtb2RlbCl9OiAke21pcnJvcltNb2RlbC5wayhtb2RlbCldfWApO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgLy8gQ2xlYW4gdXAgbWlycm9yIGZsYWdzIGZyb20gY29udGV4dFxuICAgICAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIHVuZGVmaW5lZCk7XG4gICAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgY29uc3Qgc291cmNlTW9kZWwgPSBtb2RlbDtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIsIHRydWUpO1xuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIGNvbGxlY3Rpb24pO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcG8gPSB0aGlzLm92ZXJyaWRlKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJyaWRlcywge1xuICAgICAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICAgICAgbWlycm9yQ29sbGVjdGlvbjogY29sbGVjdGlvbixcbiAgICAgICAgICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICAgICAgICAgIGFwcGx5VXBkYXRlVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBtZXJnZUZvclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIH0pKTtcbiAgICAgICAgYXdhaXQgcmVwby51cGRhdGUoc291cmNlTW9kZWwsIGNvbnRleHQpO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB1cGRhdGVkOiAke21vZGVsW01vZGVsLnBrKG1vZGVsKV19YCk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIHVuZGVmaW5lZCk7XG4gICAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZU1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiLCB0cnVlKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiLCBjb2xsZWN0aW9uKTtcbiAgICBmYWJyaWNDdHgucHV0KFwic2VncmVnYXRlZFwiLCBjb2xsZWN0aW9uKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBwa1Byb3AgPSBNb2RlbC5wayhtb2RlbCk7XG4gICAgICAgIGNvbnN0IGlkID0gbW9kZWxbcGtQcm9wXTtcbiAgICAgICAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3ZlcnJpZGVzLCB7XG4gICAgICAgICAgICBzZWdyZWdhdGVkOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCByZXBvLmRlbGV0ZShpZCwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgLy8gTWF5IGFscmVhZHkgYmUgZGVsZXRlZCBieSBhZGFwdGVyLmRlbGV0ZVNlZ3JlZ2F0ZWRDb2xsZWN0aW9uc1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLmluZm8oYE1pcnJvciBmb3IgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGRlbGV0ZWQ6ICR7U3RyaW5nKGlkKX1gKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiwgdW5kZWZpbmVkKTtcbiAgICAgICAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiwgdW5kZWZpbmVkKTtcbiAgICAgICAgZmFicmljQ3R4LnB1dChcInNlZ3JlZ2F0ZWRcIiwgdW5kZWZpbmVkKTtcbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWlycm9yV3JpdGVHdWFyZChjb250ZXh0LCBkYXRhLCBcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmtleSwgXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5tb2RlbCkge1xuICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcClcbiAgICAgICAgcmV0dXJuO1xuICAgIGlmIChtc3AgPT09IGRhdGEubXNwSWQgfHwgKGRhdGEuY29uZGl0aW9uICYmIGRhdGEuY29uZGl0aW9uKG1zcCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoYE9yZ2FuaXphdGlvbiAke21zcH0gaXMgbm90IGF1dGhvcml6ZWQgdG8gbW9kaWZ5IG1pcnJvcmVkIGRhdGFgKTtcbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcClcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgY29uc3QgbWF0Y2hlcyA9IG1zcCA9PT0gZGF0YS5tc3BJZCB8fCAoZGF0YS5jb25kaXRpb24gJiYgZGF0YS5jb25kaXRpb24obXNwKSk7XG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIuaW5mbyhgTWlycm9yIHJlYWQ6IE1TUCAke21zcH0gbWF0Y2hlcywgcm91dGluZyByZWFkcyB0byBtaXJyb3IgY29sbGVjdGlvbiAke2NvbGxlY3Rpb259YCk7XG4gICAgICAgIC8vIFJvdXRlIHJlYWRzIGV4Y2x1c2l2ZWx5IHRocm91Z2ggdGhlIG1pcnJvciBjb2xsZWN0aW9uXG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiwgdHJ1ZSk7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIGNvbGxlY3Rpb24pO1xuICAgICAgICBmYWJyaWNDdHgucHV0KFwiZnVsbHlTZWdyZWdhdGVkXCIsIHRydWUpO1xuICAgICAgICBmYWJyaWNDdHgucmVhZEZyb20oY29sbGVjdGlvbik7XG4gICAgfVxuICAgIC8vIFdoZW4gTVNQIGRvZXMgTk9UIG1hdGNoLCBub3JtYWwgcmVhZCBmbG93IOKAlCBhbGwgZGF0YSBpcyBpbiBwdWJsaWMgc3RhdGVcbn1cbmV4cG9ydCBmdW5jdGlvbiBtaXJyb3IoY29sbGVjdGlvbiwgbXNwSWRPckNvbmRpdGlvbiwgY29uZGl0aW9uKSB7XG4gICAgY29uc3QgaXNDb25kaXRpb25Pbmx5ID0gdHlwZW9mIG1zcElkT3JDb25kaXRpb24gIT09IFwic3RyaW5nXCIgJiYgQm9vbGVhbihtc3BJZE9yQ29uZGl0aW9uKTtcbiAgICBjb25zdCBtc3BJZCA9IGlzQ29uZGl0aW9uT25seVxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IG1zcElkT3JDb25kaXRpb247XG4gICAgY29uc3QgY29uZCA9IGlzQ29uZGl0aW9uT25seVxuICAgICAgICA/IG1zcElkT3JDb25kaXRpb25cbiAgICAgICAgOiBjb25kaXRpb247XG4gICAgZnVuY3Rpb24gbWlycm9yKHJlc29sdmVyLCBtc3BJZCwgY29uZGl0aW9uKSB7XG4gICAgICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgICAgIG1zcElkOiBtc3BJZCxcbiAgICAgICAgICAgIHJlc29sdmVyOiByZXNvbHZlcixcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGFwcGx5KG1ldGFkYXRhKE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuRkFCUklDLCBGYWJyaWNNb2RlbEtleXMuTUlSUk9SKSwgbWV0YSksIFxuICAgICAgICAvLyBSZWFkIGhhbmRsZXIgcnVucyBlYXJseSAocHJpb3JpdHkgMzApIHRvIHNldCB1cCBjb250ZXh0IGJlZm9yZSBhbnkgcmVhZHNcbiAgICAgICAgb25SZWFkKHJlYWRNaXJyb3JIYW5kbGVyLCBtZXRhLCB7IHByaW9yaXR5OiAzMCB9KSwgXG4gICAgICAgIC8vIFdyaXRlIGd1YXJkcyDigJQgcmVqZWN0IG1hdGNoaW5nIE1TUHMgYmVmb3JlIGFueSBwcm9jZXNzaW5nXG4gICAgICAgIG9uQ3JlYXRlKG1pcnJvcldyaXRlR3VhcmQsIG1ldGEsIHsgcHJpb3JpdHk6IDIwIH0pLCBvblVwZGF0ZShtaXJyb3JXcml0ZUd1YXJkLCBtZXRhLCB7IHByaW9yaXR5OiAyMCB9KSwgb25EZWxldGUobWlycm9yV3JpdGVHdWFyZCwgbWV0YSwgeyBwcmlvcml0eTogMjAgfSksIFxuICAgICAgICAvLyBNaXJyb3Igc3luYyBoYW5kbGVycyDigJQgd3JpdGUgZnVsbCBtb2RlbCBhZnRlciBvdGhlciBoYW5kbGVycyAocHJpb3JpdHkgMTAwKVxuICAgICAgICBvbkNyZWF0ZShjcmVhdGVNaXJyb3JIYW5kbGVyLCBtZXRhLCB7IHByaW9yaXR5OiAxMDAgfSksIG9uVXBkYXRlKHVwZGF0ZU1pcnJvckhhbmRsZXIsIG1ldGEsIHsgcHJpb3JpdHk6IDEwMCB9KSwgb25EZWxldGUoZGVsZXRlTWlycm9ySGFuZGxlciwgbWV0YSwgeyBwcmlvcml0eTogMTAwIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5NSVJST1IpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IG1pcnJvcixcbiAgICAgICAgYXJnczogW2NvbGxlY3Rpb24sIG1zcElkLCBjb25kXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbmV4cG9ydCBjb25zdCBNb2RlbENvbGxlY3Rpb24gPSAobW9kZWwsIG1zcElkKSA9PiB7XG4gICAgY29uc3Qgb3JnTmFtZSA9IG1zcElkIHx8ICh0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IE1vZGVsLm93bmVyT2YobW9kZWwpIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBjb25zdHIgPSB0eXBlb2YgbW9kZWwgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsIDogbW9kZWwuY29uc3RydWN0b3I7XG4gICAgaWYgKCFvcmdOYW1lKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTW9kZWwgJHtjb25zdHIubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2ApO1xuICAgIHJldHVybiBgJHt0b1Bhc2NhbENhc2UoY29uc3RyLm5hbWUpfSR7b3JnTmFtZSA/IHRvUGFzY2FsQ2FzZShvcmdOYW1lKSA6IFwiXCJ9YDtcbn07XG5leHBvcnQgZnVuY3Rpb24gTmFtZXNwYWNlQ29sbGVjdGlvbihuYW1lc3BhY2UpIHtcbiAgICByZXR1cm4gKG1vZGVsLCBtc3BJZCkgPT4ge1xuICAgICAgICBjb25zdCBvcmdOYW1lID0gbXNwSWQgfHwgKHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gTW9kZWwub3duZXJPZihtb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBjb25zdHIgPSB0eXBlb2YgbW9kZWwgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsIDogbW9kZWwuY29uc3RydWN0b3I7XG4gICAgICAgIGlmICghb3JnTmFtZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBNb2RlbCAke2NvbnN0ci5uYW1lfSBpcyBub3Qgb3duZWQgYnkgYW55IG9yZ2FuaXphdGlvbi4gZGlkIHlvdSB1c2UgQG93bmVkQnkoKSAob3IgcHJvdmlkZSB0aGUgbmFtZSk/YCk7XG4gICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2V9JHtvcmdOYW1lID8gdG9QYXNjYWxDYXNlKG9yZ05hbWUpIDogXCJcIn1gO1xuICAgIH07XG59XG5leHBvcnQgY29uc3QgSW1wbGljaXRQcml2YXRlQ29sbGVjdGlvbiA9IChtb2RlbCwgbXNwSWQpID0+IHtcbiAgICBjb25zdCBvcmdOYW1lID0gbXNwSWQgfHwgKHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gTW9kZWwub3duZXJPZihtb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgIGlmICghb3JnTmFtZSlcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2ApO1xuICAgIHJldHVybiBgX18ke3RvUGFzY2FsQ2FzZShvcmdOYW1lKX1Qcml2YXRlQ29sbGVjdGlvbmA7XG59O1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUHJpb3JpdHkgZm9yIGVhcmx5IGNvbGxlY3Rpb24gZXh0cmFjdGlvbiAoYmVmb3JlIHBrIGdlbmVyYXRpb24gYXQgcHJpb3JpdHkgNjApXG4gKiBAc3VtbWFyeSBUaGlzIHByaW9yaXR5IGVuc3VyZXMgY29sbGVjdGlvbnMgYXJlIHJlZ2lzdGVyZWQgaW4gY29udGV4dCBiZWZvcmUgYW55IHNlcXVlbmNlXG4gKiBvcGVyYXRpb25zIG9jY3VyLCBhbGxvd2luZyBzZXF1ZW5jZXMgdG8gYmUgcmVwbGljYXRlZCB0byBwcml2YXRlL3NoYXJlZCBjb2xsZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFR1JFR0FURURfQ09MTEVDVElPTl9FWFRSQUNUSU9OX1BSSU9SSVRZID0gMzU7XG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTZWdyZWdhdGlvbkZsYWdzKGNsYXp6LCBjb2xsZWN0aW9ucywgY3R4KSB7XG4gICAgLy8gUmVnaXN0ZXIgY29sbGVjdGlvbnMgZWFybHkgdXNpbmcgcmVhZEZyb20gLSB0aGlzIGFsbG93cyBzZXF1ZW5jZSBjb2RlXG4gICAgLy8gdG8ga25vdyB3aGljaCBjb2xsZWN0aW9ucyB0byByZXBsaWNhdGUgdG8gZHVyaW5nIHBrIGdlbmVyYXRpb25cbiAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjdHgucmVhZEZyb20oY29sbGVjdGlvbnMpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiBtb2RlbCBpcyBmdWxseSBzZWdyZWdhdGVkIChhbGwgbm9uLXBrIHByb3BlcnRpZXMgYXJlIHByaXZhdGUvc2hhcmVkL3RyYW5zaWVudCkuXG4gICAgLy8gVXNlIE1vZGVsLnNlZ3JlZ2F0ZSgpIHdoaWNoIGlzIHRoZSBjYW5vbmljYWwgd2F5IHRvIGRldGVybWluZSB3aGF0J3MgdHJhbnNpZW50LFxuICAgIC8vIHJhdGhlciB0aGFuIHJlYWRpbmcgREJLZXlzLlRSQU5TSUVOVCBtZXRhZGF0YSB3aGljaCBtYXkgbm90IGFjY3VtdWxhdGUgY29ycmVjdGx5XG4gICAgLy8gd2hlbiBjbGFzcy1sZXZlbCBAcHJpdmF0ZURhdGEgYXBwbGllcyBkZWNvcmF0b3JzIGl0ZXJhdGl2ZWx5LlxuICAgIGlmICghY3R4LmlzRnVsbHlTZWdyZWdhdGVkICYmIGNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICBpZiAoIWhhc1B1YmxpY1Byb3BlcnRpZXMoY2xhenouY29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgICBjdHgubWFya0Z1bGx5U2VncmVnYXRlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5TWlycm9yRmxhZ3MoY2xhenosIG1zcCwgY3R4KSB7XG4gICAgaWYgKCFtc3ApXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBtaXJyb3JNZXRhID0gTW9kZWwubWlycm9yZWRBdChjbGF6eik7XG4gICAgaWYgKCFtaXJyb3JNZXRhKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbWF0Y2hlcyA9IG1zcCA9PT0gbWlycm9yTWV0YS5tc3BJZCB8fFxuICAgICAgICAobWlycm9yTWV0YS5jb25kaXRpb24gJiYgbWlycm9yTWV0YS5jb25kaXRpb24obXNwKSk7XG4gICAgaWYgKCFtYXRjaGVzKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShuZXcgY2xhenooKSwgbWlycm9yTWV0YS5yZXNvbHZlciwgY3R4KTtcbiAgICAvLyBNaXJyb3IgTVNQIG1hdGNoZXMg4oCUIHJvdXRlIHJlYWRzIGV4Y2x1c2l2ZWx5IHRocm91Z2ggdGhlIG1pcnJvclxuICAgIC8vIGNvbGxlY3Rpb24uIENsZWFyIGFueSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgY29sbGVjdGlvbnMgc28gcXVlcmllc1xuICAgIC8vIGdvIE9OTFkgdG8gdGhlIG1pcnJvciwgbm90IHRvIHRoZSByZWd1bGFyIHByaXZhdGUvc2hhcmVkIG9uZXMuXG4gICAgY3R4LnB1dChcInNlZ3JlZ2F0ZVJlYWRcIiwgdW5kZWZpbmVkKTtcbiAgICBjdHgucHV0KFwic2VncmVnYXRlUmVhZFN0YWNrXCIsIHVuZGVmaW5lZCk7XG4gICAgY3R4LnB1dChcImZ1bGx5U2VncmVnYXRlZFwiLCB0cnVlKTtcbiAgICBjdHgucHV0KFwibWlycm9yXCIsIHRydWUpO1xuICAgIGN0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIGNvbGxlY3Rpb24pO1xuICAgIGN0eC5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbn1cbmZ1bmN0aW9uIGhhc1B1YmxpY1Byb3BlcnRpZXMoY2xhenopIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gTWV0YWRhdGEuZ2V0QXR0cmlidXRlcyhjbGF6eikgfHwgW107XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gICAgY29uc3QgdHJhbnNpZW50TWV0YSA9IE1ldGFkYXRhLmdldChjbGF6eiwgREJLZXlzLlRSQU5TSUVOVCkgfHwge307XG4gICAgY29uc3QgcHJpdmF0ZU1ldGEgPSBNZXRhZGF0YS5nZXQoY2xhenosIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuUFJJVkFURSkpIHx8IHt9O1xuICAgIGNvbnN0IHNoYXJlZE1ldGEgPSBNZXRhZGF0YS5nZXQoY2xhenosIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuU0hBUkVEKSkgfHwge307XG4gICAgcmV0dXJuIGF0dHJpYnV0ZXMuc29tZSgoYXR0cikgPT4ge1xuICAgICAgICBpZiAoYXR0ciA9PT0gcGspXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChhdHRyIGluIHRyYW5zaWVudE1ldGEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChhdHRyIGluIHByaXZhdGVNZXRhKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoYXR0ciBpbiBzaGFyZWRNZXRhKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVhcmx5IGhhbmRsZXIgdG8gZXh0cmFjdCBhbmQgcmVnaXN0ZXIgY29sbGVjdGlvbnMgaW4gY29udGV4dFxuICogQHN1bW1hcnkgUnVucyB3aXRoIHByaW9yaXR5IDwgNDAgdG8gZXh0cmFjdCBjb2xsZWN0aW9uIG5hbWVzIGJlZm9yZSBwayBnZW5lcmF0aW9uIChwcmlvcml0eSA2MCkuXG4gKiBUaGlzIGFsbG93cyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIHRvIGtub3cgd2hpY2ggY29sbGVjdGlvbnMgdG8gcmVwbGljYXRlIHRvLlxuICogQHRlbXBsYXRlIE0gLSBUeXBlIHRoYXQgZXh0ZW5kcyBNb2RlbFxuICogQHBhcmFtIHtDb250ZXh0T2Y8UmVwb3NpdG9yeTxNLCBhbnk+Pn0gY29udGV4dCAtIFRoZSBleGVjdXRpb24gY29udGV4dFxuICogQHBhcmFtIHtTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdfSBkYXRhIC0gVGhlIHNlZ3JlZ2F0ZWQgZGF0YSBtZXRhZGF0YVxuICogQHBhcmFtIHtzdHJpbmcgfCBzdHJpbmdbXX0ga2V5cyAtIFRoZSBwcm9wZXJ0eSBrZXkocykgYmVpbmcgc2VncmVnYXRlZFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZVxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnMoY29udGV4dCwgZGF0YSwga2V5cywgbW9kZWwpIHtcbiAgICBjb25zdCBkYXRhQXJyYXkgPSAoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV0pO1xuICAgIGNvbnN0IG0gPSBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGVcIikgfHwgZmFsc2VcbiAgICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtc3AgPSBtIHx8IE1vZGVsLm93bmVyT2YobW9kZWwpIHx8IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcCkge1xuICAgICAgICAvLyBDYW4ndCBleHRyYWN0IGNvbGxlY3Rpb25zIHdpdGhvdXQgTVNQLCB3aWxsIGJlIGNhdWdodCBieSBsYXRlciBoYW5kbGVyc1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gW107XG4gICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiBkYXRhQXJyYXkpIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gbWV0YWRhdGEuY29sbGVjdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgICAgIGlmIChjb2xsZWN0aW9uICYmICFjb2xsZWN0aW9ucy5pbmNsdWRlcyhjb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgY29sbGVjdGlvbnMucHVzaChjb2xsZWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhcHBseVNlZ3JlZ2F0aW9uRmxhZ3MobW9kZWwsIGNvbGxlY3Rpb25zLCBjb250ZXh0KTtcbiAgICAvLyBTdG9yZSBzZWdyZWdhdGlvbiBtZXRhZGF0YSBwZXItc2VxdWVuY2Ugc28gRmFicmljQ29udHJhY3RTZXF1ZW5jZSBjYW4gZGVjaWRlXG4gICAgLy8gd2hlcmUgdG8gc3RvcmUvcmVwbGljYXRlIHNlcXVlbmNlIHJlY29yZHMgKHB1YmxpYyB2cyBwcml2YXRlL3NoYXJlZCkuXG4gICAgLy9cbiAgICAvLyAtIGBAcGsoKWAgc2VxdWVuY2VzIHVzZSB0aGUgc2hhcmVkIG5hbWUgYCR7dGFibGV9X3BrYCAobm8gaWQgY29tcG9uZW50KS5cbiAgICAvLyAtIGBAc2VxdWVuY2UoKWAgLyBwZXJzaXN0ZW50IGBAdmVyc2lvbih0cnVlKWAgc2VxdWVuY2VzIGFyZSBwZXItbW9kZWwtaW5zdGFuY2U6XG4gICAgLy8gICBgJHt0YWJsZX1fJHtpZH1fJHtwcm9wZXJ0eX1gLlxuICAgIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5cykgPyBrZXlzIDogW2tleXNdKTtcbiAgICBjb25zdCBwa0tleSA9IE1vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yKTtcbiAgICBjb25zdCBwa1NlcU5hbWUgPSBNb2RlbC5zZXF1ZW5jZU5hbWUobW9kZWwsIFwicGtcIik7XG4gICAgY29uc3QgaWRWYWx1ZSA9IG1vZGVsW3BrS2V5XTtcbiAgICBjb25zdCBjYW5CdWlsZFBlckluc3RhbmNlID0gdHlwZW9mIGlkVmFsdWUgIT09IFwidW5kZWZpbmVkXCIgJiYgaWRWYWx1ZSAhPT0gbnVsbDtcbiAgICAvLyBBbHdheXMgdW5pb24gY29sbGVjdGlvbnMgZm9yIHRoZSBwayBzZXF1ZW5jZSB3aGVuIHRoZSBtb2RlbCB1c2VzIHNlZ3JlZ2F0ZWQgZGF0YS5cbiAgICBjb250ZXh0LnNldFNlcXVlbmNlU2VncmVnYXRpb24ocGtTZXFOYW1lLCBjb250ZXh0LmlzRnVsbHlTZWdyZWdhdGVkLCBjb2xsZWN0aW9ucyk7XG4gICAgLy8gRm9yIHBlci1wcm9wZXJ0eSBzZXF1ZW5jZXMsIG9ubHkgcmVnaXN0ZXIgd2hlbiB3ZSBjYW4gY29tcHV0ZSBhbiBpZC1zY29wZWQgbmFtZS5cbiAgICAvLyBUaGlzIGtlZXBzIHNlcXVlbmNlcyBjb25zdHJhaW5lZCB0byB0aGUgY29sbGVjdGlvbnMgdGhlIGF0dHJpYnV0ZSBleGlzdHMgaW4uXG4gICAgaWYgKGNhbkJ1aWxkUGVySW5zdGFuY2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleUFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wU2VxTmFtZSA9IE1vZGVsLnNlcXVlbmNlTmFtZShtb2RlbCwgU3RyaW5nKGlkVmFsdWUpLCBTdHJpbmcoaykpO1xuICAgICAgICAgICAgY29udGV4dC5zZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKHByb3BTZXFOYW1lLCBjb250ZXh0LmlzRnVsbHlTZWdyZWdhdGVkLCBjb2xsZWN0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VncmVnYXRlZERhdGFPbkNyZWF0ZShjb250ZXh0LCBkYXRhLCBrZXlzLCBtb2RlbCkge1xuICAgIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXlzKSA/IGtleXMgOiBba2V5c10pO1xuICAgIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYCk7XG4gICAgY29uc3QgbXNwID0gTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICAgICAgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICAgIGlmICghbXNwKVxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICAvLyBWYWxpZGF0ZSBhbGwga2V5cyByZXNvbHZlIHRvIHRoZSBzYW1lIGNvbGxlY3Rpb25cbiAgICBrZXlBcnJheS5mb3JFYWNoKChfaywgaSkgPT4ge1xuICAgICAgICBjb25zdCBjID0gdHlwZW9mIGRhdGFBcnJheVtpXS5jb2xsZWN0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnNcbiAgICAgICAgICAgIDogZGF0YUFycmF5W2ldLmNvbGxlY3Rpb25zKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuICAgICAgICBpZiAoYyAhPT0gY29sbGVjdGlvbilcbiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKGBTZWdyZWdhdGVkIGRhdGEgY29sbGVjdGlvbiBtaXNtYXRjaDogJHtjfSB2cyAke2NvbGxlY3Rpb259YCk7XG4gICAgfSk7XG4gICAgY29uc3Qga2V5U3RyaW5ncyA9IGtleUFycmF5Lm1hcCgoa2V5KSA9PiBTdHJpbmcoa2V5KSk7XG4gICAgLy8gU3RvcmUgdGhlIHNlZ3JlZ2F0ZWQgbW9kZWwg4oCUIHByZXBhcmUoKSB3aWxsIGZpbHRlciB0byBjb2xsZWN0aW9uLXNwZWNpZmljIGZpZWxkc1xuICAgIGNvbnRleHQud3JpdGVUbyhjb2xsZWN0aW9uLCBrZXlTdHJpbmdzKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uUmVhZChjb250ZXh0LCBkYXRhLCBrZXlzLCBtb2RlbCkge1xuICAgIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXlzKSA/IGtleXMgOiBba2V5c10pO1xuICAgIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYCk7XG4gICAgY29uc3QgbSA9IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZVxuICAgICAgICA/IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvd25lck92ZXJyaWRlXCIpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1zcCA9IG0gfHwgTW9kZWwub3duZXJPZihtb2RlbCkgfHwgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICAgIGlmICghbXNwKVxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGF3YWl0IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBjb250ZXh0LnJlYWRGcm9tKGNvbGxlY3Rpb24pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25VcGRhdGUoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCwgXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5vbGRNb2RlbCkge1xuICAgIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXkpID8ga2V5IDogW2tleV0pO1xuICAgIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYCk7XG4gICAgY29uc3QgbXNwID0gTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICAgICAgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICAgIGlmICghbXNwKVxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBrZXlBcnJheS5mb3JFYWNoKChrLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGMgPSB0eXBlb2YgZGF0YUFycmF5W2ldLmNvbGxlY3Rpb25zID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IGRhdGFBcnJheVtpXS5jb2xsZWN0aW9uc1xuICAgICAgICAgICAgOiBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnMobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgICAgIGlmIChjICE9PSBjb2xsZWN0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoYFNlZ3JlZ2F0ZWQgZGF0YSBjb2xsZWN0aW9uIG1pc21hdGNoOiAke2N9IHZzICR7Y29sbGVjdGlvbn1gKTtcbiAgICB9KTtcbiAgICBjb25zdCBrZXlTdHJpbmdzID0ga2V5QXJyYXkubWFwKChrZXkpID0+IFN0cmluZyhrZXkpKTtcbiAgICAvLyBTdG9yZSB0aGUgb3JpZ2luYWwgbW9kZWwg4oCUIHByZXBhcmUoKSB3aWxsIGZpbHRlciB0byBjb2xsZWN0aW9uLXNwZWNpZmljIGZpZWxkc1xuICAgIGNvbnRleHQud3JpdGVUbyhjb2xsZWN0aW9uLCBrZXlTdHJpbmdzKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uRGVsZXRlKGNvbnRleHQsIGRhdGEsIGtleSwgbW9kZWwpIHtcbiAgICBjb25zdCBkYXRhQXJyYXkgPSAoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV0pO1xuICAgIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5KSA/IGtleSA6IFtrZXldKTtcbiAgICBpZiAoa2V5QXJyYXkubGVuZ3RoICE9PSBkYXRhQXJyYXkubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGApO1xuICAgIGNvbnN0IG0gPSBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGVcIikgfHwgZmFsc2VcbiAgICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtc3AgPSBtIHx8XG4gICAgICAgIE1vZGVsLm93bmVyT2YobW9kZWwpIHx8XG4gICAgICAgIGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcClcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVGhlcmUncyBubyBhc3NpZ25lZCBvcmdhbml6YXRpb24gZm9yIG1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uUmVzb2x2ZXIgPSBkYXRhQXJyYXlbMF0uY29sbGVjdGlvbnM7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHR5cGVvZiBjb2xsZWN0aW9uUmVzb2x2ZXIgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgY29udGV4dC5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbn1cbmZ1bmN0aW9uIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgdHlwZSwgZmlsdGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyU2VncmVnYXRlZCh0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREZWModGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gTWV0YWRhdGEua2V5KHR5cGUsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnN0ciA9IHRhcmdldC5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyLCBrZXkpIHx8IHt9O1xuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBuZXcgU2V0KG1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgICAgICAgY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgbWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb2xsZWN0aW9uc107XG4gICAgICAgICAgICBNZXRhZGF0YS5zZXQoY29uc3RyLCBrZXksIG1ldGEpO1xuICAgICAgICAgICAgY29uc3QgY29uc3RyTWV0YSA9IE1ldGFkYXRhLmdldChjb25zdHIsIHR5cGUpIHx8IHt9O1xuICAgICAgICAgICAgY29uc3QgY29uc3RyQ29sbGVjdGlvbnMgPSBuZXcgU2V0KGNvbnN0ck1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgICAgICAgY29uc3RyQ29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgY29uc3RyTWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb25zdHJDb2xsZWN0aW9uc107XG4gICAgICAgICAgICBNZXRhZGF0YS5zZXQoY29uc3RyLCB0eXBlLCBjb25zdHJNZXRhKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyLCBEQktleXMuVFJBTlNJRU5UKSB8fCB7fTtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2llbnRNZXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLnRyYW5zaWVudE1ldGEsXG4gICAgICAgICAgICAgICAgW3Byb3BlcnR5S2V5XToge30sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgTWV0YWRhdGEuc2V0KGNvbnN0ciwgREJLZXlzLlRSQU5TSUVOVCwgdXBkYXRlZFRyYW5zaWVudE1ldGEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY3MgPSBbXTtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgLy8gZGVjb3JhdGVkIGF0IHRoZSBjbGFzcyBsZXZlbFxuICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE1ldGFkYXRhLmdldEF0dHJpYnV0ZXModGFyZ2V0KTtcbiAgICAgICAgICAgIHByb3BlcnRpZXM/LmZvckVhY2goKHApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpbHRlciB8fCBmaWx0ZXIocCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VncmVnYXRlZChjb2xsZWN0aW9uLCB0eXBlKSh0YXJnZXQucHJvdG90eXBlLCBwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBncm91cE5hbWUgPSB0eXBlb2YgY29sbGVjdGlvbiA9PT0gXCJzdHJpbmdcIiA/IGNvbGxlY3Rpb24gOiBjb2xsZWN0aW9uLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAvLyBVc2UgZGlmZmVyZW50IGdyb3VwIG5hbWVzIGZvciBleHRyYWN0aW9uIHZzIGRhdGEgaGFuZGxlcnMgdG8gcHJldmVudCBtZXJnaW5nXG4gICAgICAgICAgICBjb25zdCBleHRyYWN0R3JvdXBOYW1lID0gYCR7Z3JvdXBOYW1lfTpleHRyYWN0YDtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFHcm91cE5hbWUgPSBgJHtncm91cE5hbWV9OmRhdGFgO1xuICAgICAgICAgICAgY29uc3QgZWFybHlFeHRyYWN0aW9uTWV0YSA9IHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfTtcbiAgICAgICAgICAgIGNvbnN0IGVhcmx5RXh0cmFjdGlvbkdyb3VwU29ydCA9IHtcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogU0VHUkVHQVRFRF9DT0xMRUNUSU9OX0VYVFJBQ1RJT05fUFJJT1JJVFksXG4gICAgICAgICAgICAgICAgZ3JvdXA6IGV4dHJhY3RHcm91cE5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVjcy5wdXNoKHByb3AoKSwgdHJhbnNpZW50KCksIHNlZ3JlZ2F0ZWREZWMsIFxuICAgICAgICAgICAgLy8gRWFybHkgZXh0cmFjdGlvbiBoYW5kbGVycyAtIHJ1biBCRUZPUkUgcGsgZ2VuZXJhdGlvbiAocHJpb3JpdHkgNjApXG4gICAgICAgICAgICAvLyBUaGlzIGVuc3VyZXMgY29sbGVjdGlvbnMgYXJlIHJlZ2lzdGVyZWQgaW4gY29udGV4dCBmb3Igc2VxdWVuY2UgcmVwbGljYXRpb25cbiAgICAgICAgICAgIC8vIFdlIHJlZ2lzdGVyIGZvciBlYWNoIG9wZXJhdGlvbiBleHBsaWNpdGx5IHRvIGVuc3VyZSBwcm9wZXIgaGFuZGxlciBsb29rdXBcbiAgICAgICAgICAgIG9uKERCT3BlcmF0aW9ucy5BTEwsIGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnMsIGVhcmx5RXh0cmFjdGlvbk1ldGEsIGVhcmx5RXh0cmFjdGlvbkdyb3VwU29ydCksIFxuICAgICAgICAgICAgLy8gTWFpbiBoYW5kbGVycyBmb3Igc2VncmVnYXRlZCBkYXRhIG9wZXJhdGlvbnMgKHByaW9yaXR5IDk1KVxuICAgICAgICAgICAgb25DcmVhdGUoc2VncmVnYXRlZERhdGFPbkNyZWF0ZSwgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LCB7XG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgICAgfSksIG9uUmVhZChzZWdyZWdhdGVkRGF0YU9uUmVhZCwgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LCB7XG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgICAgfSksIG9uVXBkYXRlKHNlZ3JlZ2F0ZWREYXRhT25VcGRhdGUsIHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfSwge1xuICAgICAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgICAgICBncm91cDogZGF0YUdyb3VwTmFtZSxcbiAgICAgICAgICAgIH0pLCBvbkRlbGV0ZShzZWdyZWdhdGVkRGF0YU9uRGVsZXRlLCB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sIHtcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogOTUsXG4gICAgICAgICAgICAgICAgZ3JvdXA6IGRhdGFHcm91cE5hbWUsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFwcGx5KC4uLmRlY3MpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZURhdGEoY29sbGVjdGlvbiA9IEltcGxpY2l0UHJpdmF0ZUNvbGxlY3Rpb24pIHtcbiAgICBmdW5jdGlvbiBwcml2YXRlRGF0YShjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBzZWdyZWdhdGVkKGNvbGxlY3Rpb24sIEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKTtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKVxuICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBwcml2YXRlRGF0YSxcbiAgICAgICAgYXJnczogW2NvbGxlY3Rpb25dLFxuICAgIH0pXG4gICAgICAgIC5hcHBseSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbikge1xuICAgIGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gc2VncmVnYXRlZChjb2xsZWN0aW9uLCBGYWJyaWNNb2RlbEtleXMuU0hBUkVEKTtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5TSEFSRUQpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IHNoYXJlZERhdGEsXG4gICAgICAgIGFyZ3M6IFtjb2xsZWN0aW9uXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OXphR0Z5WldRdlpHVmpiM0poZEc5eWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUTB3c2EwSkJRV3RDTEVWQlIyeENMR2RDUVVGblFpeEhRVWRxUWl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEzaENMRTlCUVU4c1JVRkRUQ3hUUVVGVExFVkJRMVFzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4UlFVRlJMRVZCUTFJc1VVRkJVU3hGUVVOU0xFMUJRVTBzUlVGRFRpeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRk5CUVZNc1JVRkRWQ3hsUVVGbExFVkJRMllzVFVGQlRTeEZRVU5PTEZsQlFWa3NSVUZEV2l4RlFVRkZMRWRCUTBnc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTnFReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MR2REUVVGblF5eERRVUZETzBGQlEycEZMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzZFVKQlFXOUNPMEZCU1RsRExFOUJRVThzUlVGRFRDeExRVUZMTEVWQlJVd3NWVUZCVlN4RlFVTldMRkZCUVZFc1JVRkRVaXhSUVVGUkxFVkJRMUlzU1VGQlNTeEZRVU5LTEZsQlFWa3NSMEZEWWl4TlFVRk5MSE5DUVVGelFpeERRVUZETzBGQlJUbENMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzVFVGQlRTeHRRa0ZCYlVJc1EwRkJRenRCUVVWcVJDdzRRa0ZCTmtJN1FVRkhOMEk3T3pzN1IwRkpSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlF6RkNMRkZCUVRaRE8wbEJSVGRETEVsQlFVa3NRMEZCUXl4UlFVRlJPMUZCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGFFTXNTVUZCU1N4UFFVRlBMRkZCUVZFc1MwRkJTeXhSUVVGUk8xRkJRVVVzVDBGQlR5eFJRVUZSTEVOQlFVTTdTVUZEYkVRc1QwRkJUeXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdRVUZETjBJc1EwRkJRenRCUVVWRU96czdPenM3T3pzN096czdPenM3UjBGbFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4TFFVRkxPMGxCUTI1Q0xFOUJRVThzVlVGRFRDeE5RVUZYTEVWQlExZ3NWMEZCYlVJc1JVRkRia0lzVlVGQk9FSTdVVUZGT1VJc1RVRkJUU3hqUVVGakxFZEJRVWNzVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVVjRReXhWUVVGVkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NWMEZGZEVJc1IwRkJSeXhKUVVGWE8xbEJSV1FzVFVGQlRTeEhRVUZITEVkQlFXTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJReTlDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZGTlVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzVFVGQlR5eEpRVUUwUWl4RFFVTm9SQ3hwUWtGQmFVSXNRMEZEYkVJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVVZZTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVjZReXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0WlFVTnFSQ3hEUVVGRE8xbEJSVVFzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU4wUWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExEWkNRVUUyUWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU40UlN4RFFVRkRPMWxCUlVRc1NVRkJTU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SlFVRkpMRkZCUVZFc1JVRkJSU3hEUVVGRE8yZENRVU5vUXl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMRGhDUVVFNFFpeFhRVUZYTEdWQlFXVXNRMEZEZWtRc1EwRkJRenRaUVVOS0xFTkJRVU03V1VGRlJDeFBRVUZQTEUxQlFVMHNZMEZCWXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYUVRc1EwRkJReXhEUVVGRE8xRkJSVVlzVDBGQlR5eFZRVUZWTEVOQlFVTTdTVUZEY0VJc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc1pVRkJaU3hEUVUxdVF5eFBRVUZ4UWl4RlFVTnlRaXhKUVVGUExFVkJRMUFzUjBGQldTeEZRVU5hTEV0QlFWRTdTVUZGVWl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzVDBGQll5eERRVUZETzBsQlJXaERMRTFCUVUwc2RVSkJRWFZDTEVkQlF6TkNMRTlCUVU4c1EwRkJReXhqUVVGakxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hMUVVGTExFTkJRVU03U1VGRk4wUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdTVUZEZUVNc1NVRkJTU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTXhRaXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZEYWtJc2QwSkJRWGRDTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hMUVVGTExIVkRRVUYxUXl4MVFrRkJkVUlzUlVGQlJTeERRVU01Unl4RFFVRkRPMGxCUlVZc1NVRkJTU3gxUWtGQmRVSTdVVUZCUlN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVVnlSU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRlZCUTNwQ0xFMUJRVk1zUlVGRFZDeFhRVUZ0UWl4RlFVTnVRaXhMUVVFclFqdFJRVVV2UWl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVTdXVUZEZWtNc1ZVRkJWU3hGUVVGRkxFbEJRVWs3V1VGRGFFSXNVVUZCVVN4RlFVRkZMRXRCUVVzN1dVRkRaaXhaUVVGWkxFVkJRVVVzU1VGQlNUdFpRVU5zUWl4TFFVRkxMRVZCUVVVc1MwRkJTenRUUVVOaUxFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTXNRMEZCUXp0SlFVVkdMR3RDUVVGclFpeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRmhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGJFUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hQUVVGUE8wbEJRM0pDTEZOQlFWTXNUMEZCVHp0UlFVTmtMRTlCUVU4c1ZVRkJWU3hIUVVGUkxFVkJRVVVzVTBGQlpUdFpRVU40UXl4UFFVRlBMRXRCUVVzc1EwRkRWaXhSUVVGUkxFVkJRVVVzUlVGRFZpeFRRVUZUTEVWQlFVVXNSVUZEV0N4UlFVRlJMRVZCUVVVc1JVRkRWaXhSUVVGUkxFTkJRVU1zWlVGQlpTeERRVUZETEVWQlEzcENMRmxCUVZrc1EwRkRWaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVU01UkN4VFFVRlRMRU5CUTFZc1EwRkRSaXhEUVVGRExFZEJRVWNzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTndRaXhEUVVGRExFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNUMEZCVHl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTTdVMEZETlVNc1RVRkJUU3hEUVVGRE8xRkJRMDRzVTBGQlV5eEZRVUZGTEU5QlFVODdVVUZEYkVJc1NVRkJTU3hGUVVGRkxFVkJRVVU3UzBGRFZDeERRVUZETzFOQlEwUXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4eFFrRkJjVUlzUTBGTmVrTXNUMEZCY1VJc1JVRkRja0lzU1VGQlR5eEZRVU5RTEVkQlFWa3NSVUZEV2l4TFFVRlJPMGxCUlZJc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEU5QlFXTXNRMEZCUXp0SlFVTm9ReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRemxDTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1lVRkJZVHRKUVVNelFpeFRRVUZUTEdGQlFXRTdVVUZEY0VJc1QwRkJUeXhWUVVGVkxFZEJRVkVzUlVGQlJTeFRRVUZsTzFsQlEzaERMRTlCUVU4c1MwRkJTeXhEUVVOV0xGRkJRVkVzUlVGQlJTeEZRVU5XTEZGQlFWRXNSVUZCUlN4RlFVTldMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RlFVTXZRaXhSUVVGUkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1JVRkRMMElzV1VGQldTeERRVU5XTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUTFZc1pVRkJaU3hEUVVGRExFMUJRVTBzUlVGRGRFSXNVMEZCVXl4RlFVTlVMR1ZCUVdVc1EwRkJReXhqUVVGakxFTkJReTlDTEVWQlEwUXNVMEZCVXl4RFFVTldMRU5CUTBZc1EwRkJReXhIUVVGSExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEY0VJc1EwRkJReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEU5QlFVOHNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhsUVVGbExFTkJRVU1zWTBGQll5eERRVUZETzFOQlEyeEVMRTFCUVUwc1EwRkJRenRSUVVOT0xGTkJRVk1zUlVGQlJTeGhRVUZoTzFGQlEzaENMRWxCUVVrc1JVRkJSU3hGUVVGRk8wdEJRMVFzUTBGQlF6dFRRVU5FTEV0QlFVc3NSVUZCUlN4RFFVRkRPMEZCUTJJc1EwRkJRenRCUVZWRUxFMUJRVTBzUTBGQlF5eExRVUZMTEZWQlFWVXNhMEpCUVd0Q0xFTkJRM1JETEV0QlFWRXNSVUZEVWl4UlFVRnBSQ3hGUVVOcVJDeEhRVUZwUXp0SlFVVnFReXhKUVVGSkxGVkJRVlVzUjBGQk5FTXNVVUZCVVN4RFFVRkRPMGxCUTI1RkxFbEJRVWtzVDBGQlR5eFZRVUZWTEV0QlFVc3NVVUZCVVN4RlFVRkZMRU5CUVVNN1VVRkRia01zU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4TFFVRkxMRWRCUTFRc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMnhGTEVsQlFVa3NVVUZCVVN4SlFVRkpMRTlCUVU4c1VVRkJVU3hMUVVGTExGVkJRVlU3WjBKQlF6VkRMRlZCUVZVc1IwRkJSeXhOUVVGTkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMjVFTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xbEJRM0JDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc05rTkJRVFpETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkROVVVzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFOUJRVThzVlVGQlZTeExRVUZMTEZGQlFWRTdVVUZETDBNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNOa0pCUVRaQ0xFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNSRUxFTkJRVU03U1VGRFNpeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4dFFrRkJiVUlzUTBGTGRrTXNUMEZCY1VNc1JVRkRja01zU1VGQmIwSXNSVUZEY0VJc1IwRkJXU3hGUVVOYUxFdEJRVkU3U1VGRlVpeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MR3RDUVVGclFpeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6TkZMRTFCUVUwc1UwRkJVeXhIUVVGSExFOUJRV2RETEVOQlFVTTdTVUZEYmtRc1RVRkJUU3hYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETzBsQlF6RkNMRGhHUVVFNFJqdEpRVU01Uml4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRV1VzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnlReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEd0Q1FVRjVRaXhGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZETzBsQlEzSkVMRWxCUVVrc1EwRkJRenRSUVVOSUxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUTNoQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkhMRWxCUVZrc1EwRkJReXhWUVVGVkxFVkJRVVU3V1VGRE1VTXNUVUZCVFN4RlFVRkZMRWxCUVVrN1dVRkRXaXhuUWtGQlowSXNSVUZCUlN4VlFVRlZPMWxCUXpWQ0xHZENRVUZuUWl4RlFVRkZMRWxCUVVrN1dVRkRkRUlzWTBGQll5eEZRVUZGTEVsQlFVazdVMEZEWkN4RFFVRkRMRU5CUTFZc1EwRkJRenRSUVVOR0xFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZGtRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEycENMR05CUVdNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJWeXhMUVVGTExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGRGJFZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1dVRkJVeXhEUVVGRE8xRkJRMVFzY1VOQlFYRkRPMUZCUTNKRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCWlN4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRekZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc2EwSkJRWGxDTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1NVRkRkRVFzUTBGQlF6dEJRVU5JTEVOQlFVTTdRVUZGUkN4TlFVRk5MRU5CUVVNc1MwRkJTeXhWUVVGVkxHMUNRVUZ0UWl4RFFVdDJReXhQUVVGeFF5eEZRVU55UXl4SlFVRnZRaXhGUVVOd1FpeEhRVUZaTEVWQlExb3NTMEZCVVR0SlFVVlNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCWjBNc1EwRkJRenRKUVVOdVJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4TFFVRkxMRU5CUVVNN1NVRkRNVUlzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRmxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNrTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhyUWtGQmVVSXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVOeVJDeEpRVUZKTEVOQlFVTTdVVUZEU0N4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVU40UWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJ5eEpRVUZaTEVOQlFVTXNWVUZCVlN4RlFVRkZPMWxCUXpGRExFMUJRVTBzUlVGQlJTeEpRVUZKTzFsQlExb3NaMEpCUVdkQ0xFVkJRVVVzVlVGQlZUdFpRVU0xUWl4blFrRkJaMElzUlVGQlJTeEpRVUZKTzFsQlEzUkNMR05CUVdNc1JVRkJSU3hKUVVGSk8xbEJRM0JDTEhGQ1FVRnhRaXhGUVVGRkxFdEJRVXM3V1VGRE5VSXNZMEZCWXl4RlFVRkZMRXRCUVVzN1UwRkRaaXhEUVVGRExFTkJRMVlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEycENMR05CUVdNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdNc1MwRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVONFJpeERRVUZETzBsQlEwb3NRMEZCUXp0WlFVRlRMRU5CUVVNN1VVRkRWQ3hUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFXVXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVNeFF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMR3RDUVVGNVFpeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTNSRUxFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3h0UWtGQmJVSXNRMEZMZGtNc1QwRkJjVU1zUlVGRGNrTXNTVUZCYjBJc1JVRkRjRUlzUjBGQldTeEZRVU5hTEV0QlFWRTdTVUZGVWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpORkxFMUJRVTBzVTBGQlV5eEhRVUZITEU5QlFXZERMRU5CUVVNN1NVRkRia1FzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRmxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNrTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhyUWtGQmVVSXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVOeVJDeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVcxQ0xFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdTVUZETDBNc1NVRkJTU3hEUVVGRE8xRkJRMGdzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVmtzUTBGQlF6dFJRVU14UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEZWtJc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZEZUVJc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVY3NTVUZCV1N4RFFVRkRMRlZCUVZVc1JVRkJSVHRaUVVNeFF5eFZRVUZWTEVWQlFVVXNWVUZCVlR0WlFVTjBRaXhOUVVGTkxFVkJRVVVzU1VGQlNUdFpRVU5hTEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWs3V1VGRGRFSXNZMEZCWXl4RlFVRkZMRWxCUVVrN1UwRkRaQ3hEUVVGRExFTkJRMVlzUTBGQlF6dFJRVU5HTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zUTBGQlF6dFJRVUZETEUxQlFVMHNRMEZCUXp0WlFVTlFMR2RGUVVGblJUdFJRVU5zUlN4RFFVRkRPMUZCUTBRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEycENMR05CUVdNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlEyNUZMRU5CUVVNN1NVRkRTaXhEUVVGRE8xbEJRVk1zUTBGQlF6dFJRVU5VTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJaU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6RkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zYTBKQlFYbENMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGNFUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGdFFpeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTJoRUxFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3huUWtGQlowSXNRMEZMY0VNc1QwRkJjVU1zUlVGRGNrTXNTVUZCYjBJN1FVRkRjRUlzTmtSQlFUWkVPMEZCUXpkRUxFZEJRVms3UVVGRFdpdzJSRUZCTmtRN1FVRkROMFFzUzBGQlVUdEpRVVZTTEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkRkRUlzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVhkRExFTkJReTlFTEVOQlFVTTdTVUZEUml4SlFVRkpMRU5CUVVNc1IwRkJSenRSUVVGRkxFOUJRVTg3U1VGRGFrSXNTVUZCU1N4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRiRVVzVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVNeFFpeG5Ra0ZCWjBJc1IwRkJSeXcwUTBGQk5FTXNRMEZEYUVVc1EwRkJRenRKUVVOS0xFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3hwUWtGQmFVSXNRMEZMY2tNc1QwRkJjVU1zUlVGRGNrTXNTVUZCYjBJc1JVRkRjRUlzUjBGQldTeEZRVU5hTEV0QlFWRTdTVUZGVWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRM1JDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGM1F5eERRVU12UkN4RFFVRkRPMGxCUlVZc1NVRkJTU3hEUVVGRExFZEJRVWM3VVVGQlJTeFBRVUZQTzBsQlJXcENMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCWjBNc1EwRkJRenRKUVVOdVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRsRkxFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdVVUZEV2l4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRGFrSXNiMEpCUVc5Q0xFZEJRVWNzWjBSQlFXZEVMRlZCUVZVc1JVRkJSU3hEUVVOd1JpeERRVUZETzFGQlEwWXNkMFJCUVhkRU8xRkJRM2hFTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJaU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzSkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zYTBKQlFYbENMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGNrUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOMlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJRMnBETEVOQlFVTTdTVUZEUkN3d1JVRkJNRVU3UVVGRE5VVXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hOUVVGTkxFTkJRM0JDTEZWQlFYVkRMRVZCUTNaRExHZENRVUV5UXl4RlFVTXpReXhUUVVFeVFqdEpRVVV6UWl4TlFVRk5MR1ZCUVdVc1IwRkRia0lzVDBGQlR5eG5Ra0ZCWjBJc1MwRkJTeXhSUVVGUkxFbEJRVWtzVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03U1VGRGNFVXNUVUZCVFN4TFFVRkxMRWRCUVVjc1pVRkJaVHRSUVVNelFpeERRVUZETEVOQlFVTXNVMEZCVXp0UlFVTllMRU5CUVVNc1EwRkJSU3huUWtGQmRVTXNRMEZCUXp0SlFVTTNReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eGxRVUZsTzFGQlF6RkNMRU5CUVVNc1EwRkJSU3huUWtGQmIwTTdVVUZEZGtNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVVZrTEZOQlFWTXNUVUZCVFN4RFFVTmlMRkZCUVhGRExFVkJRM0pETEV0QlFXRXNSVUZEWWl4VFFVRXlRanRSUVVVelFpeE5RVUZOTEVsQlFVa3NSMEZCYlVJN1dVRkRNMElzVTBGQlV5eEZRVUZGTEZOQlFWTTdXVUZEY0VJc1MwRkJTeXhGUVVGRkxFdEJRVXM3V1VGRFdpeFJRVUZSTEVWQlFVVXNVVUZCVVR0VFFVTnVRaXhEUVVGRE8xRkJRMFlzVDBGQlR5eExRVUZMTEVOQlExWXNVVUZCVVN4RFFVTk9MRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNSVUZCUlN4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRelZFTEVsQlFVa3NRMEZEVER0UlFVTkVMREpGUVVFeVJUdFJRVU16UlN4TlFVRk5MRU5CUVVNc2FVSkJRWGRDTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEzaEVMRFJFUVVFMFJEdFJRVU0xUkN4UlFVRlJMRU5CUVVNc1owSkJRWFZDTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlEzcEVMRkZCUVZFc1EwRkJReXhuUWtGQmRVSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZEZWtRc1VVRkJVU3hEUVVGRExHZENRVUYxUWl4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTjZSQ3c0UlVGQk9FVTdVVUZET1VVc1VVRkJVU3hEUVVGRExHMUNRVUV3UWl4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVTTNSQ3hSUVVGUkxFTkJRVU1zYlVKQlFUQkNMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUXpkRUxGRkJRVkVzUTBGQlF5eHRRa0ZCTUVJc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkRPVVFzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4UFFVRlBMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTXhReXhOUVVGTkxFTkJRVU03VVVGRFRpeFRRVUZUTEVWQlFVVXNUVUZCVFR0UlFVTnFRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJRenRMUVVOb1F5eERRVUZETzFOQlEwUXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJVVVFzVFVGQlRTeERRVUZETEUxQlFVMHNaVUZCWlN4SFFVRjFRaXhEUVVOcVJDeExRVUY1UWl4RlFVTjZRaXhMUVVGakxFVkJRMlFzUlVGQlJUdEpRVU5HTEUxQlFVMHNUMEZCVHl4SFFVTllMRXRCUVVzc1NVRkJTU3hEUVVGRExFOUJRVThzUzBGQlN5eExRVUZMTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRE5VVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhMUVVGTExFdEJRVXNzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTTdTVUZEZGtVc1NVRkJTU3hEUVVGRExFOUJRVTg3VVVGRFZpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXhUUVVGVExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0R1FVRnJSaXhEUVVOMlJ5eERRVUZETzBsQlEwb3NUMEZCVHl4SFFVRkhMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8wRkJReTlGTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1ZVRkJWU3h0UWtGQmJVSXNRMEZCUXl4VFFVRnBRanRKUVVOdVJDeFBRVUZQTEVOQlFXdENMRXRCUVhsQ0xFVkJRVVVzUzBGQll5eEZRVUZGTEVWQlFVVTdVVUZEY0VVc1RVRkJUU3hQUVVGUExFZEJRMWdzUzBGQlN5eEpRVUZKTEVOQlFVTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTTFSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEV0QlFVc3NTMEZCU3l4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJRenRSUVVOMlJTeEpRVUZKTEVOQlFVTXNUMEZCVHp0WlFVTldMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRM0pDTEZOQlFWTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwWkJRV3RHTEVOQlEzWkhMRU5CUVVNN1VVRkRTaXhQUVVGUExFZEJRVWNzVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJRenRKUVVNdlJDeERRVUZETEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRc1RVRkJUU3hEUVVGRExFMUJRVTBzZVVKQlFYbENMRWRCUVhWQ0xFTkJRek5FTEV0QlFYbENMRVZCUTNwQ0xFdEJRV01zUlVGRFpDeEZRVUZGTzBsQlEwWXNUVUZCVFN4UFFVRlBMRWRCUTFnc1MwRkJTeXhKUVVGSkxFTkJRVU1zVDBGQlR5eExRVUZMTEV0QlFVc3NWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEpRVU0xUlN4SlFVRkpMRU5CUVVNc1QwRkJUenRSUVVOV0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMRk5CUVZNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEd0R1FVRnJSaXhEUVVOc1NDeERRVUZETzBsQlEwb3NUMEZCVHl4TFFVRkxMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1FVRkRka1FzUTBGQlF5eERRVUZETzBGQlRVWTdPenM3UjBGSlJ6dEJRVU5JTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGxEUVVGNVF5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVVTFSQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUTI1RExFdEJRVkVzUlVGRFVpeFhRVUZ4UWl4RlFVTnlRaXhIUVVGUk8wbEJSVklzZDBWQlFYZEZPMGxCUTNoRkxHbEZRVUZwUlR0SlFVTnFSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRNVUlzUjBGQk5rSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03U1VGRGRrUXNRMEZCUXp0SlFVVkVMREpHUVVFeVJqdEpRVU16Uml4clJrRkJhMFk3U1VGRGJFWXNiVVpCUVcxR08wbEJRMjVHTEdkRlFVRm5SVHRKUVVOb1JTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEZkQlFWY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOcVJDeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFUWkNMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemxFTEVkQlFVY3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeERRVUZETzFGQlF6VkNMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wRkJRMGdzUTBGQlF6dEJRVVZFTEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc1owSkJRV2RDTEVOQlEzQkRMRXRCUVhGQ0xFVkJRM0pDTEVkQlFYVkNMRVZCUTNaQ0xFZEJRVEJDTzBsQlJURkNMRWxCUVVrc1EwRkJReXhIUVVGSE8xRkJRVVVzVDBGQlR6dEpRVU5xUWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpORExFbEJRVWtzUTBGQlF5eFZRVUZWTzFGQlFVVXNUMEZCVHp0SlFVTjRRaXhOUVVGTkxFOUJRVThzUjBGRFdDeEhRVUZITEV0QlFVc3NWVUZCVlN4RFFVRkRMRXRCUVVzN1VVRkRlRUlzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4SlFVRkpMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjBSQ3hKUVVGSkxFTkJRVU1zVDBGQlR6dFJRVUZGTEU5QlFVODdTVUZEY2tJc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeHJRa0ZCYTBJc1EwRkRla01zU1VGQlNTeExRVUZMTEVWQlFVVXNSVUZEV0N4VlFVRlZMRU5CUVVNc1VVRkJVU3hGUVVOdVFpeEhRVUZITEVOQlEwb3NRMEZCUXp0SlFVTkdMR3RGUVVGclJUdEpRVU5zUlN4eFJVRkJjVVU3U1VGRGNrVXNhVVZCUVdsRk8wbEJRMnBGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1pVRkJaU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzBsQlEzQkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRGVrTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOcVF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVdVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU12UWl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHdENRVUY1UWl4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJReTlETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRE0wSXNRMEZCUXp0QlFVVkVMRk5CUVZNc2JVSkJRVzFDTEVOQlFXdENMRXRCUVhGQ08wbEJRMnBGTEUxQlFVMHNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTNaRUxFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE0wSXNUVUZCVFN4aFFVRmhMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU42UlN4TlFVRk5MRmRCUVZjc1IwRkRaaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFWa3NSVUZCUlN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRKUVVNeFJTeE5RVUZOTEZWQlFWVXNSMEZEWkN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVmtzUlVGQlJTeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVVjZSU3hQUVVGUExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSVHRSUVVNNVFpeEpRVUZKTEVsQlFVa3NTMEZCU3l4RlFVRkZPMWxCUVVVc1QwRkJUeXhMUVVGTExFTkJRVU03VVVGRE9VSXNTVUZCU1N4SlFVRkpMRWxCUVVrc1lVRkJZVHRaUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFGQlEzaERMRWxCUVVrc1NVRkJTU3hKUVVGSkxGZEJRVmM3V1VGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVTjBReXhKUVVGSkxFbEJRVWtzU1VGQlNTeFZRVUZWTzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRja01zVDBGQlR5eEpRVUZKTEVOQlFVTTdTVUZEWkN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU03UVVGRlJEczdPenM3T3pzN096dEhRVlZITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3cwUWtGQk5FSXNRMEZGYUVRc1QwRkJLMElzUlVGREwwSXNTVUZCZFVRc1JVRkRka1FzU1VGQk1rSXNSVUZETTBJc1MwRkJVVHRKUVVWU0xFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlEyaENMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZEVWl4RFFVRkRPMGxCUlRsQ0xFMUJRVTBzUTBGQlF5eEhRVU5NTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNTVUZCU1N4TFFVRkxPMUZCUTNoRUxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVONlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMGxCUldoQ0xFMUJRVTBzUjBGQlJ5eEhRVU5RTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGY2tVc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlExUXNNRVZCUVRCRk8xRkJRekZGTEU5QlFVODdTVUZEVkN4RFFVRkRPMGxCUlVRc1RVRkJUU3hYUVVGWExFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEycERMRXRCUVVzc1RVRkJUU3hSUVVGUkxFbEJRVWtzVTBGQlV5eEZRVUZGTEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRE8xRkJRMmhFTEUxQlFVMHNWVUZCVlN4SFFVTmtMRTlCUVU4c2EwSkJRV3RDTEV0QlFVc3NVVUZCVVR0WlFVTndReXhEUVVGRExFTkJRVU1zYTBKQlFXdENPMWxCUTNCQ0xFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpsRExFbEJRVWtzVlVGQlZTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzQkVMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZETDBJc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRFJDeHhRa0ZCY1VJc1EwRkJReXhMUVVGTExFVkJRVVVzVjBGQlZ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUlc1RUxDdEZRVUVyUlR0SlFVTXZSU3gzUlVGQmQwVTdTVUZEZUVVc1JVRkJSVHRKUVVOR0xESkZRVUV5UlR0SlFVTXpSU3hyUmtGQmEwWTdTVUZEYkVZc2EwTkJRV3RETzBsQlEyeERMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGblFpeERRVUZETzBsQlEzUkZMRTFCUVUwc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVd0Q0xFTkJRVmtzUTBGQlF6dEpRVU0xUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVWc1JDeE5RVUZOTEU5QlFVOHNSMEZCU1N4TFFVRmhMRU5CUVVNc1MwRkJXU3hEUVVGRExFTkJRVU03U1VGRE4wTXNUVUZCVFN4dFFrRkJiVUlzUjBGRGRrSXNUMEZCVHl4UFFVRlBMRXRCUVVzc1YwRkJWeXhKUVVGSkxFOUJRVThzUzBGQlN5eEpRVUZKTEVOQlFVTTdTVUZGY2tRc2IwWkJRVzlHTzBsQlEyNUdMRTlCUVdVc1EwRkJReXh6UWtGQmMwSXNRMEZEY2tNc1UwRkJVeXhGUVVOU0xFOUJRV1VzUTBGQlF5eHBRa0ZCYVVJc1JVRkRiRU1zVjBGQlZ5eERRVU5hTEVOQlFVTTdTVUZGUml4dFJrRkJiVVk3U1VGRGJrWXNLMFZCUVN0Rk8wbEJReTlGTEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVVzUTBGQlF6dFJRVU40UWl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzcENMRTFCUVUwc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJTeFBRVUZsTEVOQlFVTXNjMEpCUVhOQ0xFTkJRM0pETEZkQlFWY3NSVUZEVml4UFFVRmxMRU5CUVVNc2FVSkJRV2xDTEVWQlEyeERMRmRCUVZjc1EwRkRXaXhEUVVGRE8xRkJRMG9zUTBGQlF6dEpRVU5JTEVOQlFVTTdRVUZEU0N4RFFVRkRPMEZCUlVRc1RVRkJUU3hEUVVGRExFdEJRVXNzVlVGQlZTeHpRa0ZCYzBJc1EwRkZNVU1zVDBGQkswSXNSVUZETDBJc1NVRkJkVVFzUlVGRGRrUXNTVUZCTWtJc1JVRkRNMElzUzBGQlVUdEpRVVZTTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUTJoQ0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkRVaXhEUVVGRE8wbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRm5RaXhEUVVGRE8wbEJRM1JGTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhUUVVGVExFTkJRVU1zVFVGQlRUdFJRVU4wUXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpeHRSRUZCYlVRc1EwRkRjRVFzUTBGQlF6dEpRVVZLTEUxQlFVMHNSMEZCUnl4SFFVTlFMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETzFGQlEzQkNMRmxCUVZrc1EwRkRWaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCZDBNc1EwRkRMMFFzUTBGQlF6dEpRVU5LTEVsQlFVa3NRMEZCUXl4SFFVRkhPMUZCUTA0c1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGRGRrSXNPRU5CUVRoRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNaRkxFTkJRVU03U1VGRlNpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNN1NVRkRjRVFzVFVGQlRTeFZRVUZWTEVkQlEyUXNUMEZCVHl4clFrRkJhMElzUzBGQlN5eFJRVUZSTzFGQlEzQkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSTdVVUZEY0VJc1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZGT1VNc2JVUkJRVzFFTzBsQlEyNUVMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRla0lzVFVGQlRTeERRVUZETEVkQlEwd3NUMEZCVHl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eExRVUZMTEZGQlFWRTdXVUZETVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhPMWxCUXpGQ0xFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRVFzU1VGQlNTeERRVUZETEV0QlFVc3NWVUZCVlR0WlFVTnNRaXhOUVVGTkxFbEJRVWtzWjBKQlFXZENMRU5CUTNoQ0xIZERRVUYzUXl4RFFVRkRMRTlCUVU4c1ZVRkJWU3hGUVVGRkxFTkJRemRFTEVOQlFVTTdTVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWSUxFMUJRVTBzVlVGQlZTeEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1JFTEcxR1FVRnRSanRKUVVOc1JpeFBRVUZwUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdRVUZEY2tVc1EwRkJRenRCUVVWRUxFMUJRVTBzUTBGQlF5eExRVUZMTEZWQlFWVXNiMEpCUVc5Q0xFTkJSWGhETEU5QlFUWkNMRVZCUXpkQ0xFbEJRWFZFTEVWQlEzWkVMRWxCUVRKQ0xFVkJRek5DTEV0QlFWRTdTVUZGVWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVOb1FpeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRMUlzUTBGQlF6dEpRVU01UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJaMElzUTBGQlF6dEpRVU4wUlN4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFdEJRVXNzVTBGQlV5eERRVUZETEUxQlFVMDdVVUZEZEVNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNiVVJCUVcxRUxFTkJRM0JFTEVOQlFVTTdTVUZGU2l4TlFVRk5MRU5CUVVNc1IwRkRUQ3hQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEhsQ1FVRjVRaXhEUVVGRExFbEJRVWtzUzBGQlN6dFJRVU40UkN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExHTkJRV01zUTBGQlF5eGxRVUZsTEVOQlFVTTdVVUZEZWtNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVVZvUWl4TlFVRk5MRWRCUVVjc1IwRkRVQ3hEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEVsQlFVa3NRMEZCUXl4SFFVRkhPMUZCUTA0c1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGRGRrSXNPRU5CUVRoRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNaRkxFTkJRVU03U1VGRlNpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNN1NVRkRjRVFzVFVGQlRTeFZRVUZWTEVkQlEyUXNUMEZCVHl4clFrRkJhMElzUzBGQlN5eFJRVUZSTzFGQlEzQkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSTdVVUZEY0VJc1EwRkJReXhEUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVVnVSQ3hQUVVGcFF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVNeFJDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3h6UWtGQmMwSXNRMEZGTVVNc1QwRkJLMElzUlVGREwwSXNTVUZCZFVRc1JVRkRka1FzUjBGQk1FSXNSVUZETVVJc1MwRkJVVHRCUVVOU0xEWkVRVUUyUkR0QlFVTTNSQ3hSUVVGWE8wbEJSVmdzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZEYUVJc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVTlNMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFXZENMRU5CUVVNN1NVRkRia1VzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4TFFVRkxMRk5CUVZNc1EwRkJReXhOUVVGTk8xRkJRM1JETEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xHMUVRVUZ0UkN4RFFVTndSQ3hEUVVGRE8wbEJSVW9zVFVGQlRTeEhRVUZITEVkQlExQXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGNFSXNXVUZCV1N4RFFVTldMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUYzUXl4RFFVTXZSQ3hEUVVGRE8wbEJRMG9zU1VGQlNTeERRVUZETEVkQlFVYzdVVUZEVGl4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVOMlFpdzRRMEZCT0VNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZEZGtVc1EwRkJRenRKUVVWS0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXp0SlFVTndSQ3hOUVVGTkxGVkJRVlVzUjBGRFpDeFBRVUZQTEd0Q1FVRnJRaXhMUVVGTExGRkJRVkU3VVVGRGNFTXNRMEZCUXl4RFFVRkRMR3RDUVVGclFqdFJRVU53UWl4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVVU1UXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUTBGQlF5eEhRVU5NTEU5QlFVOHNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUzBGQlN5eFJRVUZSTzFsQlF6RkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnp0WlFVTXhRaXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRUxFbEJRVWtzUTBGQlF5eExRVUZMTEZWQlFWVTdXVUZEYkVJc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4RFFVTjRRaXgzUTBGQmQwTXNRMEZCUXl4UFFVRlBMRlZCUVZVc1JVRkJSU3hEUVVNM1JDeERRVUZETzBsQlEwNHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZTQ3hOUVVGTkxGVkJRVlVzUjBGQlNTeFJRVUYzUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRrVXNhVVpCUVdsR08wbEJRMmhHTEU5QlFXbERMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0QlFVTnlSU3hEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4elFrRkJjMElzUTBGTk1VTXNUMEZCY1VJc1JVRkRja0lzU1VGQllTeEZRVU5pTEVkQlFXZENMRVZCUTJoQ0xFdEJRVkU3U1VGRlVpeE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCVVN4RFFVRkRPMGxCUXk5RUxFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZuUWl4RFFVRkRPMGxCUTI1RkxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4VFFVRlRMRU5CUVVNc1RVRkJUVHRSUVVOMFF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh0UkVGQmJVUXNRMEZEY0VRc1EwRkJRenRKUVVWS0xFMUJRVTBzUTBGQlF5eEhRVU5NTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNTVUZCU1N4TFFVRkxPMUZCUTNoRUxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVONlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMGxCUldoQ0xFMUJRVTBzUjBGQlJ5eEhRVU5RTEVOQlFVTTdVVUZEUkN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU53UWl4WlFVRlpMRU5CUTFZc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFYZERMRU5CUXk5RUxFTkJRVU03U1VGRFNpeEpRVUZKTEVOQlFVTXNSMEZCUnp0UlFVTk9MRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRM1pDTERoRFFVRTRReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVTjJSU3hEUVVGRE8wbEJSVW9zVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRPMGxCUTNCRUxFMUJRVTBzVlVGQlZTeEhRVU5rTEU5QlFVOHNhMEpCUVd0Q0xFdEJRVXNzVVVGQlVUdFJRVU53UXl4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTzFGQlEzQkNMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlJUZERMRTlCUVdsRExFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeFRRVUZUTEZWQlFWVXNRMEZEYWtJc1ZVRkJkVU1zUlVGRGRrTXNTVUZCYzBRc1JVRkRkRVFzVFVGQmMwTTdTVUZGZEVNc1QwRkJUeXhUUVVGVExHVkJRV1VzUTBGQlF5eE5RVUZqTEVWQlFVVXNWMEZCYVVJN1VVRkRMMFFzVTBGQlV5eGhRVUZoTEVOQlFVTXNUVUZCWXl4RlFVRkZMRmRCUVdsQ08xbEJRM1JFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUXpWRExFMUJRVTBzVFVGQlRTeEhRVUZuUWl4TlFVRk5MRU5CUVVNc1YwRkJNRUlzUTBGQlF6dFpRVVU1UkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFYRkNMRVZCUVVVc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlF6VkVMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGNFUXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU0xUWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTndReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFYRkNMRVZCUVVVc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJTOURMRTFCUVUwc1ZVRkJWU3hIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCY1VJc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYmtVc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTJoRkxHbENRVUZwUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU5zUXl4VlFVRlZMRU5CUVVNc1YwRkJWeXhIUVVGSExFTkJRVU1zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xbEJRMmhFTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJjVUlzUlVGQlJTeEpRVUZKTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkZkRVFzVFVGQlRTeGhRVUZoTEVkQlEycENMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQmNVSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlF6bEVMRTFCUVUwc2IwSkJRVzlDTEVkQlFVYzdaMEpCUXpOQ0xFZEJRVWNzWVVGQllUdG5Ra0ZEYUVJc1EwRkJReXhYUVVGclFpeERRVUZETEVWQlFVVXNSVUZCUlR0aFFVTjZRaXhEUVVGRE8xbEJRMFlzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZEVml4TlFVRnhRaXhGUVVOeVFpeE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVTm9RaXh2UWtGQmIwSXNRMEZEY2tJc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeE5RVUZOTEVsQlFVa3NSMEZCVlN4RlFVRkZMRU5CUVVNN1VVRkRka0lzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTJwQ0xDdENRVUVyUWp0WlFVTXZRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVhGQ0xFTkJRVU1zUTBGQlF6dFpRVU5xUlN4VlFVRlZMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTNoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03YjBKQlEzcENMRlZCUVZVc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVVXNUVUZCWXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBRc1EwRkJRenRaUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwZ3NUMEZCVHl4TlFVRk5MRU5CUVVNN1VVRkRhRUlzUTBGQlF6dGhRVUZOTEVOQlFVTTdXVUZEVGl4TlFVRk5MRk5CUVZNc1IwRkRZaXhQUVVGUExGVkJRVlVzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTNSRkxDdEZRVUVyUlR0WlFVTXZSU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRWRCUVVjc1UwRkJVeXhWUVVGVkxFTkJRVU03V1VGRGFFUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1IwRkJSeXhUUVVGVExFOUJRVThzUTBGQlF6dFpRVU14UXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVWQlFVVXNWMEZCVnl4RlFVRkZMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRM2hFTEUxQlFVMHNkMEpCUVhkQ0xFZEJRVWM3WjBKQlF5OUNMRkZCUVZFc1JVRkJSU3g1UTBGQmVVTTdaMEpCUTI1RUxFdEJRVXNzUlVGQlJTeG5Ra0ZCWjBJN1lVRkRlRUlzUTBGQlF6dFpRVU5HTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUTFBc1NVRkJTU3hGUVVGRkxFVkJRMDRzVTBGQlV5eEZRVUZGTEVWQlExZ3NZVUZCWVR0WlFVTmlMSEZGUVVGeFJUdFpRVU55UlN3NFJVRkJPRVU3V1VGRE9VVXNORVZCUVRSRk8xbEJRelZGTEVWQlFVVXNRMEZEUVN4WlFVRlpMRU5CUVVNc1IwRkJSeXhGUVVOb1FpdzBRa0ZCYlVNc1JVRkRia01zYlVKQlFXMUNMRVZCUTI1Q0xIZENRVUYzUWl4RFFVTjZRanRaUVVORUxEWkVRVUUyUkR0WlFVTTNSQ3hSUVVGUkxFTkJRMDRzYzBKQlFYTkNMRVZCUTNSQ0xFVkJRVVVzVjBGQlZ5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVTXpRanRuUWtGRFJTeFJRVUZSTEVWQlFVVXNSVUZCUlR0blFrRkRXaXhMUVVGTExFVkJRVVVzWVVGQllUdGhRVU55UWl4RFFVTkdMRVZCUTBRc1RVRkJUU3hEUVVOS0xHOUNRVUV5UWl4RlFVTXpRaXhGUVVGRkxGZEJRVmNzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZETTBJN1owSkJRMFVzVVVGQlVTeEZRVUZGTEVWQlFVVTdaMEpCUTFvc1MwRkJTeXhGUVVGRkxHRkJRV0U3WVVGRGNrSXNRMEZEUml4RlFVTkVMRkZCUVZFc1EwRkRUaXh6UWtGQk5rSXNSVUZETjBJc1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlF6TkNPMmRDUVVORkxGRkJRVkVzUlVGQlJTeEZRVUZGTzJkQ1FVTmFMRXRCUVVzc1JVRkJSU3hoUVVGaE8yRkJRM0pDTEVOQlEwWXNSVUZEUkN4UlFVRlJMRU5CUTA0c2MwSkJRVFpDTEVWQlF6ZENMRVZCUVVVc1YwRkJWeXhGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVU16UWp0blFrRkRSU3hSUVVGUkxFVkJRVVVzUlVGQlJUdG5Ra0ZEV2l4TFFVRkxMRVZCUVVVc1lVRkJZVHRoUVVOeVFpeERRVU5HTEVOQlEwWXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExFdEJRVXNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEpRVU0zUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEZkQlFWY3NRMEZEZWtJc1lVRkJNRU1zZVVKQlFYbENPMGxCUlc1RkxGTkJRVk1zVjBGQlZ5eERRVUZETEZWQlFYVkRPMUZCUXpGRUxFOUJRVThzVlVGQlZTeERRVUZETEZWQlFWVXNSVUZCUlN4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrUXNRMEZCUXp0SlFVVkVMRTlCUVU4c1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRPMU5CUXpORExFMUJRVTBzUTBGQlF6dFJRVU5PTEZOQlFWTXNSVUZCUlN4WFFVRlhPMUZCUTNSQ0xFbEJRVWtzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXp0TFFVTnVRaXhEUVVGRE8xTkJRMFFzUzBGQlN5eEZRVUZGTEVOQlFVTTdRVUZEWWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxGVkJRVlVzUTBGQlF5eFZRVUYxUXp0SlFVTm9SU3hUUVVGVExGVkJRVlVzUTBGQlF5eFZRVUYxUXp0UlFVTjZSQ3hQUVVGUExGVkJRVlVzUTBGQlF5eFZRVUZWTEVWQlFVVXNaVUZCWlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRM2hFTEVOQlFVTTdTVUZGUkN4UFFVRlBMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTXhReXhOUVVGTkxFTkJRVU03VVVGRFRpeFRRVUZUTEVWQlFVVXNWVUZCVlR0UlFVTnlRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTTdTMEZEYmtJc1EwRkJRenRUUVVORUxFdEJRVXNzUlVGQlJTeERRVUZETzBGQlEySXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXhjYmlBZ1VtVndieXhjYmlBZ1EyOXVkR1Y0ZEN4Y2JpQWdWVzV6ZFhCd2IzSjBaV1JGY25KdmNpeGNiaUFnVW1Wd2IzTnBkRzl5ZVN4Y2JpQWdRMjl1ZEdWNGRFOW1MRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lHZGxibVZ5WVhSbFpDeGNiaUFnU1c1MFpYSnVZV3hGY25KdmNpeGNiaUFnVG05MFJtOTFibVJGY25KdmNpeGNiaUFnYjI1RGNtVmhkR1VzWEc0Z0lHOXVSR1ZzWlhSbExGeHVJQ0J2YmxKbFlXUXNYRzRnSUc5dVZYQmtZWFJsTEZ4dUlDQnlaV0ZrYjI1c2VTeGNiaUFnZEhKaGJuTnBaVzUwTEZ4dUlDQldZV3hwWkdGMGFXOXVSWEp5YjNJc1hHNGdJRVJDUzJWNWN5eGNiaUFnUkVKUGNHVnlZWFJwYjI1ekxGeHVJQ0J2Yml4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5Qk5iMlJsYkN3Z2NtVnhkV2x5WldRZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyUmxZMjl5WVhSdmNpMTJZV3hwWkdGMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05OYjJSbGJFdGxlWE1nZlNCbWNtOXRJRndpTGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1EyOXVkR1Y0ZENCaGN5QklURU52Ym5SbGVIUWdmU0JtY205dElGd2labUZpY21sakxXTnZiblJ5WVdOMExXRndhVndpTzF4dWFXMXdiM0owSUhzZ1EyeHBaVzUwU1dSbGJuUnBkSGtnZlNCbWNtOXRJRndpWm1GaWNtbGpMWE5vYVcwdFlYQnBYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05GVWtNeU1FTnZiblJ5WVdOMElIMGdabkp2YlNCY0lpNHVMMk52Ym5SeVlXTjBjeTlsY21NeU1DOWxjbU15TUdOdmJuUnlZV04wWENJN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JoY0hCc2VTeGNiaUFnUTI5dWMzUnlkV04wYjNJc1hHNGdJRVJsWTI5eVlYUnBiMjRzWEc0Z0lHMWxkR0ZrWVhSaExGeHVJQ0JOWlhSaFpHRjBZU3hjYmlBZ2NISnZjQ3hjYmlBZ2NISnZjRTFsZEdGa1lYUmhMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwWnNZV2R6SUgwZ1puSnZiU0JjSWk0dmRIbHdaWE5jSWp0Y2JtbHRjRzl5ZENCN0lIUnZVR0Z6WTJGc1EyRnpaU0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Ykc5bloybHVaMXdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTI5dWRISmhZM1JHYkdGbmN5QjlJR1p5YjIwZ1hDSXVMaTlqYjI1MGNtRmpkSE12ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0JjSWk0dUwzTm9ZWEpsWkM5dmRtVnljbWxrWlhOY0lqdGNibWx0Y0c5eWRDQjdJSFI1Y0dVZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBJSDBnWm5KdmJTQmNJaTR1TDJOdmJuUnlZV04wY3k5RGIyNTBjbUZqZEVOdmJuUmxlSFJjSWp0Y2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlhoMGNtRmpkSE1nZEdobElFMVRVQ0JKUkNCbWNtOXRJR1ZwZEdobGNpQmhJSE4wY21sdVp5QnZjaUJEYkdsbGJuUkpaR1Z1ZEdsMGVTQnZZbXBsWTNSY2JpQXFJRUJ3WVhKaGJTQnBaR1Z1ZEdsMGVTQXRJRlJvWlNCcFpHVnVkR2wwZVNCMllXeDFaU0IzYUdsamFDQmpZVzRnWW1VZ1lTQnpkSEpwYm1jZ1RWTlFJRWxFSUc5eUlFTnNhV1Z1ZEVsa1pXNTBhWFI1SUc5aWFtVmpkRnh1SUNvZ1FISmxkSFZ5Ym5NZ1ZHaGxJRTFUVUNCSlJDQmhjeUJoSUhOMGNtbHVaeXdnYjNJZ2RXNWtaV1pwYm1Wa0lHbG1JRzV2ZENCaGRtRnBiR0ZpYkdWY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1Y0ZEhKaFkzUk5jM0JKWkNoY2JpQWdhV1JsYm5ScGRIazZJSE4wY21sdVp5QjhJRU5zYVdWdWRFbGtaVzUwYVhSNUlId2dkVzVrWldacGJtVmtYRzRwT2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0JwWmlBb0lXbGtaVzUwYVhSNUtTQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0JwWmlBb2RIbHdaVzltSUdsa1pXNTBhWFI1SUQwOVBTQmNJbk4wY21sdVoxd2lLU0J5WlhSMWNtNGdhV1JsYm5ScGRIazdYRzRnSUhKbGRIVnliaUJwWkdWdWRHbDBlUzVuWlhSTlUxQkpSQ2dwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRVJsWTI5eVlYUnZjaUJtYjNJZ2JXRnlhMmx1WnlCdFpYUm9iMlJ6SUhSb1lYUWdjbVZ4ZFdseVpTQnZkMjVsY25Ob2FYQWdZWFYwYUc5eWFYcGhkR2x2Ymk1Y2JpQXFJRU5vWldOcmN5QjBhR1VnYjNkdVpYSWdiMllnZEdobElIUnZhMlZ1SUdKbFptOXlaU0JoYkd4dmQybHVaeUIwYUdVZ2JXVjBhRzlrSUhSdklHSmxJR1Y0WldOMWRHVmtMbHh1SUNwY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lCZ1lHQjBlWEJsYzJOeWFYQjBYRzRnS2lCamJHRnpjeUJVYjJ0bGJrTnZiblJ5WVdOMElHVjRkR1Z1WkhNZ1EyOXVkSEpoWTNRZ2UxeHVJQ29nSUNCQVQzZHVaWElvS1Z4dUlDb2dJQ0JoYzNsdVl5Qk5hVzUwS0dOMGVEb2dRMjl1ZEdWNGRDd2dZVzF2ZFc1ME9pQnVkVzFpWlhJcElIdGNiaUFxSUNBZ0lDQXZMeUJOYVc1MElIUnZhMlZ1SUd4dloybGpYRzRnS2lBZ0lIMWNiaUFxSUgxY2JpQXFJR0JnWUZ4dUlDcGNiaUFxSUVCeVpYUjFjbTV6SUh0TlpYUm9iMlJFWldOdmNtRjBiM0o5SUVFZ2JXVjBhRzlrSUdSbFkyOXlZWFJ2Y2lCMGFHRjBJR05vWldOcmN5QnZkMjVsY25Ob2FYQWdZWFYwYUc5eWFYcGhkR2x2Ymk1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRTkzYm1WeUtDa2dlMXh1SUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRnS0Z4dUlDQWdJSFJoY21kbGREb2dZVzU1TEZ4dUlDQWdJSEJ5YjNCbGNuUjVTMlY1T2lCemRISnBibWNzWEc0Z0lDQWdaR1Z6WTNKcGNIUnZjam9nVUhKdmNHVnlkSGxFWlhOamNtbHdkRzl5WEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUc5eWFXZHBibUZzVFdWMGFHOWtJRDBnWkdWelkzSnBjSFJ2Y2k1MllXeDFaVHRjYmx4dUlDQWdJR1JsYzJOeWFYQjBiM0l1ZG1Gc2RXVWdQU0JoYzNsdVl5Qm1kVzVqZEdsdmJpQW9YRzRnSUNBZ0lDQjBhR2x6T2lCR1lXSnlhV05GVWtNeU1FTnZiblJ5WVdOMExGeHVJQ0FnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0lDQXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHTjBlRG9nU0V4RGIyNTBaWGgwSUQwZ1lYSm5jMXN3WFR0Y2JpQWdJQ0FnSUdOdmJuTjBJR0ZqYjNWdWRFbGtJRDBnWTNSNExtTnNhV1Z1ZEVsa1pXNTBhWFI1TG1kbGRFbEVLQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sYkdWamRDQTlJR0YzWVdsMElDaDBhR2x6SUdGeklFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUXBXMXh1SUNBZ0lDQWdJQ0JjSW5SdmEyVnVVbVZ3YjNOcGRHOXllVndpWEc0Z0lDQWdJQ0JkTG5ObGJHVmpkQ2dwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0IwYjJ0bGJuTWdQU0JoZDJGcGRDQnpaV3hsWTNRdVpYaGxZM1YwWlNoamRIZ3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb2RHOXJaVzV6TG14bGJtZDBhQ0E5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtGd2lUbThnZEc5clpXNXpJR0YyWVdsaGJHSnNaVndpS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLSFJ2YTJWdWN5NXNaVzVuZEdnZ1BpQXhLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLR0JVYnlCdFlXNTVJSFJ2YTJWdUlHRjJZV2xzWVdKc1pTQTZJQ1I3ZEc5clpXNXpMbXhsYm1kMGFIMWdLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVdZZ0tIUnZhMlZ1YzFzd1hTNXZkMjVsY2lBaFBTQmhZMjkxYm5SSlpDa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUVhWMGFHOXlhWHBoZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lHQlZjMlZ5SUc1dmRDQmhkWFJvYjNKcGVtVmtJSFJ2SUhKMWJpQWtlM0J5YjNCbGNuUjVTMlY1ZlNCdmJpQjBhR1VnZEc5clpXNWdYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQnZjbWxuYVc1aGJFMWxkR2h2WkM1aGNIQnNlU2gwYUdsekxDQmhjbWR6S1R0Y2JpQWdJQ0I5TzF4dVhHNGdJQ0FnY21WMGRYSnVJR1JsYzJOeWFYQjBiM0k3WEc0Z0lIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ2ZDI1bFpFSjVUMjVEY21WaGRHVThYRzRnSUUwZ1pYaDBaVzVrY3lCTmIyUmxiRHhpYjI5c1pXRnVQaXhjYmlBZ1VpQmxlSFJsYm1SeklGSmxjRzg4VFQ0c1hHNGdJRllzWEc0K0tGeHVJQ0IwYUdsek9pQlNMRnh1SUNCamIyNTBaWGgwT2lCRGIyNTBaWGgwVDJZOFVqNHNYRzRnSUdSaGRHRTZJRllzWEc0Z0lHdGxlVG9nYTJWNWIyWWdUU3hjYmlBZ2JXOWtaV3c2SUUxY2JpazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0JqYjI1emRDQjdJSE4wZFdJZ2ZTQTlJR052Ym5SbGVIUWdZWE1nWVc1NU8xeHVYRzRnSUdOdmJuTjBJR0ZzYkc5M1IyVnVaWEpoZEdsdmJrOTJaWEp5YVdSbElEMWNiaUFnSUNCamIyNTBaWGgwTG1kbGRFOXlWVzVrWldacGJtVmtLRndpWVd4c2IzZEhaVzVsY21GMGFXOXVUM1psY25KcFpHVmNJaWtnZkh3Z1ptRnNjMlU3WEc1Y2JpQWdZMjl1YzNRZ1kzSmxZWFJ2Y2lBOUlHRjNZV2wwSUhOMGRXSXVaMlYwUTNKbFlYUnZjaWdwTzF4dUlDQnNaWFFnYjNkdVpYSWdQU0JqY21WaGRHOXlMbTF6Y0dsa08xeHVJQ0JqYjI1MFpYaDBMbXh2WjJkbGNpNXBibVp2S0Z4dUlDQWdJR0JGZUhCbFkzUmxaQ0J0YzNCcFpDQjBieUJpWlNBa2UyMXZaR1ZzVzJ0bGVWMTlJSHdnSkh0dmQyNWxjbjB1SUZ4Y2JpQlZjMmx1WnlCaGJHeHZkMGRsYm1WeVlYUnBiMjVQZG1WeWNtbGtaVG9nSkh0aGJHeHZkMGRsYm1WeVlYUnBiMjVQZG1WeWNtbGtaWDFnWEc0Z0lDazdYRzVjYmlBZ2FXWWdLR0ZzYkc5M1IyVnVaWEpoZEdsdmJrOTJaWEp5YVdSbEtTQnZkMjVsY2lBOUlHMXZaR1ZzVzJ0bGVWMGdQeUJ0YjJSbGJGdHJaWGxkSURvZ2IzZHVaWEk3WEc1Y2JpQWdZMjl1YzNRZ2MyVjBUM2R1WldSQ2VVdGxlVlpoYkhWbElEMGdablZ1WTNScGIyNGdQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ2RHRnlaMlYwT2lCTkxGeHVJQ0FnSUhCeWIzQmxjblI1UzJWNU9pQnpkSEpwYm1jc1hHNGdJQ0FnZG1Gc2RXVTZJSE4wY21sdVp5QjhJRzUxYldKbGNpQjhJR0pwWjJsdWRGeHVJQ0FwSUh0Y2JpQWdJQ0JQWW1wbFkzUXVaR1ZtYVc1bFVISnZjR1Z5ZEhrb2RHRnlaMlYwTENCd2NtOXdaWEowZVV0bGVTd2dlMXh1SUNBZ0lDQWdaVzUxYldWeVlXSnNaVG9nZEhKMVpTeGNiaUFnSUNBZ0lIZHlhWFJoWW14bE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUdOdmJtWnBaM1Z5WVdKc1pUb2dkSEoxWlN4Y2JpQWdJQ0FnSUhaaGJIVmxPaUIyWVd4MVpTeGNiaUFnSUNCOUtUdGNiaUFnZlR0Y2JseHVJQ0J6WlhSUGQyNWxaRUo1UzJWNVZtRnNkV1VvYlc5a1pXd3NJR3RsZVNCaGN5QnpkSEpwYm1jc0lHOTNibVZ5S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzkzYm1Wa1Fua29LU0I3WEc0Z0lHWjFibU4wYVc5dUlHOTNibVZrUW5rb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUdaMWJtTjBhVzl1SUNodlltbzZJR0Z1ZVN3Z1lYUjBjbWxpZFhSbFB6b2dZVzU1S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVhCd2JIa29YRzRnSUNBZ0lDQWdJSEpsY1hWcGNtVmtLQ2tzWEc0Z0lDQWdJQ0FnSUdkbGJtVnlZWFJsWkNncExGeHVJQ0FnSUNBZ0lDQnlaV0ZrYjI1c2VTZ3BMRnh1SUNBZ0lDQWdJQ0J2YmtOeVpXRjBaU2h2ZDI1bFpFSjVUMjVEY21WaGRHVXBMRnh1SUNBZ0lDQWdJQ0J3Y205d1RXVjBZV1JoZEdFb1hHNGdJQ0FnSUNBZ0lDQWdUV1YwWVdSaGRHRXVhMlY1S0VaaFluSnBZMDF2WkdWc1MyVjVjeTVHUVVKU1NVTXNJRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NVBWMDVGUkY5Q1dTa3NYRzRnSUNBZ0lDQWdJQ0FnWVhSMGNtbGlkWFJsWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNrb2IySnFMQ0JoZEhSeWFXSjFkR1VwTzF4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnUkdWamIzSmhkR2x2Ymk1bWIzSW9SbUZpY21salRXOWtaV3hMWlhsekxrOVhUa1ZFWDBKWktWeHVJQ0FnSUM1a1pXWnBibVVvZTF4dUlDQWdJQ0FnWkdWamIzSmhkRzl5T2lCdmQyNWxaRUo1TEZ4dUlDQWdJQ0FnWVhKbmN6b2dXMTBzWEc0Z0lDQWdmU2xjYmlBZ0lDQXVZWEJ3Ykhrb0tUdGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJSFJ5WVc1ellXTjBhVzl1U1dSUGJrTnlaV0YwWlR4Y2JpQWdUU0JsZUhSbGJtUnpJRTF2WkdWc1BHSnZiMnhsWVc0K0xGeHVJQ0JTSUdWNGRHVnVaSE1nVW1Wd2J6eE5QaXhjYmlBZ1ZpeGNiajRvWEc0Z0lIUm9hWE02SUZJc1hHNGdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUlBaanhTUGl4Y2JpQWdaR0YwWVRvZ1ZpeGNiaUFnYTJWNU9pQnJaWGx2WmlCTkxGeHVJQ0J0YjJSbGJEb2dUVnh1S1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lHTnZibk4wSUhzZ2MzUjFZaUI5SUQwZ1kyOXVkR1Y0ZENCaGN5Qmhibms3WEc0Z0lHMXZaR1ZzVzJ0bGVWMGdQU0J6ZEhWaUxtZGxkRlI0U1VRb0tUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhSeVlXNXpZV04wYVc5dVNXUW9LU0I3WEc0Z0lHWjFibU4wYVc5dUlIUnlZVzV6WVdOMGFXOXVTV1FvS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1oxYm1OMGFXOXVJQ2h2WW1vNklHRnVlU3dnWVhSMGNtbGlkWFJsUHpvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZWEJ3Ykhrb1hHNGdJQ0FnSUNBZ0lISmxjWFZwY21Wa0tDa3NYRzRnSUNBZ0lDQWdJSEpsWVdSdmJteDVLQ2tzWEc0Z0lDQWdJQ0FnSUc5dVEzSmxZWFJsS0hSeVlXNXpZV04wYVc5dVNXUlBia055WldGMFpTa3NYRzRnSUNBZ0lDQWdJRzl1VlhCa1lYUmxLSFJ5WVc1ellXTjBhVzl1U1dSUGJrTnlaV0YwWlNrc1hHNGdJQ0FnSUNBZ0lIQnliM0JOWlhSaFpHRjBZU2hjYmlBZ0lDQWdJQ0FnSUNCTlpYUmhaR0YwWVM1clpYa29YRzRnSUNBZ0lDQWdJQ0FnSUNCR1lXSnlhV05OYjJSbGJFdGxlWE11UmtGQ1VrbERMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lYUjBjbWxpZFhSbExGeHVJQ0FnSUNBZ0lDQWdJQ0FnUm1GaWNtbGpUVzlrWld4TFpYbHpMbFJTUVU1VFFVTlVTVTlPWDBsRVhHNGdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNCaGRIUnlhV0oxZEdWY2JpQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0tTaHZZbW9zSUdGMGRISnBZblYwWlNrN1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCRVpXTnZjbUYwYVc5dUxtWnZjaWhHWVdKeWFXTk5iMlJsYkV0bGVYTXVWRkpCVGxOQlExUkpUMDVmU1VRcFhHNGdJQ0FnTG1SbFptbHVaU2g3WEc0Z0lDQWdJQ0JrWldOdmNtRjBiM0k2SUhSeVlXNXpZV04wYVc5dVNXUXNYRzRnSUNBZ0lDQmhjbWR6T2lCYlhTeGNiaUFnSUNCOUtWeHVJQ0FnSUM1aGNIQnNlU2dwTzF4dWZWeHVYRzVsZUhCdmNuUWdkSGx3WlNCTmFYSnliM0pEYjI1a2FYUnBiMjRnUFNBb2JYTndPaUJ6ZEhKcGJtY3BJRDArSUdKdmIyeGxZVzQ3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRTFwY25KdmNrMWxkR0ZrWVhSaElEMGdlMXh1SUNCamIyNWthWFJwYjI0L09pQk5hWEp5YjNKRGIyNWthWFJwYjI0N1hHNGdJSEpsYzI5c2RtVnlPaUJEYjJ4c1pXTjBhVzl1VW1WemIyeDJaWElnZkNCemRISnBibWM3WEc0Z0lHMXpjRWxrT2lCemRISnBibWM3WEc1OU8xeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1pYWmhiRTFwY25KdmNrMWxkR0ZrWVhSaFBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJRzF2WkdWc09pQk5MRnh1SUNCeVpYTnZiSFpsY2pvZ2RXNWtaV1pwYm1Wa0lId2djM1J5YVc1bklId2dRMjlzYkdWamRHbHZibEpsYzI5c2RtVnlMRnh1SUNCamRIZzZJRU52Ym5SbGVIUThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejVjYmlrZ2UxeHVJQ0JzWlhRZ1kyOXNiR1ZqZEdsdmJqb2dRMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJSHdnYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrSUQwZ2NtVnpiMngyWlhJN1hHNGdJR2xtSUNoMGVYQmxiMllnWTI5c2JHVmpkR2x2YmlBaFBUMGdYQ0p6ZEhKcGJtZGNJaWtnZTF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNXpkQ0J2ZDI1bGNpQTlYRzRnSUNBZ0lDQWdJRTF2WkdWc0xtOTNibVZ5VDJZb2JXOWtaV3dwSUh4OElHTjBlQzVuWlhRb1hDSnpkSFZpWENJcExtZGxkRU55WldGMGIzSW9LUzUwYjFOMGNtbHVaeWdwTzF4dUlDQWdJQ0FnYVdZZ0tISmxjMjlzZG1WeUlDWW1JSFI1Y0dWdlppQnlaWE52YkhabGNpQTlQVDBnWENKbWRXNWpkR2x2Ymx3aUtWeHVJQ0FnSUNBZ0lDQmpiMnhzWldOMGFXOXVJRDBnWVhkaGFYUWdjbVZ6YjJ4MlpYSW9iVzlrWld3c0lHOTNibVZ5TENCamRIZ3BPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQkdZV2xzWldRZ2RHOGdjbVZ6YjJ4MlpTQmpiMnhzWldOMGFXOXVJRzFwY25KdmNpQnVZVzFsT2lBa2UyVjlZQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnYVdZZ0tDRmpiMnhzWldOMGFXOXVJSHg4SUhSNWNHVnZaaUJqYjJ4c1pXTjBhVzl1SUNFOVBTQmNJbk4wY21sdVoxd2lLVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z4dUlDQWdJQ0FnWUU1dklHTnZiR3hsWTNScGIyNGdabTkxYm1RZ2JXOWtaV3dnSkh0dGIyUmxiQzVqYjI1emRISjFZM1J2Y2k1dVlXMWxmV0JjYmlBZ0lDQXBPMXh1SUNCeVpYUjFjbTRnWTI5c2JHVmpkR2x2Ymp0Y2JuMWNibHh1Wlhod2IzSjBJR0Z6ZVc1aklHWjFibU4wYVc5dUlHTnlaV0YwWlUxcGNuSnZja2hoYm1Sc1pYSThYRzRnSUUwZ1pYaDBaVzVrY3lCTmIyUmxiQ3hjYmlBZ1VpQmxlSFJsYm1SeklGSmxjRzl6YVhSdmNuazhUU3dnWVc1NVBpeGNiajRvWEc0Z0lIUm9hWE02SUZJc1hHNGdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejRzWEc0Z0lHUmhkR0U2SUUxcGNuSnZjazFsZEdGa1lYUmhMRnh1SUNCclpYazZJR3RsZVc5bUlFMHNYRzRnSUcxdlpHVnNPaUJOWEc0cE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQTlJR0YzWVdsMElHVjJZV3hOYVhKeWIzSk5aWFJoWkdGMFlTaHRiMlJsYkN3Z1pHRjBZUzV5WlhOdmJIWmxjaXdnWTI5dWRHVjRkQ2s3WEc0Z0lHTnZibk4wSUdaaFluSnBZME4wZUNBOUlHTnZiblJsZUhRZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTzF4dUlDQmpiMjV6ZENCemIzVnlZMlZOYjJSbGJDQTlJRzF2WkdWc08xeHVJQ0F2THlCUWRYUWdiV2x5Y205eUlHWnNZV2R6SUdScGNtVmpkR3g1SUc5dUlHTnZiblJsZUhRZ2MyOGdZV1JoY0hSbGNpNXdjbVZ3WVhKbEtDa2dZVzVrSUdGa1lYQjBaWEl1WTNKbFlYUmxLQ2tnWTJGdUlITmxaU0IwYUdWdFhHNGdJR1poWW5KcFkwTjBlQzV3ZFhRb1hDSnRhWEp5YjNKY0lpQmhjeUJoYm5rc0lIUnlkV1VwTzF4dUlDQm1ZV0p5YVdORGRIZ3VjSFYwS0Z3aWJXbHljbTl5UTI5c2JHVmpkR2x2Ymx3aUlHRnpJR0Z1ZVN3Z1kyOXNiR1ZqZEdsdmJpazdYRzRnSUhSeWVTQjdYRzRnSUNBZ1kyOXVjM1FnY21Wd2J5QTlJSFJvYVhNdWIzWmxjbkpwWkdVb1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENBb2RHaHBjeUJoY3lCaGJua3BMbDl2ZG1WeWNtbGtaWE1zSUh0Y2JpQWdJQ0FnSUNBZ2JXbHljbTl5T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0J0YVhKeWIzSkRiMnhzWldOMGFXOXVPaUJqYjJ4c1pXTjBhVzl1TEZ4dUlDQWdJQ0FnSUNCcFoyNXZjbVZXWVd4cFpHRjBhVzl1T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0JwWjI1dmNtVklZVzVrYkdWeWN6b2dkSEoxWlN4Y2JpQWdJQ0FnSUgwZ1lYTWdZVzU1S1Z4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2JXbHljbTl5SUQwZ1lYZGhhWFFnY21Wd2J5NWpjbVZoZEdVb2MyOTFjbU5sVFc5a1pXd3NJR052Ym5SbGVIUXBPMXh1SUNBZ0lHTnZiblJsZUhRdWJHOW5aMlZ5TG1sdVptOG9YRzRnSUNBZ0lDQmdUV2x5Y205eUlHWnZjaUFrZTAxdlpHVnNMblJoWW14bFRtRnRaU2gwYUdsekxtTnNZWE56S1gwZ1kzSmxZWFJsWkNCM2FYUm9JQ1I3VFc5a1pXd3VjR3NvYlc5a1pXd3BJR0Z6SUhOMGNtbHVaMzA2SUNSN2JXbHljbTl5VzAxdlpHVnNMbkJyS0cxdlpHVnNLVjE5WUZ4dUlDQWdJQ2s3WEc0Z0lIMGdabWx1WVd4c2VTQjdYRzRnSUNBZ0x5OGdRMnhsWVc0Z2RYQWdiV2x5Y205eUlHWnNZV2R6SUdaeWIyMGdZMjl1ZEdWNGRGeHVJQ0FnSUdaaFluSnBZME4wZUM1d2RYUW9YQ0p0YVhKeWIzSmNJaUJoY3lCaGJua3NJSFZ1WkdWbWFXNWxaQ2s3WEc0Z0lDQWdabUZpY21salEzUjRMbkIxZENoY0ltMXBjbkp2Y2tOdmJHeGxZM1JwYjI1Y0lpQmhjeUJoYm5rc0lIVnVaR1ZtYVc1bFpDazdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR0Z6ZVc1aklHWjFibU4wYVc5dUlIVndaR0YwWlUxcGNuSnZja2hoYm1Sc1pYSThYRzRnSUUwZ1pYaDBaVzVrY3lCTmIyUmxiQ3hjYmlBZ1VpQmxlSFJsYm1SeklGSmxjRzl6YVhSdmNuazhUU3dnWVc1NVBpeGNiajRvWEc0Z0lIUm9hWE02SUZJc1hHNGdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejRzWEc0Z0lHUmhkR0U2SUUxcGNuSnZjazFsZEdGa1lYUmhMRnh1SUNCclpYazZJR3RsZVc5bUlFMHNYRzRnSUcxdlpHVnNPaUJOWEc0cE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQTlJR0YzWVdsMElHVjJZV3hOYVhKeWIzSk5aWFJoWkdGMFlTaHRiMlJsYkN3Z1pHRjBZUzV5WlhOdmJIWmxjaXdnWTI5dWRHVjRkQ2s3WEc0Z0lHTnZibk4wSUdaaFluSnBZME4wZUNBOUlHTnZiblJsZUhRZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTzF4dUlDQmpiMjV6ZENCemIzVnlZMlZOYjJSbGJDQTlJRzF2WkdWc08xeHVJQ0JtWVdKeWFXTkRkSGd1Y0hWMEtGd2liV2x5Y205eVhDSWdZWE1nWVc1NUxDQjBjblZsS1R0Y2JpQWdabUZpY21salEzUjRMbkIxZENoY0ltMXBjbkp2Y2tOdmJHeGxZM1JwYjI1Y0lpQmhjeUJoYm5rc0lHTnZiR3hsWTNScGIyNHBPMXh1SUNCMGNua2dlMXh1SUNBZ0lHTnZibk4wSUhKbGNHOGdQU0IwYUdsekxtOTJaWEp5YVdSbEtGeHVJQ0FnSUNBZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z0tIUm9hWE1nWVhNZ1lXNTVLUzVmYjNabGNuSnBaR1Z6TENCN1hHNGdJQ0FnSUNBZ0lHMXBjbkp2Y2pvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnYldseWNtOXlRMjlzYkdWamRHbHZiam9nWTI5c2JHVmpkR2x2Yml4Y2JpQWdJQ0FnSUNBZ2FXZHViM0psVm1Gc2FXUmhkR2x2YmpvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnYVdkdWIzSmxTR0Z1Wkd4bGNuTTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lHRndjR3g1VlhCa1lYUmxWbUZzYVdSaGRHbHZiam9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJRzFsY21kbFJtOXlWWEJrWVhSbE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUgwZ1lYTWdZVzU1S1Z4dUlDQWdJQ2s3WEc0Z0lDQWdZWGRoYVhRZ2NtVndieTUxY0dSaGRHVW9jMjkxY21ObFRXOWtaV3dzSUdOdmJuUmxlSFFwTzF4dUlDQWdJR052Ym5SbGVIUXViRzluWjJWeUxtbHVabThvWEc0Z0lDQWdJQ0JnVFdseWNtOXlJR1p2Y2lBa2UwMXZaR1ZzTG5SaFlteGxUbUZ0WlNoMGFHbHpMbU5zWVhOektYMGdkWEJrWVhSbFpEb2dKSHNvYlc5a1pXd2dZWE1nWVc1NUtWdE5iMlJsYkM1d2F5aHRiMlJsYkNsZGZXQmNiaUFnSUNBcE8xeHVJQ0I5SUdacGJtRnNiSGtnZTF4dUlDQWdJR1poWW5KcFkwTjBlQzV3ZFhRb1hDSnRhWEp5YjNKY0lpQmhjeUJoYm5rc0lIVnVaR1ZtYVc1bFpDazdYRzRnSUNBZ1ptRmljbWxqUTNSNExuQjFkQ2hjSW0xcGNuSnZja052Ykd4bFkzUnBiMjVjSWlCaGN5QmhibmtzSUhWdVpHVm1hVzVsWkNrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHRnplVzVqSUdaMWJtTjBhVzl1SUdSbGJHVjBaVTFwY25KdmNraGhibVJzWlhJOFhHNGdJRTBnWlhoMFpXNWtjeUJOYjJSbGJDeGNiaUFnVWlCbGVIUmxibVJ6SUZKbGNHOXphWFJ2Y25rOFRTd2dZVzU1UGl4Y2JqNG9YRzRnSUhSb2FYTTZJRklzWEc0Z0lHTnZiblJsZUhRNklFTnZiblJsZUhROFJtRmljbWxqUTI5dWRISmhZM1JHYkdGbmN6NHNYRzRnSUdSaGRHRTZJRTFwY25KdmNrMWxkR0ZrWVhSaExGeHVJQ0JyWlhrNklHdGxlVzltSUUwc1hHNGdJRzF2WkdWc09pQk5YRzRwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2YmlBOUlHRjNZV2wwSUdWMllXeE5hWEp5YjNKTlpYUmhaR0YwWVNodGIyUmxiQ3dnWkdGMFlTNXlaWE52YkhabGNpd2dZMjl1ZEdWNGRDazdYRzRnSUdOdmJuTjBJR1poWW5KcFkwTjBlQ0E5SUdOdmJuUmxlSFFnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBPMXh1SUNCbVlXSnlhV05EZEhndWNIVjBLRndpYldseWNtOXlYQ0lnWVhNZ1lXNTVMQ0IwY25WbEtUdGNiaUFnWm1GaWNtbGpRM1I0TG5CMWRDaGNJbTFwY25KdmNrTnZiR3hsWTNScGIyNWNJaUJoY3lCaGJua3NJR052Ykd4bFkzUnBiMjRwTzF4dUlDQm1ZV0p5YVdORGRIZ3VjSFYwS0Z3aWMyVm5jbVZuWVhSbFpGd2lJR0Z6SUdGdWVTd2dZMjlzYkdWamRHbHZiaWs3WEc0Z0lIUnllU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHdFFjbTl3SUQwZ1RXOWtaV3d1Y0dzb2JXOWtaV3dwSUdGeklHdGxlVzltSUUwN1hHNGdJQ0FnWTI5dWMzUWdhV1FnUFNCdGIyUmxiRnR3YTFCeWIzQmRPMXh1SUNBZ0lHTnZibk4wSUhKbGNHOGdQU0IwYUdsekxtOTJaWEp5YVdSbEtGeHVJQ0FnSUNBZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z0tIUm9hWE1nWVhNZ1lXNTVLUzVmYjNabGNuSnBaR1Z6TENCN1hHNGdJQ0FnSUNBZ0lITmxaM0psWjJGMFpXUTZJR052Ykd4bFkzUnBiMjRzWEc0Z0lDQWdJQ0FnSUcxcGNuSnZjam9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdhV2R1YjNKbFZtRnNhV1JoZEdsdmJqb2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ2FXZHViM0psU0dGdVpHeGxjbk02SUhSeWRXVXNYRzRnSUNBZ0lDQjlJR0Z6SUdGdWVTbGNiaUFnSUNBcE8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmhkMkZwZENCeVpYQnZMbVJsYkdWMFpTaHBaQ0JoY3lCaGJua3NJR052Ym5SbGVIUXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ0x5OGdUV0Y1SUdGc2NtVmhaSGtnWW1VZ1pHVnNaWFJsWkNCaWVTQmhaR0Z3ZEdWeUxtUmxiR1YwWlZObFozSmxaMkYwWldSRGIyeHNaV04wYVc5dWMxeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1MFpYaDBMbXh2WjJkbGNpNXBibVp2S0Z4dUlDQWdJQ0FnWUUxcGNuSnZjaUJtYjNJZ0pIdE5iMlJsYkM1MFlXSnNaVTVoYldVb2RHaHBjeTVqYkdGemN5bDlJR1JsYkdWMFpXUTZJQ1I3VTNSeWFXNW5LR2xrS1gxZ1hHNGdJQ0FnS1R0Y2JpQWdmU0JtYVc1aGJHeDVJSHRjYmlBZ0lDQm1ZV0p5YVdORGRIZ3VjSFYwS0Z3aWJXbHljbTl5WENJZ1lYTWdZVzU1TENCMWJtUmxabWx1WldRcE8xeHVJQ0FnSUdaaFluSnBZME4wZUM1d2RYUW9YQ0p0YVhKeWIzSkRiMnhzWldOMGFXOXVYQ0lnWVhNZ1lXNTVMQ0IxYm1SbFptbHVaV1FwTzF4dUlDQWdJR1poWW5KcFkwTjBlQzV3ZFhRb1hDSnpaV2R5WldkaGRHVmtYQ0lnWVhNZ1lXNTVMQ0IxYm1SbFptbHVaV1FwTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ0YVhKeWIzSlhjbWwwWlVkMVlYSmtQRnh1SUNCTklHVjRkR1Z1WkhNZ1RXOWtaV3dzWEc0Z0lGSWdaWGgwWlc1a2N5QlNaWEJ2YzJsMGIzSjVQRTBzSUdGdWVUNHNYRzQrS0Z4dUlDQjBhR2x6T2lCU0xGeHVJQ0JqYjI1MFpYaDBPaUJEYjI1MFpYaDBQRVpoWW5KcFkwTnZiblJ5WVdOMFJteGhaM00rTEZ4dUlDQmtZWFJoT2lCTmFYSnliM0pOWlhSaFpHRjBZU3hjYmlBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQnJaWGs2SUd0bGVXOW1JRTBzWEc0Z0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQkFkSGx3WlhOamNtbHdkQzFsYzJ4cGJuUXZibTh0ZFc1MWMyVmtMWFpoY25OY2JpQWdiVzlrWld3NklFMWNiaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNCamIyNXpkQ0J0YzNBZ1BTQmxlSFJ5WVdOMFRYTndTV1FvWEc0Z0lDQWdZMjl1ZEdWNGRDNW5aWFFvWENKcFpHVnVkR2wwZVZ3aUtTQmhjeUJ6ZEhKcGJtY2dmQ0JEYkdsbGJuUkpaR1Z1ZEdsMGVTQjhJSFZ1WkdWbWFXNWxaRnh1SUNBcE8xeHVJQ0JwWmlBb0lXMXpjQ2tnY21WMGRYSnVPMXh1SUNCcFppQW9iWE53SUQwOVBTQmtZWFJoTG0xemNFbGtJSHg4SUNoa1lYUmhMbU52Ym1ScGRHbHZiaUFtSmlCa1lYUmhMbU52Ym1ScGRHbHZiaWh0YzNBcEtTa2dlMXh1SUNBZ0lIUm9jbTkzSUc1bGR5QkJkWFJvYjNKcGVtRjBhVzl1UlhKeWIzSW9YRzRnSUNBZ0lDQmdUM0puWVc1cGVtRjBhVzl1SUNSN2JYTndmU0JwY3lCdWIzUWdZWFYwYUc5eWFYcGxaQ0IwYnlCdGIyUnBabmtnYldseWNtOXlaV1FnWkdGMFlXQmNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCeVpXRmtUV2x5Y205eVNHRnVaR3hsY2p4Y2JpQWdUU0JsZUhSbGJtUnpJRTF2WkdWc0xGeHVJQ0JTSUdWNGRHVnVaSE1nVW1Wd2IzTnBkRzl5ZVR4TkxDQmhibmsrTEZ4dVBpaGNiaUFnZEdocGN6b2dVaXhjYmlBZ1kyOXVkR1Y0ZERvZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkelBpeGNiaUFnWkdGMFlUb2dUV2x5Y205eVRXVjBZV1JoZEdFc1hHNGdJR3RsZVRvZ2EyVjViMllnVFN4Y2JpQWdiVzlrWld3NklFMWNiaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNCamIyNXpkQ0J0YzNBZ1BTQmxlSFJ5WVdOMFRYTndTV1FvWEc0Z0lDQWdZMjl1ZEdWNGRDNW5aWFFvWENKcFpHVnVkR2wwZVZ3aUtTQmhjeUJ6ZEhKcGJtY2dmQ0JEYkdsbGJuUkpaR1Z1ZEdsMGVTQjhJSFZ1WkdWbWFXNWxaRnh1SUNBcE8xeHVYRzRnSUdsbUlDZ2hiWE53S1NCeVpYUjFjbTQ3WEc1Y2JpQWdZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQTlJR0YzWVdsMElHVjJZV3hOYVhKeWIzSk5aWFJoWkdGMFlTaHRiMlJsYkN3Z1pHRjBZUzV5WlhOdmJIWmxjaXdnWTI5dWRHVjRkQ2s3WEc0Z0lHTnZibk4wSUdaaFluSnBZME4wZUNBOUlHTnZiblJsZUhRZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTzF4dUlDQmpiMjV6ZENCdFlYUmphR1Z6SUQwZ2JYTndJRDA5UFNCa1lYUmhMbTF6Y0Vsa0lIeDhJQ2hrWVhSaExtTnZibVJwZEdsdmJpQW1KaUJrWVhSaExtTnZibVJwZEdsdmJpaHRjM0FwS1R0Y2JseHVJQ0JwWmlBb2JXRjBZMmhsY3lrZ2UxeHVJQ0FnSUdOdmJuUmxlSFF1Ykc5bloyVnlMbWx1Wm04b1hHNGdJQ0FnSUNCZ1RXbHljbTl5SUhKbFlXUTZJRTFUVUNBa2UyMXpjSDBnYldGMFkyaGxjeXdnY205MWRHbHVaeUJ5WldGa2N5QjBieUJ0YVhKeWIzSWdZMjlzYkdWamRHbHZiaUFrZTJOdmJHeGxZM1JwYjI1OVlGeHVJQ0FnSUNrN1hHNGdJQ0FnTHk4Z1VtOTFkR1VnY21WaFpITWdaWGhqYkhWemFYWmxiSGtnZEdoeWIzVm5hQ0IwYUdVZ2JXbHljbTl5SUdOdmJHeGxZM1JwYjI1Y2JpQWdJQ0JtWVdKeWFXTkRkSGd1Y0hWMEtGd2liV2x5Y205eVhDSWdZWE1nWVc1NUxDQjBjblZsS1R0Y2JpQWdJQ0JtWVdKeWFXTkRkSGd1Y0hWMEtGd2liV2x5Y205eVEyOXNiR1ZqZEdsdmJsd2lJR0Z6SUdGdWVTd2dZMjlzYkdWamRHbHZiaWs3WEc0Z0lDQWdabUZpY21salEzUjRMbkIxZENoY0ltWjFiR3g1VTJWbmNtVm5ZWFJsWkZ3aUxDQjBjblZsS1R0Y2JpQWdJQ0JtWVdKeWFXTkRkSGd1Y21WaFpFWnliMjBvWTI5c2JHVmpkR2x2YmlrN1hHNGdJSDFjYmlBZ0x5OGdWMmhsYmlCTlUxQWdaRzlsY3lCT1QxUWdiV0YwWTJnc0lHNXZjbTFoYkNCeVpXRmtJR1pzYjNjZzRvQ1VJR0ZzYkNCa1lYUmhJR2x6SUdsdUlIQjFZbXhwWXlCemRHRjBaVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2JXbHljbTl5S0Z4dUlDQmpiMnhzWldOMGFXOXVPaUJEYjJ4c1pXTjBhVzl1VW1WemIyeDJaWElnZkNCemRISnBibWNzWEc0Z0lHMXpjRWxrVDNKRGIyNWthWFJwYjI0L09pQnpkSEpwYm1jZ2ZDQk5hWEp5YjNKRGIyNWthWFJwYjI0c1hHNGdJR052Ym1ScGRHbHZiajg2SUUxcGNuSnZja052Ym1ScGRHbHZibHh1S1NCN1hHNGdJR052Ym5OMElHbHpRMjl1WkdsMGFXOXVUMjVzZVNBOVhHNGdJQ0FnZEhsd1pXOW1JRzF6Y0Vsa1QzSkRiMjVrYVhScGIyNGdJVDA5SUZ3aWMzUnlhVzVuWENJZ0ppWWdRbTl2YkdWaGJpaHRjM0JKWkU5eVEyOXVaR2wwYVc5dUtUdGNiaUFnWTI5dWMzUWdiWE53U1dRZ1BTQnBjME52Ym1ScGRHbHZiazl1YkhsY2JpQWdJQ0EvSUhWdVpHVm1hVzVsWkZ4dUlDQWdJRG9nS0cxemNFbGtUM0pEYjI1a2FYUnBiMjRnWVhNZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0tUdGNiaUFnWTI5dWMzUWdZMjl1WkNBOUlHbHpRMjl1WkdsMGFXOXVUMjVzZVZ4dUlDQWdJRDhnS0cxemNFbGtUM0pEYjI1a2FYUnBiMjRnWVhNZ1RXbHljbTl5UTI5dVpHbDBhVzl1S1Z4dUlDQWdJRG9nWTI5dVpHbDBhVzl1TzF4dVhHNGdJR1oxYm1OMGFXOXVJRzFwY25KdmNpaGNiaUFnSUNCeVpYTnZiSFpsY2pvZ1EyOXNiR1ZqZEdsdmJsSmxjMjlzZG1WeUlId2djM1J5YVc1bkxGeHVJQ0FnSUcxemNFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1kyOXVaR2wwYVc5dVB6b2dUV2x5Y205eVEyOXVaR2wwYVc5dVhHNGdJQ2tnZTF4dUlDQWdJR052Ym5OMElHMWxkR0U2SUUxcGNuSnZjazFsZEdGa1lYUmhJRDBnZTF4dUlDQWdJQ0FnWTI5dVpHbDBhVzl1T2lCamIyNWthWFJwYjI0c1hHNGdJQ0FnSUNCdGMzQkpaRG9nYlhOd1NXUXNYRzRnSUNBZ0lDQnlaWE52YkhabGNqb2djbVZ6YjJ4MlpYSXNYRzRnSUNBZ2ZUdGNiaUFnSUNCeVpYUjFjbTRnWVhCd2JIa29YRzRnSUNBZ0lDQnRaWFJoWkdGMFlTaGNiaUFnSUNBZ0lDQWdUV1YwWVdSaGRHRXVhMlY1S0VaaFluSnBZMDF2WkdWc1MyVjVjeTVHUVVKU1NVTXNJRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NU5TVkpTVDFJcExGeHVJQ0FnSUNBZ0lDQnRaWFJoWEc0Z0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnTHk4Z1VtVmhaQ0JvWVc1a2JHVnlJSEoxYm5NZ1pXRnliSGtnS0hCeWFXOXlhWFI1SURNd0tTQjBieUJ6WlhRZ2RYQWdZMjl1ZEdWNGRDQmlaV1p2Y21VZ1lXNTVJSEpsWVdSelhHNGdJQ0FnSUNCdmJsSmxZV1FvY21WaFpFMXBjbkp2Y2toaGJtUnNaWElnWVhNZ1lXNTVMQ0J0WlhSaExDQjdJSEJ5YVc5eWFYUjVPaUF6TUNCOUtTeGNiaUFnSUNBZ0lDOHZJRmR5YVhSbElHZDFZWEprY3lEaWdKUWdjbVZxWldOMElHMWhkR05vYVc1bklFMVRVSE1nWW1WbWIzSmxJR0Z1ZVNCd2NtOWpaWE56YVc1blhHNGdJQ0FnSUNCdmJrTnlaV0YwWlNodGFYSnliM0pYY21sMFpVZDFZWEprSUdGeklHRnVlU3dnYldWMFlTd2dleUJ3Y21sdmNtbDBlVG9nTWpBZ2ZTa3NYRzRnSUNBZ0lDQnZibFZ3WkdGMFpTaHRhWEp5YjNKWGNtbDBaVWQxWVhKa0lHRnpJR0Z1ZVN3Z2JXVjBZU3dnZXlCd2NtbHZjbWwwZVRvZ01qQWdmU2tzWEc0Z0lDQWdJQ0J2YmtSbGJHVjBaU2h0YVhKeWIzSlhjbWwwWlVkMVlYSmtJR0Z6SUdGdWVTd2diV1YwWVN3Z2V5QndjbWx2Y21sMGVUb2dNakFnZlNrc1hHNGdJQ0FnSUNBdkx5Qk5hWEp5YjNJZ2MzbHVZeUJvWVc1a2JHVnljeURpZ0pRZ2QzSnBkR1VnWm5Wc2JDQnRiMlJsYkNCaFpuUmxjaUJ2ZEdobGNpQm9ZVzVrYkdWeWN5QW9jSEpwYjNKcGRIa2dNVEF3S1Z4dUlDQWdJQ0FnYjI1RGNtVmhkR1VvWTNKbFlYUmxUV2x5Y205eVNHRnVaR3hsY2lCaGN5QmhibmtzSUcxbGRHRXNJSHNnY0hKcGIzSnBkSGs2SURFd01DQjlLU3hjYmlBZ0lDQWdJRzl1VlhCa1lYUmxLSFZ3WkdGMFpVMXBjbkp2Y2toaGJtUnNaWElnWVhNZ1lXNTVMQ0J0WlhSaExDQjdJSEJ5YVc5eWFYUjVPaUF4TURBZ2ZTa3NYRzRnSUNBZ0lDQnZia1JsYkdWMFpTaGtaV3hsZEdWTmFYSnliM0pJWVc1a2JHVnlJR0Z6SUdGdWVTd2diV1YwWVN3Z2V5QndjbWx2Y21sMGVUb2dNVEF3SUgwcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCRVpXTnZjbUYwYVc5dUxtWnZjaWhHWVdKeWFXTk5iMlJsYkV0bGVYTXVUVWxTVWs5U0tWeHVJQ0FnSUM1a1pXWnBibVVvZTF4dUlDQWdJQ0FnWkdWamIzSmhkRzl5T2lCdGFYSnliM0lzWEc0Z0lDQWdJQ0JoY21kek9pQmJZMjlzYkdWamRHbHZiaXdnYlhOd1NXUXNJR052Ym1SZExGeHVJQ0FnSUgwcFhHNGdJQ0FnTG1Gd2NHeDVLQ2s3WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUVOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lBOUlEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0J0YjJSbGJEb2dUU0I4SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNCdGMzQS9PaUJ6ZEhKcGJtY3NYRzRnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRwSUQwK0lITjBjbWx1Wnp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUUxdlpHVnNRMjlzYkdWamRHbHZiam9nUTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5SUQwZ1BFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJRzF2WkdWc09pQk5JSHdnUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUcxemNFbGtQem9nYzNSeWFXNW5YRzRwSUQwK0lIdGNiaUFnWTI5dWMzUWdiM0puVG1GdFpTQTlYRzRnSUNBZ2JYTndTV1FnZkh3Z0tIUjVjR1Z2WmlCdGIyUmxiQ0FoUFQwZ1hDSm1kVzVqZEdsdmJsd2lJRDhnVFc5a1pXd3ViM2R1WlhKUFppaHRiMlJsYkNrZ09pQjFibVJsWm1sdVpXUXBPMXh1SUNCamIyNXpkQ0JqYjI1emRISWdQU0IwZVhCbGIyWWdiVzlrWld3Z1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lHMXZaR1ZzSURvZ2JXOWtaV3d1WTI5dWMzUnlkV04wYjNJN1hHNGdJR2xtSUNnaGIzSm5UbUZ0WlNsY2JpQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lHQk5iMlJsYkNBa2UyTnZibk4wY2k1dVlXMWxmU0JwY3lCdWIzUWdiM2R1WldRZ1lua2dZVzU1SUc5eVoyRnVhWHBoZEdsdmJpNGdaR2xrSUhsdmRTQjFjMlVnUUc5M2JtVmtRbmtvS1NBb2IzSWdjSEp2ZG1sa1pTQjBhR1VnYm1GdFpTay9ZRnh1SUNBZ0lDazdYRzRnSUhKbGRIVnliaUJnSkh0MGIxQmhjMk5oYkVOaGMyVW9ZMjl1YzNSeUxtNWhiV1VwZlNSN2IzSm5UbUZ0WlNBL0lIUnZVR0Z6WTJGc1EyRnpaU2h2Y21kT1lXMWxLU0E2SUZ3aVhDSjlZRHRjYm4wN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQk9ZVzFsYzNCaFkyVkRiMnhzWldOMGFXOXVLRzVoYldWemNHRmpaVG9nYzNSeWFXNW5LVG9nUTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5SUh0Y2JpQWdjbVYwZFhKdUlEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tHMXZaR1ZzT2lCTklId2dRMjl1YzNSeWRXTjBiM0k4VFQ0c0lHMXpjRWxrUHpvZ2MzUnlhVzVuS1NBOVBpQjdYRzRnSUNBZ1kyOXVjM1FnYjNKblRtRnRaU0E5WEc0Z0lDQWdJQ0J0YzNCSlpDQjhmQ0FvZEhsd1pXOW1JRzF2WkdWc0lDRTlQU0JjSW1aMWJtTjBhVzl1WENJZ1B5Qk5iMlJsYkM1dmQyNWxjazltS0cxdlpHVnNLU0E2SUhWdVpHVm1hVzVsWkNrN1hHNGdJQ0FnWTI5dWMzUWdZMjl1YzNSeUlEMGdkSGx3Wlc5bUlHMXZaR1ZzSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lnUHlCdGIyUmxiQ0E2SUcxdlpHVnNMbU52Ym5OMGNuVmpkRzl5TzF4dUlDQWdJR2xtSUNnaGIzSm5UbUZ0WlNsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnVFc5a1pXd2dKSHRqYjI1emRISXVibUZ0WlgwZ2FYTWdibTkwSUc5M2JtVmtJR0o1SUdGdWVTQnZjbWRoYm1sNllYUnBiMjR1SUdScFpDQjViM1VnZFhObElFQnZkMjVsWkVKNUtDa2dLRzl5SUhCeWIzWnBaR1VnZEdobElHNWhiV1VwUDJCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJR0FrZTI1aGJXVnpjR0ZqWlgwa2UyOXlaMDVoYldVZ1B5QjBiMUJoYzJOaGJFTmhjMlVvYjNKblRtRnRaU2tnT2lCY0lsd2lmV0E3WEc0Z0lIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JKYlhCc2FXTnBkRkJ5YVhaaGRHVkRiMnhzWldOMGFXOXVPaUJEYjJ4c1pXTjBhVzl1VW1WemIyeDJaWElnUFNBOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdiVzlrWld3NklFMGdmQ0JEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnYlhOd1NXUS9PaUJ6ZEhKcGJtZGNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQnZjbWRPWVcxbElEMWNiaUFnSUNCdGMzQkpaQ0I4ZkNBb2RIbHdaVzltSUcxdlpHVnNJQ0U5UFNCY0ltWjFibU4wYVc5dVhDSWdQeUJOYjJSbGJDNXZkMjVsY2s5bUtHMXZaR1ZzS1NBNklIVnVaR1ZtYVc1bFpDazdYRzRnSUdsbUlDZ2hiM0puVG1GdFpTbGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJR0JOYjJSbGJDQWtlMjF2WkdWc0xtTnZibk4wY25WamRHOXlMbTVoYldWOUlHbHpJRzV2ZENCdmQyNWxaQ0JpZVNCaGJua2diM0puWVc1cGVtRjBhVzl1TGlCa2FXUWdlVzkxSUhWelpTQkFiM2R1WldSQ2VTZ3BJQ2h2Y2lCd2NtOTJhV1JsSUhSb1pTQnVZVzFsS1Q5Z1hHNGdJQ0FnS1R0Y2JpQWdjbVYwZFhKdUlHQmZYeVI3ZEc5UVlYTmpZV3hEWVhObEtHOXlaMDVoYldVcGZWQnlhWFpoZEdWRGIyeHNaV04wYVc5dVlEdGNibjA3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRk5sWjNKbFoyRjBaV1JFWVhSaFRXVjBZV1JoZEdFZ1BTQjdYRzRnSUdOdmJHeGxZM1JwYjI1ek9pQnpkSEpwYm1jZ2ZDQkRiMnhzWldOMGFXOXVVbVZ6YjJ4MlpYSTdYRzU5TzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJRY21sdmNtbDBlU0JtYjNJZ1pXRnliSGtnWTI5c2JHVmpkR2x2YmlCbGVIUnlZV04wYVc5dUlDaGlaV1p2Y21VZ2NHc2daMlZ1WlhKaGRHbHZiaUJoZENCd2NtbHZjbWwwZVNBMk1DbGNiaUFxSUVCemRXMXRZWEo1SUZSb2FYTWdjSEpwYjNKcGRIa2daVzV6ZFhKbGN5QmpiMnhzWldOMGFXOXVjeUJoY21VZ2NtVm5hWE4wWlhKbFpDQnBiaUJqYjI1MFpYaDBJR0psWm05eVpTQmhibmtnYzJWeGRXVnVZMlZjYmlBcUlHOXdaWEpoZEdsdmJuTWdiMk5qZFhJc0lHRnNiRzkzYVc1bklITmxjWFZsYm1ObGN5QjBieUJpWlNCeVpYQnNhV05oZEdWa0lIUnZJSEJ5YVhaaGRHVXZjMmhoY21Wa0lHTnZiR3hsWTNScGIyNXpMbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnVTBWSFVrVkhRVlJGUkY5RFQweE1SVU5VU1U5T1gwVllWRkpCUTFSSlQwNWZVRkpKVDFKSlZGa2dQU0F6TlR0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHRndjR3g1VTJWbmNtVm5ZWFJwYjI1R2JHRm5jenhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNCamJHRjZlam9nVFN4Y2JpQWdZMjlzYkdWamRHbHZibk02SUhOMGNtbHVaMXRkTEZ4dUlDQmpkSGc2SUdGdWVWeHVLU0I3WEc0Z0lDOHZJRkpsWjJsemRHVnlJR052Ykd4bFkzUnBiMjV6SUdWaGNteDVJSFZ6YVc1bklISmxZV1JHY205dElDMGdkR2hwY3lCaGJHeHZkM01nYzJWeGRXVnVZMlVnWTI5a1pWeHVJQ0F2THlCMGJ5QnJibTkzSUhkb2FXTm9JR052Ykd4bFkzUnBiMjV6SUhSdklISmxjR3hwWTJGMFpTQjBieUJrZFhKcGJtY2djR3NnWjJWdVpYSmhkR2x2Ymx4dUlDQnBaaUFvWTI5c2JHVmpkR2x2Ym5NdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDaGpkSGdnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLUzV5WldGa1JuSnZiU2hqYjJ4c1pXTjBhVzl1Y3lrN1hHNGdJSDFjYmx4dUlDQXZMeUJEYUdWamF5QnBaaUJ0YjJSbGJDQnBjeUJtZFd4c2VTQnpaV2R5WldkaGRHVmtJQ2hoYkd3Z2JtOXVMWEJySUhCeWIzQmxjblJwWlhNZ1lYSmxJSEJ5YVhaaGRHVXZjMmhoY21Wa0wzUnlZVzV6YVdWdWRDa3VYRzRnSUM4dklGVnpaU0JOYjJSbGJDNXpaV2R5WldkaGRHVW9LU0IzYUdsamFDQnBjeUIwYUdVZ1kyRnViMjVwWTJGc0lIZGhlU0IwYnlCa1pYUmxjbTFwYm1VZ2QyaGhkQ2R6SUhSeVlXNXphV1Z1ZEN4Y2JpQWdMeThnY21GMGFHVnlJSFJvWVc0Z2NtVmhaR2x1WnlCRVFrdGxlWE11VkZKQlRsTkpSVTVVSUcxbGRHRmtZWFJoSUhkb2FXTm9JRzFoZVNCdWIzUWdZV05qZFcxMWJHRjBaU0JqYjNKeVpXTjBiSGxjYmlBZ0x5OGdkMmhsYmlCamJHRnpjeTFzWlhabGJDQkFjSEpwZG1GMFpVUmhkR0VnWVhCd2JHbGxjeUJrWldOdmNtRjBiM0p6SUdsMFpYSmhkR2wyWld4NUxseHVJQ0JwWmlBb0lXTjBlQzVwYzBaMWJHeDVVMlZuY21WbllYUmxaQ0FtSmlCamIyeHNaV04wYVc5dWN5NXNaVzVuZEdncElIdGNiaUFnSUNCcFppQW9JV2hoYzFCMVlteHBZMUJ5YjNCbGNuUnBaWE1vWTJ4aGVub3VZMjl1YzNSeWRXTjBiM0lnWVhNZ1EyOXVjM1J5ZFdOMGIzSThUVDRwS1NCN1hHNGdJQ0FnSUNCamRIZ3ViV0Z5YTBaMWJHeDVVMlZuY21WbllYUmxaQ2dwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWVhONWJtTWdablZ1WTNScGIyNGdZWEJ3YkhsTmFYSnliM0pHYkdGbmN6eE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJRzF6Y0RvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0JqZEhnNklFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkRnh1S1NCN1hHNGdJR2xtSUNnaGJYTndLU0J5WlhSMWNtNDdYRzRnSUdOdmJuTjBJRzFwY25KdmNrMWxkR0VnUFNCTmIyUmxiQzV0YVhKeWIzSmxaRUYwS0dOc1lYcDZLVHRjYmlBZ2FXWWdLQ0Z0YVhKeWIzSk5aWFJoS1NCeVpYUjFjbTQ3WEc0Z0lHTnZibk4wSUcxaGRHTm9aWE1nUFZ4dUlDQWdJRzF6Y0NBOVBUMGdiV2x5Y205eVRXVjBZUzV0YzNCSlpDQjhmRnh1SUNBZ0lDaHRhWEp5YjNKTlpYUmhMbU52Ym1ScGRHbHZiaUFtSmlCdGFYSnliM0pOWlhSaExtTnZibVJwZEdsdmJpaHRjM0FwS1R0Y2JpQWdhV1lnS0NGdFlYUmphR1Z6S1NCeVpYUjFjbTQ3WEc0Z0lHTnZibk4wSUdOdmJHeGxZM1JwYjI0Z1BTQmhkMkZwZENCbGRtRnNUV2x5Y205eVRXVjBZV1JoZEdFb1hHNGdJQ0FnYm1WM0lHTnNZWHA2S0Nrc1hHNGdJQ0FnYldseWNtOXlUV1YwWVM1eVpYTnZiSFpsY2l4Y2JpQWdJQ0JqZEhoY2JpQWdLVHRjYmlBZ0x5OGdUV2x5Y205eUlFMVRVQ0J0WVhSamFHVnpJT0tBbENCeWIzVjBaU0J5WldGa2N5QmxlR05zZFhOcGRtVnNlU0IwYUhKdmRXZG9JSFJvWlNCdGFYSnliM0pjYmlBZ0x5OGdZMjlzYkdWamRHbHZiaTRnUTJ4bFlYSWdZVzU1SUhCeVpYWnBiM1Z6YkhrZ2NtVm5hWE4wWlhKbFpDQmpiMnhzWldOMGFXOXVjeUJ6YnlCeGRXVnlhV1Z6WEc0Z0lDOHZJR2R2SUU5T1RGa2dkRzhnZEdobElHMXBjbkp2Y2l3Z2JtOTBJSFJ2SUhSb1pTQnlaV2QxYkdGeUlIQnlhWFpoZEdVdmMyaGhjbVZrSUc5dVpYTXVYRzRnSUdOMGVDNXdkWFFvWENKelpXZHlaV2RoZEdWU1pXRmtYQ0lzSUhWdVpHVm1hVzVsWkNrN1hHNGdJR04wZUM1d2RYUW9YQ0p6WldkeVpXZGhkR1ZTWldGa1UzUmhZMnRjSWl3Z2RXNWtaV1pwYm1Wa0tUdGNiaUFnWTNSNExuQjFkQ2hjSW1aMWJHeDVVMlZuY21WbllYUmxaRndpTENCMGNuVmxLVHRjYmlBZ1kzUjRMbkIxZENoY0ltMXBjbkp2Y2x3aUlHRnpJR0Z1ZVN3Z2RISjFaU2s3WEc0Z0lHTjBlQzV3ZFhRb1hDSnRhWEp5YjNKRGIyeHNaV04wYVc5dVhDSWdZWE1nWVc1NUxDQmpiMnhzWldOMGFXOXVLVHRjYmlBZ1kzUjRMbkpsWVdSR2NtOXRLR052Ykd4bFkzUnBiMjRwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJvWVhOUWRXSnNhV05RY205d1pYSjBhV1Z6UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWTJ4aGVubzZJRU52Ym5OMGNuVmpkRzl5UEUwK0tUb2dZbTl2YkdWaGJpQjdYRzRnSUdOdmJuTjBJR0YwZEhKcFluVjBaWE1nUFNCTlpYUmhaR0YwWVM1blpYUkJkSFJ5YVdKMWRHVnpLR05zWVhwNktTQjhmQ0JiWFR0Y2JpQWdZMjl1YzNRZ2NHc2dQU0JOYjJSbGJDNXdheWhqYkdGNmVpazdYRzRnSUdOdmJuTjBJSFJ5WVc1emFXVnVkRTFsZEdFZ1BTQk5aWFJoWkdGMFlTNW5aWFFvWTJ4aGVub2dZWE1nWVc1NUxDQkVRa3RsZVhNdVZGSkJUbE5KUlU1VUtTQjhmQ0I3ZlR0Y2JpQWdZMjl1YzNRZ2NISnBkbUYwWlUxbGRHRWdQVnh1SUNBZ0lFMWxkR0ZrWVhSaExtZGxkQ2hqYkdGNmVpQmhjeUJoYm5rc0lFMWxkR0ZrWVhSaExtdGxlU2hHWVdKeWFXTk5iMlJsYkV0bGVYTXVVRkpKVmtGVVJTa3BJSHg4SUh0OU8xeHVJQ0JqYjI1emRDQnphR0Z5WldSTlpYUmhJRDFjYmlBZ0lDQk5aWFJoWkdGMFlTNW5aWFFvWTJ4aGVub2dZWE1nWVc1NUxDQk5aWFJoWkdGMFlTNXJaWGtvUm1GaWNtbGpUVzlrWld4TFpYbHpMbE5JUVZKRlJDa3BJSHg4SUh0OU8xeHVYRzRnSUhKbGRIVnliaUJoZEhSeWFXSjFkR1Z6TG5OdmJXVW9LR0YwZEhJcElEMCtJSHRjYmlBZ0lDQnBaaUFvWVhSMGNpQTlQVDBnY0dzcElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvWVhSMGNpQnBiaUIwY21GdWMybGxiblJOWlhSaEtTQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdhV1lnS0dGMGRISWdhVzRnY0hKcGRtRjBaVTFsZEdFcElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvWVhSMGNpQnBiaUJ6YUdGeVpXUk5aWFJoS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUgwcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkZZWEpzZVNCb1lXNWtiR1Z5SUhSdklHVjRkSEpoWTNRZ1lXNWtJSEpsWjJsemRHVnlJR052Ykd4bFkzUnBiMjV6SUdsdUlHTnZiblJsZUhSY2JpQXFJRUJ6ZFcxdFlYSjVJRkoxYm5NZ2QybDBhQ0J3Y21sdmNtbDBlU0E4SURRd0lIUnZJR1Y0ZEhKaFkzUWdZMjlzYkdWamRHbHZiaUJ1WVcxbGN5QmlaV1p2Y21VZ2NHc2daMlZ1WlhKaGRHbHZiaUFvY0hKcGIzSnBkSGtnTmpBcExseHVJQ29nVkdocGN5QmhiR3h2ZDNNZ1JtRmljbWxqUTI5dWRISmhZM1JUWlhGMVpXNWpaU0IwYnlCcmJtOTNJSGRvYVdOb0lHTnZiR3hsWTNScGIyNXpJSFJ2SUhKbGNHeHBZMkYwWlNCMGJ5NWNiaUFxSUVCMFpXMXdiR0YwWlNCTklDMGdWSGx3WlNCMGFHRjBJR1Y0ZEdWdVpITWdUVzlrWld4Y2JpQXFJRUJ3WVhKaGJTQjdRMjl1ZEdWNGRFOW1QRkpsY0c5emFYUnZjbms4VFN3Z1lXNTVQajU5SUdOdmJuUmxlSFFnTFNCVWFHVWdaWGhsWTNWMGFXOXVJR052Ym5SbGVIUmNiaUFxSUVCd1lYSmhiU0I3VTJWbmNtVm5ZWFJsWkVSaGRHRk5aWFJoWkdGMFlTQjhJRk5sWjNKbFoyRjBaV1JFWVhSaFRXVjBZV1JoZEdGYlhYMGdaR0YwWVNBdElGUm9aU0J6WldkeVpXZGhkR1ZrSUdSaGRHRWdiV1YwWVdSaGRHRmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5JSHdnYzNSeWFXNW5XMTE5SUd0bGVYTWdMU0JVYUdVZ2NISnZjR1Z5ZEhrZ2EyVjVLSE1wSUdKbGFXNW5JSE5sWjNKbFoyRjBaV1JjYmlBcUlFQndZWEpoYlNCN1RYMGdiVzlrWld3Z0xTQlVhR1VnYlc5a1pXd2dhVzV6ZEdGdVkyVmNiaUFxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4ZG05cFpENTlYRzRnS2k5Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJsZUhSeVlXTjBVMlZuY21WbllYUmxaRU52Ykd4bFkzUnBiMjV6UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lIUm9hWE02SUZKbGNHOXphWFJ2Y25rOFRTd2dZVzU1UGl4Y2JpQWdZMjl1ZEdWNGREb2dRMjl1ZEdWNGRFOW1QSFI1Y0dWdlppQjBhR2x6UGl4Y2JpQWdaR0YwWVRvZ1UyVm5jbVZuWVhSbFpFUmhkR0ZOWlhSaFpHRjBZU0I4SUZObFozSmxaMkYwWldSRVlYUmhUV1YwWVdSaGRHRmJYU3hjYmlBZ2EyVjVjem9nYTJWNWIyWWdUU0I4SUNoclpYbHZaaUJOS1Z0ZExGeHVJQ0J0YjJSbGJEb2dUVnh1S1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lHTnZibk4wSUdSaGRHRkJjbkpoZVNBOUlDaGNiaUFnSUNCQmNuSmhlUzVwYzBGeWNtRjVLR1JoZEdFcElEOGdaR0YwWVNBNklGdGtZWFJoWFZ4dUlDQXBJR0Z6SUZObFozSmxaMkYwWldSRVlYUmhUV1YwWVdSaGRHRmJYVHRjYmx4dUlDQmpiMjV6ZENCdElEMWNiaUFnSUNCamIyNTBaWGgwTG1kbGRFOXlWVzVrWldacGJtVmtLRndpWVd4c2IzZEhaVzVsY21GMGFXOXVUM1psY25KcFpHVmNJaWtnZkh3Z1ptRnNjMlZjYmlBZ0lDQWdJRDhnWTI5dWRHVjRkQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbTkzYm1WeVQzWmxjbkpwWkdWY0lpbGNiaUFnSUNBZ0lEb2dkVzVrWldacGJtVmtPMXh1WEc0Z0lHTnZibk4wSUcxemNDQTlYRzRnSUNBZ2JTQjhmQ0JOYjJSbGJDNXZkMjVsY2s5bUtHMXZaR1ZzS1NCOGZDQmxlSFJ5WVdOMFRYTndTV1FvWTI5dWRHVjRkQzVuWlhRb1hDSnBaR1Z1ZEdsMGVWd2lLU2s3WEc1Y2JpQWdhV1lnS0NGdGMzQXBJSHRjYmlBZ0lDQXZMeUJEWVc0bmRDQmxlSFJ5WVdOMElHTnZiR3hsWTNScGIyNXpJSGRwZEdodmRYUWdUVk5RTENCM2FXeHNJR0psSUdOaGRXZG9kQ0JpZVNCc1lYUmxjaUJvWVc1a2JHVnljMXh1SUNBZ0lISmxkSFZ5Ymp0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wSUdOdmJHeGxZM1JwYjI1ek9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQm1iM0lnS0dOdmJuTjBJRzFsZEdGa1lYUmhJRzltSUdSaGRHRkJjbkpoZVNrZ2UxeHVJQ0FnSUdOdmJuTjBJR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5SUcxbGRHRmtZWFJoTG1OdmJHeGxZM1JwYjI1ek8xeHVJQ0FnSUdOdmJuTjBJR052Ykd4bFkzUnBiMjRnUFZ4dUlDQWdJQ0FnZEhsd1pXOW1JR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5UFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ0lDQS9JR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjbHh1SUNBZ0lDQWdJQ0E2SUdOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lodGIyUmxiQ3dnYlhOd0xDQmpiMjUwWlhoMEtUdGNiaUFnSUNCcFppQW9ZMjlzYkdWamRHbHZiaUFtSmlBaFkyOXNiR1ZqZEdsdmJuTXVhVzVqYkhWa1pYTW9ZMjlzYkdWamRHbHZiaWtwSUh0Y2JpQWdJQ0FnSUdOdmJHeGxZM1JwYjI1ekxuQjFjMmdvWTI5c2JHVmpkR2x2YmlrN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUdGd2NHeDVVMlZuY21WbllYUnBiMjVHYkdGbmN5aHRiMlJsYkN3Z1kyOXNiR1ZqZEdsdmJuTXNJR052Ym5SbGVIUXBPMXh1WEc0Z0lDOHZJRk4wYjNKbElITmxaM0psWjJGMGFXOXVJRzFsZEdGa1lYUmhJSEJsY2kxelpYRjFaVzVqWlNCemJ5QkdZV0p5YVdORGIyNTBjbUZqZEZObGNYVmxibU5sSUdOaGJpQmtaV05wWkdWY2JpQWdMeThnZDJobGNtVWdkRzhnYzNSdmNtVXZjbVZ3YkdsallYUmxJSE5sY1hWbGJtTmxJSEpsWTI5eVpITWdLSEIxWW14cFl5QjJjeUJ3Y21sMllYUmxMM05vWVhKbFpDa3VYRzRnSUM4dlhHNGdJQzh2SUMwZ1lFQndheWdwWUNCelpYRjFaVzVqWlhNZ2RYTmxJSFJvWlNCemFHRnlaV1FnYm1GdFpTQmdKSHQwWVdKc1pYMWZjR3RnSUNodWJ5QnBaQ0JqYjIxd2IyNWxiblFwTGx4dUlDQXZMeUF0SUdCQWMyVnhkV1Z1WTJVb0tXQWdMeUJ3WlhKemFYTjBaVzUwSUdCQWRtVnljMmx2YmloMGNuVmxLV0FnYzJWeGRXVnVZMlZ6SUdGeVpTQndaWEl0Ylc5a1pXd3RhVzV6ZEdGdVkyVTZYRzRnSUM4dklDQWdZQ1I3ZEdGaWJHVjlYeVI3YVdSOVh5UjdjSEp2Y0dWeWRIbDlZQzVjYmlBZ1kyOXVjM1FnYTJWNVFYSnlZWGtnUFNBb1FYSnlZWGt1YVhOQmNuSmhlU2hyWlhsektTQS9JR3RsZVhNZ09pQmJhMlY1YzEwcElHRnpJQ2hyWlhsdlppQk5LVnRkTzF4dUlDQmpiMjV6ZENCd2EwdGxlU0E5SUUxdlpHVnNMbkJyS0cxdlpHVnNMbU52Ym5OMGNuVmpkRzl5SUdGeklHRnVlU2tnWVhNZ2EyVjViMllnVFR0Y2JpQWdZMjl1YzNRZ2NHdFRaWEZPWVcxbElEMGdUVzlrWld3dWMyVnhkV1Z1WTJWT1lXMWxLRzF2WkdWc0xDQmNJbkJyWENJcE8xeHVYRzRnSUdOdmJuTjBJR2xrVm1Gc2RXVWdQU0FvYlc5a1pXd2dZWE1nWVc1NUtWdHdhMHRsZVNCaGN5QmhibmxkTzF4dUlDQmpiMjV6ZENCallXNUNkV2xzWkZCbGNrbHVjM1JoYm1ObElEMWNiaUFnSUNCMGVYQmxiMllnYVdSV1lXeDFaU0FoUFQwZ1hDSjFibVJsWm1sdVpXUmNJaUFtSmlCcFpGWmhiSFZsSUNFOVBTQnVkV3hzTzF4dVhHNGdJQzh2SUVGc2QyRjVjeUIxYm1sdmJpQmpiMnhzWldOMGFXOXVjeUJtYjNJZ2RHaGxJSEJySUhObGNYVmxibU5sSUhkb1pXNGdkR2hsSUcxdlpHVnNJSFZ6WlhNZ2MyVm5jbVZuWVhSbFpDQmtZWFJoTGx4dUlDQW9ZMjl1ZEdWNGRDQmhjeUJoYm5rcExuTmxkRk5sY1hWbGJtTmxVMlZuY21WbllYUnBiMjRvWEc0Z0lDQWdjR3RUWlhGT1lXMWxMRnh1SUNBZ0lDaGpiMjUwWlhoMElHRnpJR0Z1ZVNrdWFYTkdkV3hzZVZObFozSmxaMkYwWldRc1hHNGdJQ0FnWTI5c2JHVmpkR2x2Ym5OY2JpQWdLVHRjYmx4dUlDQXZMeUJHYjNJZ2NHVnlMWEJ5YjNCbGNuUjVJSE5sY1hWbGJtTmxjeXdnYjI1c2VTQnlaV2RwYzNSbGNpQjNhR1Z1SUhkbElHTmhiaUJqYjIxd2RYUmxJR0Z1SUdsa0xYTmpiM0JsWkNCdVlXMWxMbHh1SUNBdkx5QlVhR2x6SUd0bFpYQnpJSE5sY1hWbGJtTmxjeUJqYjI1emRISmhhVzVsWkNCMGJ5QjBhR1VnWTI5c2JHVmpkR2x2Ym5NZ2RHaGxJR0YwZEhKcFluVjBaU0JsZUdsemRITWdhVzR1WEc0Z0lHbG1JQ2hqWVc1Q2RXbHNaRkJsY2tsdWMzUmhibU5sS1NCN1hHNGdJQ0FnWm05eUlDaGpiMjV6ZENCcklHOW1JR3RsZVVGeWNtRjVLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbTl3VTJWeFRtRnRaU0E5SUUxdlpHVnNMbk5sY1hWbGJtTmxUbUZ0WlNodGIyUmxiQ3dnVTNSeWFXNW5LR2xrVm1Gc2RXVXBMQ0JUZEhKcGJtY29heWtwTzF4dUlDQWdJQ0FnS0dOdmJuUmxlSFFnWVhNZ1lXNTVLUzV6WlhSVFpYRjFaVzVqWlZObFozSmxaMkYwYVc5dUtGeHVJQ0FnSUNBZ0lDQndjbTl3VTJWeFRtRnRaU3hjYmlBZ0lDQWdJQ0FnS0dOdmJuUmxlSFFnWVhNZ1lXNTVLUzVwYzBaMWJHeDVVMlZuY21WbllYUmxaQ3hjYmlBZ0lDQWdJQ0FnWTI5c2JHVmpkR2x2Ym5OY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ6WldkeVpXZGhkR1ZrUkdGMFlVOXVRM0psWVhSbFBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJSFJvYVhNNklGSmxjRzl6YVhSdmNuazhUU3dnWVc1NVBpeGNiaUFnWTI5dWRHVjRkRG9nUTI5dWRHVjRkRTltUEhSNWNHVnZaaUIwYUdselBpeGNiaUFnWkdGMFlUb2dVMlZuY21WbllYUmxaRVJoZEdGTlpYUmhaR0YwWVNCOElGTmxaM0psWjJGMFpXUkVZWFJoVFdWMFlXUmhkR0ZiWFN4Y2JpQWdhMlY1Y3pvZ2EyVjViMllnVFNCOElDaHJaWGx2WmlCTktWdGRMRnh1SUNCdGIyUmxiRG9nVFZ4dUtUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJR052Ym5OMElHUmhkR0ZCY25KaGVTQTlJQ2hjYmlBZ0lDQkJjbkpoZVM1cGMwRnljbUY1S0dSaGRHRXBJRDhnWkdGMFlTQTZJRnRrWVhSaFhWeHVJQ0FwSUdGeklGTmxaM0psWjJGMFpXUkVZWFJoVFdWMFlXUmhkR0ZiWFR0Y2JpQWdZMjl1YzNRZ2EyVjVRWEp5WVhrZ1BTQW9RWEp5WVhrdWFYTkJjbkpoZVNoclpYbHpLU0EvSUd0bGVYTWdPaUJiYTJWNWMxMHBJR0Z6SUNoclpYbHZaaUJOS1Z0ZE8xeHVJQ0JwWmlBb2EyVjVRWEp5WVhrdWJHVnVaM1JvSUNFOVBTQmtZWFJoUVhKeVlYa3ViR1Z1WjNSb0tWeHVJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdZRk5sWjNKbFoyRjBaV1FnWkdGMFlTQnJaWGx6SUdGdVpDQnRaWFJoWkdGMFlTQnNaVzVuZEdnZ2JXbHpiV0YwWTJoZ1hHNGdJQ0FnS1R0Y2JseHVJQ0JqYjI1emRDQnRjM0FnUFZ4dUlDQWdJRTF2WkdWc0xtOTNibVZ5VDJZb2JXOWtaV3dwSUh4OFhHNGdJQ0FnWlhoMGNtRmpkRTF6Y0Vsa0tGeHVJQ0FnSUNBZ1kyOXVkR1Y0ZEM1blpYUW9YQ0pwWkdWdWRHbDBlVndpS1NCaGN5QnpkSEpwYm1jZ2ZDQkRiR2xsYm5SSlpHVnVkR2wwZVNCOElIVnVaR1ZtYVc1bFpGeHVJQ0FnSUNrN1hHNGdJR2xtSUNnaGJYTndLVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QldZV3hwWkdGMGFXOXVSWEp5YjNJb1hHNGdJQ0FnSUNCZ1ZHaGxjbVVuY3lCdWJ5QmhjM05wWjI1bFpDQnZjbWRoYm1sNllYUnBiMjRnWm05eUlHMXZaR1ZzSUNSN2JXOWtaV3d1WTI5dWMzUnlkV04wYjNJdWJtRnRaWDFnWEc0Z0lDQWdLVHRjYmx4dUlDQmpiMjV6ZENCamIyeHNaV04wYVc5dVVtVnpiMngyWlhJZ1BTQmtZWFJoUVhKeVlYbGJNRjB1WTI5c2JHVmpkR2x2Ym5NN1hHNGdJR052Ym5OMElHTnZiR3hsWTNScGIyNGdQVnh1SUNBZ0lIUjVjR1Z2WmlCamIyeHNaV04wYVc5dVVtVnpiMngyWlhJZ1BUMDlJRndpYzNSeWFXNW5YQ0pjYmlBZ0lDQWdJRDhnWTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5WEc0Z0lDQWdJQ0E2SUdOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lodGIyUmxiQ3dnYlhOd0xDQmpiMjUwWlhoMEtUdGNibHh1SUNBdkx5QldZV3hwWkdGMFpTQmhiR3dnYTJWNWN5QnlaWE52YkhabElIUnZJSFJvWlNCellXMWxJR052Ykd4bFkzUnBiMjVjYmlBZ2EyVjVRWEp5WVhrdVptOXlSV0ZqYUNnb1gyc3NJR2twSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0JqSUQxY2JpQWdJQ0FnSUhSNWNHVnZaaUJrWVhSaFFYSnlZWGxiYVYwdVkyOXNiR1ZqZEdsdmJuTWdQVDA5SUZ3aWMzUnlhVzVuWENKY2JpQWdJQ0FnSUNBZ1B5QmtZWFJoUVhKeVlYbGJhVjB1WTI5c2JHVmpkR2x2Ym5OY2JpQWdJQ0FnSUNBZ09pQmtZWFJoUVhKeVlYbGJhVjB1WTI5c2JHVmpkR2x2Ym5Nb2JXOWtaV3dzSUcxemNDd2dZMjl1ZEdWNGRDazdYRzRnSUNBZ2FXWWdLR01nSVQwOUlHTnZiR3hsWTNScGIyNHBYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWVzV6ZFhCd2IzSjBaV1JGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRk5sWjNKbFoyRjBaV1FnWkdGMFlTQmpiMnhzWldOMGFXOXVJRzFwYzIxaGRHTm9PaUFrZTJOOUlIWnpJQ1I3WTI5c2JHVmpkR2x2Ym4xZ1hHNGdJQ0FnSUNBcE8xeHVJQ0I5S1R0Y2JseHVJQ0JqYjI1emRDQnJaWGxUZEhKcGJtZHpJRDBnYTJWNVFYSnlZWGt1YldGd0tDaHJaWGtwSUQwK0lGTjBjbWx1WnloclpYa3BLVHRjYmlBZ0x5OGdVM1J2Y21VZ2RHaGxJSE5sWjNKbFoyRjBaV1FnYlc5a1pXd2c0b0NVSUhCeVpYQmhjbVVvS1NCM2FXeHNJR1pwYkhSbGNpQjBieUJqYjJ4c1pXTjBhVzl1TFhOd1pXTnBabWxqSUdacFpXeGtjMXh1SUNBb1kyOXVkR1Y0ZENCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFwTG5keWFYUmxWRzhvWTI5c2JHVmpkR2x2Yml3Z2EyVjVVM1J5YVc1bmN5azdYRzU5WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ6WldkeVpXZGhkR1ZrUkdGMFlVOXVVbVZoWkR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQjBhR2x6T2lCU1pYQnZjMmwwYjNKNVBFMHNJR0Z1ZVQ0c1hHNGdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUThSbUZpY21salJteGhaM00rTEZ4dUlDQmtZWFJoT2lCVFpXZHlaV2RoZEdWa1JHRjBZVTFsZEdGa1lYUmhJSHdnVTJWbmNtVm5ZWFJsWkVSaGRHRk5aWFJoWkdGMFlWdGRMRnh1SUNCclpYbHpPaUJyWlhsdlppQk5JSHdnS0d0bGVXOW1JRTBwVzEwc1hHNGdJRzF2WkdWc09pQk5YRzRwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ1kyOXVjM1FnWkdGMFlVRnljbUY1SUQwZ0tGeHVJQ0FnSUVGeWNtRjVMbWx6UVhKeVlYa29aR0YwWVNrZ1B5QmtZWFJoSURvZ1cyUmhkR0ZkWEc0Z0lDa2dZWE1nVTJWbmNtVm5ZWFJsWkVSaGRHRk5aWFJoWkdGMFlWdGRPMXh1SUNCamIyNXpkQ0JyWlhsQmNuSmhlU0E5SUNoQmNuSmhlUzVwYzBGeWNtRjVLR3RsZVhNcElEOGdhMlY1Y3lBNklGdHJaWGx6WFNrZ1lYTWdLR3RsZVc5bUlFMHBXMTA3WEc0Z0lHbG1JQ2hyWlhsQmNuSmhlUzVzWlc1bmRHZ2dJVDA5SUdSaGRHRkJjbkpoZVM1c1pXNW5kR2dwWEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNCZ1UyVm5jbVZuWVhSbFpDQmtZWFJoSUd0bGVYTWdZVzVrSUcxbGRHRmtZWFJoSUd4bGJtZDBhQ0J0YVhOdFlYUmphR0JjYmlBZ0lDQXBPMXh1WEc0Z0lHTnZibk4wSUcwZ1BWeHVJQ0FnSUdOdmJuUmxlSFF1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0poYkd4dmQwZGxibVZ5WVhScGIyNVBkbVZ5Y21sa1pWd2lLU0I4ZkNCbVlXeHpaVnh1SUNBZ0lDQWdQeUJqYjI1MFpYaDBMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2liM2R1WlhKUGRtVnljbWxrWlZ3aUtWeHVJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ1kyOXVjM1FnYlhOd0lEMWNiaUFnSUNCdElIeDhJRTF2WkdWc0xtOTNibVZ5VDJZb2JXOWtaV3dwSUh4OElHVjRkSEpoWTNSTmMzQkpaQ2hqYjI1MFpYaDBMbWRsZENoY0ltbGtaVzUwYVhSNVhDSXBLVHRjYmlBZ2FXWWdLQ0Z0YzNBcFhHNGdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhjYmlBZ0lDQWdJR0JVYUdWeVpTZHpJRzV2SUdGemMybG5ibVZrSUc5eVoyRnVhWHBoZEdsdmJpQm1iM0lnYlc5a1pXd2dKSHR0YjJSbGJDNWpiMjV6ZEhKMVkzUnZjaTV1WVcxbGZXQmNiaUFnSUNBcE8xeHVYRzRnSUdOdmJuTjBJR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5SUdSaGRHRkJjbkpoZVZzd1hTNWpiMnhzWldOMGFXOXVjenRjYmlBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2YmlBOVhHNGdJQ0FnZEhsd1pXOW1JR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5UFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ1B5QmpiMnhzWldOMGFXOXVVbVZ6YjJ4MlpYSmNiaUFnSUNBZ0lEb2dZWGRoYVhRZ1kyOXNiR1ZqZEdsdmJsSmxjMjlzZG1WeUtHMXZaR1ZzTENCdGMzQXNJR052Ym5SbGVIUXBPMXh1WEc0Z0lDaGpiMjUwWlhoMElHRnpJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENrdWNtVmhaRVp5YjIwb1kyOXNiR1ZqZEdsdmJpazdYRzU5WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ6WldkeVpXZGhkR1ZrUkdGMFlVOXVWWEJrWVhSbFBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJSFJvYVhNNklGSmxjRzl6YVhSdmNuazhUU3dnWVc1NVBpeGNiaUFnWTI5dWRHVjRkRG9nUTI5dWRHVjRkRTltUEhSNWNHVnZaaUIwYUdselBpeGNiaUFnWkdGMFlUb2dVMlZuY21WbllYUmxaRVJoZEdGTlpYUmhaR0YwWVNCOElGTmxaM0psWjJGMFpXUkVZWFJoVFdWMFlXUmhkR0ZiWFN4Y2JpQWdhMlY1T2lCclpYbHZaaUJOSUh3Z0tHdGxlVzltSUUwcFcxMHNYRzRnSUcxdlpHVnNPaUJOTEZ4dUlDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjV2TFhWdWRYTmxaQzEyWVhKelhHNGdJRzlzWkUxdlpHVnNPaUJOWEc0cE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdZMjl1YzNRZ1pHRjBZVUZ5Y21GNUlEMGdLRnh1SUNBZ0lFRnljbUY1TG1selFYSnlZWGtvWkdGMFlTa2dQeUJrWVhSaElEb2dXMlJoZEdGZFhHNGdJQ2tnWVhNZ1UyVm5jbVZuWVhSbFpFUmhkR0ZOWlhSaFpHRjBZVnRkTzF4dUlDQmpiMjV6ZENCclpYbEJjbkpoZVNBOUlDaEJjbkpoZVM1cGMwRnljbUY1S0d0bGVTa2dQeUJyWlhrZ09pQmJhMlY1WFNrZ1lYTWdLR3RsZVc5bUlFMHBXMTA3WEc0Z0lHbG1JQ2hyWlhsQmNuSmhlUzVzWlc1bmRHZ2dJVDA5SUdSaGRHRkJjbkpoZVM1c1pXNW5kR2dwWEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNCZ1UyVm5jbVZuWVhSbFpDQmtZWFJoSUd0bGVYTWdZVzVrSUcxbGRHRmtZWFJoSUd4bGJtZDBhQ0J0YVhOdFlYUmphR0JjYmlBZ0lDQXBPMXh1WEc0Z0lHTnZibk4wSUcxemNDQTlYRzRnSUNBZ1RXOWtaV3d1YjNkdVpYSlBaaWh0YjJSbGJDa2dmSHhjYmlBZ0lDQmxlSFJ5WVdOMFRYTndTV1FvWEc0Z0lDQWdJQ0JqYjI1MFpYaDBMbWRsZENoY0ltbGtaVzUwYVhSNVhDSXBJR0Z6SUhOMGNtbHVaeUI4SUVOc2FXVnVkRWxrWlc1MGFYUjVJSHdnZFc1a1pXWnBibVZrWEc0Z0lDQWdLVHRjYmlBZ2FXWWdLQ0Z0YzNBcFhHNGdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhjYmlBZ0lDQWdJR0JVYUdWeVpTZHpJRzV2SUdGemMybG5ibVZrSUc5eVoyRnVhWHBoZEdsdmJpQm1iM0lnYlc5a1pXd2dKSHR0YjJSbGJDNWpiMjV6ZEhKMVkzUnZjaTV1WVcxbGZXQmNiaUFnSUNBcE8xeHVYRzRnSUdOdmJuTjBJR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5SUdSaGRHRkJjbkpoZVZzd1hTNWpiMnhzWldOMGFXOXVjenRjYmlBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2YmlBOVhHNGdJQ0FnZEhsd1pXOW1JR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5UFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ1B5QmpiMnhzWldOMGFXOXVVbVZ6YjJ4MlpYSmNiaUFnSUNBZ0lEb2dZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlLRzF2WkdWc0xDQnRjM0FzSUdOdmJuUmxlSFFwTzF4dVhHNGdJR3RsZVVGeWNtRjVMbVp2Y2tWaFkyZ29LR3NzSUdrcElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCaklEMWNiaUFnSUNBZ0lIUjVjR1Z2WmlCa1lYUmhRWEp5WVhsYmFWMHVZMjlzYkdWamRHbHZibk1nUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdQeUJrWVhSaFFYSnlZWGxiYVYwdVkyOXNiR1ZqZEdsdmJuTmNiaUFnSUNBZ0lDQWdPaUJrWVhSaFFYSnlZWGxiYVYwdVkyOXNiR1ZqZEdsdmJuTW9iVzlrWld3c0lHMXpjQ3dnWTI5dWRHVjRkQ2s3WEc0Z0lDQWdhV1lnS0dNZ0lUMDlJR052Ykd4bFkzUnBiMjRwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWUZObFozSmxaMkYwWldRZ1pHRjBZU0JqYjJ4c1pXTjBhVzl1SUcxcGMyMWhkR05vT2lBa2UyTjlJSFp6SUNSN1kyOXNiR1ZqZEdsdmJuMWdYRzRnSUNBZ0lDQXBPMXh1SUNCOUtUdGNibHh1SUNCamIyNXpkQ0JyWlhsVGRISnBibWR6SUQwZ0tHdGxlVUZ5Y21GNUlHRnpJQ2hyWlhsdlppQk5LVnRkS1M1dFlYQW9LR3RsZVNrZ1BUNGdVM1J5YVc1bktHdGxlU2twTzF4dUlDQXZMeUJUZEc5eVpTQjBhR1VnYjNKcFoybHVZV3dnYlc5a1pXd2c0b0NVSUhCeVpYQmhjbVVvS1NCM2FXeHNJR1pwYkhSbGNpQjBieUJqYjJ4c1pXTjBhVzl1TFhOd1pXTnBabWxqSUdacFpXeGtjMXh1SUNBb1kyOXVkR1Y0ZENCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFwTG5keWFYUmxWRzhvWTI5c2JHVmpkR2x2Yml3Z2EyVjVVM1J5YVc1bmN5azdYRzU5WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ6WldkeVpXZGhkR1ZrUkdGMFlVOXVSR1ZzWlhSbFBGeHVJQ0JOSUdWNGRHVnVaSE1nVFc5a1pXd3NYRzRnSUZJZ1pYaDBaVzVrY3lCU1pYQnZjMmwwYjNKNVBFMHNJR0Z1ZVQ0c1hHNGdJRllnWlhoMFpXNWtjeUJUWldkeVpXZGhkR1ZrUkdGMFlVMWxkR0ZrWVhSaExGeHVQaWhjYmlBZ2RHaHBjem9nVWl4Y2JpQWdZMjl1ZEdWNGREb2dRMjl1ZEdWNGRFOW1QRkkrTEZ4dUlDQmtZWFJoT2lCV0lId2dWbHRkTEZ4dUlDQnJaWGs2SUNoclpYbHZaaUJOS1Z0ZExGeHVJQ0J0YjJSbGJEb2dUVnh1S1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lHTnZibk4wSUdSaGRHRkJjbkpoZVNBOUlDaEJjbkpoZVM1cGMwRnljbUY1S0dSaGRHRXBJRDhnWkdGMFlTQTZJRnRrWVhSaFhTa2dZWE1nVmx0ZE8xeHVJQ0JqYjI1emRDQnJaWGxCY25KaGVTQTlJQ2hCY25KaGVTNXBjMEZ5Y21GNUtHdGxlU2tnUHlCclpYa2dPaUJiYTJWNVhTa2dZWE1nS0d0bGVXOW1JRTBwVzEwN1hHNGdJR2xtSUNoclpYbEJjbkpoZVM1c1pXNW5kR2dnSVQwOUlHUmhkR0ZCY25KaGVTNXNaVzVuZEdncFhHNGdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQmdVMlZuY21WbllYUmxaQ0JrWVhSaElHdGxlWE1nWVc1a0lHMWxkR0ZrWVhSaElHeGxibWQwYUNCdGFYTnRZWFJqYUdCY2JpQWdJQ0FwTzF4dVhHNGdJR052Ym5OMElHMGdQVnh1SUNBZ0lHTnZiblJsZUhRdVoyVjBUM0pWYm1SbFptbHVaV1FvWENKaGJHeHZkMGRsYm1WeVlYUnBiMjVQZG1WeWNtbGtaVndpS1NCOGZDQm1ZV3h6WlZ4dUlDQWdJQ0FnUHlCamIyNTBaWGgwTG1kbGRFOXlWVzVrWldacGJtVmtLRndpYjNkdVpYSlBkbVZ5Y21sa1pWd2lLVnh1SUNBZ0lDQWdPaUIxYm1SbFptbHVaV1E3WEc1Y2JpQWdZMjl1YzNRZ2JYTndJRDFjYmlBZ0lDQnRJSHg4WEc0Z0lDQWdUVzlrWld3dWIzZHVaWEpQWmlodGIyUmxiQ2tnZkh4Y2JpQWdJQ0JsZUhSeVlXTjBUWE53U1dRb1hHNGdJQ0FnSUNCamIyNTBaWGgwTG1kbGRDaGNJbWxrWlc1MGFYUjVYQ0lwSUdGeklITjBjbWx1WnlCOElFTnNhV1Z1ZEVsa1pXNTBhWFI1SUh3Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnS1R0Y2JpQWdhV1lnS0NGdGMzQXBYRzRnSUNBZ2RHaHliM2NnYm1WM0lGWmhiR2xrWVhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUdCVWFHVnlaU2R6SUc1dklHRnpjMmxuYm1Wa0lHOXlaMkZ1YVhwaGRHbHZiaUJtYjNJZ2JXOWtaV3dnSkh0dGIyUmxiQzVqYjI1emRISjFZM1J2Y2k1dVlXMWxmV0JjYmlBZ0lDQXBPMXh1WEc0Z0lHTnZibk4wSUdOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lBOUlHUmhkR0ZCY25KaGVWc3dYUzVqYjJ4c1pXTjBhVzl1Y3p0Y2JpQWdZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQTlYRzRnSUNBZ2RIbHdaVzltSUdOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lBOVBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdQeUJqYjJ4c1pXTjBhVzl1VW1WemIyeDJaWEpjYmlBZ0lDQWdJRG9nWTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5S0cxdlpHVnNMQ0J0YzNBc0lHTnZiblJsZUhRcE8xeHVYRzRnSUNoamIyNTBaWGgwSUdGeklFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ2t1Y21WaFpFWnliMjBvWTI5c2JHVmpkR2x2YmlrN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhObFozSmxaMkYwWldRb1hHNGdJR052Ykd4bFkzUnBiMjQ2SUhOMGNtbHVaeUI4SUVOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2l4Y2JpQWdkSGx3WlRvZ1JtRmljbWxqVFc5a1pXeExaWGx6TGxCU1NWWkJWRVVnZkNCR1lXSnlhV05OYjJSbGJFdGxlWE11VTBoQlVrVkVMRnh1SUNCbWFXeDBaWEkvT2lBb2NISnZjRTVoYldVNklITjBjbWx1WnlrZ1BUNGdZbTl2YkdWaGJseHVLU0I3WEc0Z0lISmxkSFZ5YmlCbWRXNWpkR2x2YmlCcGJtNWxjbE5sWjNKbFoyRjBaV1FvZEdGeVoyVjBPaUJ2WW1wbFkzUXNJSEJ5YjNCbGNuUjVTMlY1UHpvZ1lXNTVLU0I3WEc0Z0lDQWdablZ1WTNScGIyNGdjMlZuY21WbllYUmxaRVJsWXloMFlYSm5aWFE2SUc5aWFtVmpkQ3dnY0hKdmNHVnlkSGxMWlhrL09pQmhibmtwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3RsZVNBOUlFMWxkR0ZrWVhSaExtdGxlU2gwZVhCbExDQndjbTl3WlhKMGVVdGxlU2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMjV6ZEhJNklFTnZibk4wY25WamRHOXlJRDBnZEdGeVoyVjBMbU52Ym5OMGNuVmpkRzl5SUdGeklFTnZibk4wY25WamRHOXlPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQnRaWFJoSUQwZ1RXVjBZV1JoZEdFdVoyVjBLR052Ym5OMGNpQmhjeUJEYjI1emRISjFZM1J2Y2l3Z2EyVjVLU0I4ZkNCN2ZUdGNiaUFnSUNBZ0lHTnZibk4wSUdOdmJHeGxZM1JwYjI1eklEMGdibVYzSUZObGRDaHRaWFJoTG1OdmJHeGxZM1JwYjI1eklIeDhJRnRkS1R0Y2JpQWdJQ0FnSUdOdmJHeGxZM1JwYjI1ekxtRmtaQ2hqYjJ4c1pXTjBhVzl1S1R0Y2JpQWdJQ0FnSUcxbGRHRXVZMjlzYkdWamRHbHZibk1nUFNCYkxpNHVZMjlzYkdWamRHbHZibk5kTzF4dUlDQWdJQ0FnVFdWMFlXUmhkR0V1YzJWMEtHTnZibk4wY2lCaGN5QkRiMjV6ZEhKMVkzUnZjaXdnYTJWNUxDQnRaWFJoS1R0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnWTI5dWMzUnlUV1YwWVNBOUlFMWxkR0ZrWVhSaExtZGxkQ2hqYjI1emRISWdZWE1nUTI5dWMzUnlkV04wYjNJc0lIUjVjR1VwSUh4OElIdDlPMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyOXVjM1J5UTI5c2JHVmpkR2x2Ym5NZ1BTQnVaWGNnVTJWMEtHTnZibk4wY2sxbGRHRXVZMjlzYkdWamRHbHZibk1nZkh3Z1cxMHBPMXh1SUNBZ0lDQWdZMjl1YzNSeVEyOXNiR1ZqZEdsdmJuTXVZV1JrS0dOdmJHeGxZM1JwYjI0cE8xeHVJQ0FnSUNBZ1kyOXVjM1J5VFdWMFlTNWpiMnhzWldOMGFXOXVjeUE5SUZzdUxpNWpiMjV6ZEhKRGIyeHNaV04wYVc5dWMxMDdYRzRnSUNBZ0lDQk5aWFJoWkdGMFlTNXpaWFFvWTI5dWMzUnlJR0Z6SUVOdmJuTjBjblZqZEc5eUxDQjBlWEJsTENCamIyNXpkSEpOWlhSaEtUdGNibHh1SUNBZ0lDQWdZMjl1YzNRZ2RISmhibk5wWlc1MFRXVjBZU0E5WEc0Z0lDQWdJQ0FnSUUxbGRHRmtZWFJoTG1kbGRDaGpiMjV6ZEhJZ1lYTWdRMjl1YzNSeWRXTjBiM0lzSUVSQ1MyVjVjeTVVVWtGT1UwbEZUbFFwSUh4OElIdDlPMXh1SUNBZ0lDQWdZMjl1YzNRZ2RYQmtZWFJsWkZSeVlXNXphV1Z1ZEUxbGRHRWdQU0I3WEc0Z0lDQWdJQ0FnSUM0dUxuUnlZVzV6YVdWdWRFMWxkR0VzWEc0Z0lDQWdJQ0FnSUZ0d2NtOXdaWEowZVV0bGVTQmhjeUJoYm5sZE9pQjdmU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0JOWlhSaFpHRjBZUzV6WlhRb1hHNGdJQ0FnSUNBZ0lHTnZibk4wY2lCaGN5QkRiMjV6ZEhKMVkzUnZjaXhjYmlBZ0lDQWdJQ0FnUkVKTFpYbHpMbFJTUVU1VFNVVk9WQ3hjYmlBZ0lDQWdJQ0FnZFhCa1lYUmxaRlJ5WVc1emFXVnVkRTFsZEdGY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdaR1ZqY3pvZ1lXNTVXMTBnUFNCYlhUdGNiaUFnSUNCcFppQW9JWEJ5YjNCbGNuUjVTMlY1S1NCN1hHNGdJQ0FnSUNBdkx5QmtaV052Y21GMFpXUWdZWFFnZEdobElHTnNZWE56SUd4bGRtVnNYRzRnSUNBZ0lDQmpiMjV6ZENCd2NtOXdaWEowYVdWeklEMGdUV1YwWVdSaGRHRXVaMlYwUVhSMGNtbGlkWFJsY3loMFlYSm5aWFFnWVhNZ1EyOXVjM1J5ZFdOMGIzSXBPMXh1SUNBZ0lDQWdjSEp2Y0dWeWRHbGxjejh1Wm05eVJXRmphQ2dvY0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXWnBiSFJsY2lCOGZDQm1hV3gwWlhJb2NDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCelpXZHlaV2RoZEdWa0tHTnZiR3hsWTNScGIyNHNJSFI1Y0dVcEtDaDBZWEpuWlhRZ1lYTWdZVzU1S1M1d2NtOTBiM1I1Y0dVc0lIQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwWVhKblpYUTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR2R5YjNWd1RtRnRaU0E5WEc0Z0lDQWdJQ0FnSUhSNWNHVnZaaUJqYjJ4c1pXTjBhVzl1SUQwOVBTQmNJbk4wY21sdVoxd2lJRDhnWTI5c2JHVmpkR2x2YmlBNklHTnZiR3hsWTNScGIyNHVkRzlUZEhKcGJtY29LVHRjYmlBZ0lDQWdJQzh2SUZWelpTQmthV1ptWlhKbGJuUWdaM0p2ZFhBZ2JtRnRaWE1nWm05eUlHVjRkSEpoWTNScGIyNGdkbk1nWkdGMFlTQm9ZVzVrYkdWeWN5QjBieUJ3Y21WMlpXNTBJRzFsY21kcGJtZGNiaUFnSUNBZ0lHTnZibk4wSUdWNGRISmhZM1JIY205MWNFNWhiV1VnUFNCZ0pIdG5jbTkxY0U1aGJXVjlPbVY0ZEhKaFkzUmdPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHRjBZVWR5YjNWd1RtRnRaU0E5SUdBa2UyZHliM1Z3VG1GdFpYMDZaR0YwWVdBN1hHNGdJQ0FnSUNCamIyNXpkQ0JsWVhKc2VVVjRkSEpoWTNScGIyNU5aWFJoSUQwZ2V5QmpiMnhzWldOMGFXOXVjem9nWTI5c2JHVmpkR2x2YmlCOU8xeHVJQ0FnSUNBZ1kyOXVjM1FnWldGeWJIbEZlSFJ5WVdOMGFXOXVSM0p2ZFhCVGIzSjBJRDBnZTF4dUlDQWdJQ0FnSUNCd2NtbHZjbWwwZVRvZ1UwVkhVa1ZIUVZSRlJGOURUMHhNUlVOVVNVOU9YMFZZVkZKQlExUkpUMDVmVUZKSlQxSkpWRmtzWEc0Z0lDQWdJQ0FnSUdkeWIzVndPaUJsZUhSeVlXTjBSM0p2ZFhCT1lXMWxMRnh1SUNBZ0lDQWdmVHRjYmlBZ0lDQWdJR1JsWTNNdWNIVnphQ2hjYmlBZ0lDQWdJQ0FnY0hKdmNDZ3BMRnh1SUNBZ0lDQWdJQ0IwY21GdWMybGxiblFvS1N4Y2JpQWdJQ0FnSUNBZ2MyVm5jbVZuWVhSbFpFUmxZeXhjYmlBZ0lDQWdJQ0FnTHk4Z1JXRnliSGtnWlhoMGNtRmpkR2x2YmlCb1lXNWtiR1Z5Y3lBdElISjFiaUJDUlVaUFVrVWdjR3NnWjJWdVpYSmhkR2x2YmlBb2NISnBiM0pwZEhrZ05qQXBYRzRnSUNBZ0lDQWdJQzh2SUZSb2FYTWdaVzV6ZFhKbGN5QmpiMnhzWldOMGFXOXVjeUJoY21VZ2NtVm5hWE4wWlhKbFpDQnBiaUJqYjI1MFpYaDBJR1p2Y2lCelpYRjFaVzVqWlNCeVpYQnNhV05oZEdsdmJseHVJQ0FnSUNBZ0lDQXZMeUJYWlNCeVpXZHBjM1JsY2lCbWIzSWdaV0ZqYUNCdmNHVnlZWFJwYjI0Z1pYaHdiR2xqYVhSc2VTQjBieUJsYm5OMWNtVWdjSEp2Y0dWeUlHaGhibVJzWlhJZ2JHOXZhM1Z3WEc0Z0lDQWdJQ0FnSUc5dUtGeHVJQ0FnSUNBZ0lDQWdJRVJDVDNCbGNtRjBhVzl1Y3k1QlRFd3NYRzRnSUNBZ0lDQWdJQ0FnWlhoMGNtRmpkRk5sWjNKbFoyRjBaV1JEYjJ4c1pXTjBhVzl1Y3lCaGN5QmhibmtzWEc0Z0lDQWdJQ0FnSUNBZ1pXRnliSGxGZUhSeVlXTjBhVzl1VFdWMFlTeGNiaUFnSUNBZ0lDQWdJQ0JsWVhKc2VVVjRkSEpoWTNScGIyNUhjbTkxY0ZOdmNuUmNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnTHk4Z1RXRnBiaUJvWVc1a2JHVnljeUJtYjNJZ2MyVm5jbVZuWVhSbFpDQmtZWFJoSUc5d1pYSmhkR2x2Ym5NZ0tIQnlhVzl5YVhSNUlEazFLVnh1SUNBZ0lDQWdJQ0J2YmtOeVpXRjBaU2hjYmlBZ0lDQWdJQ0FnSUNCelpXZHlaV2RoZEdWa1JHRjBZVTl1UTNKbFlYUmxMRnh1SUNBZ0lDQWdJQ0FnSUhzZ1kyOXNiR1ZqZEdsdmJuTTZJR052Ykd4bFkzUnBiMjRnZlN4Y2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCd2NtbHZjbWwwZVRvZ09UVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCbmNtOTFjRG9nWkdGMFlVZHliM1Z3VG1GdFpTeGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNrc1hHNGdJQ0FnSUNBZ0lHOXVVbVZoWkNoY2JpQWdJQ0FnSUNBZ0lDQnpaV2R5WldkaGRHVmtSR0YwWVU5dVVtVmhaQ0JoY3lCaGJua3NYRzRnSUNBZ0lDQWdJQ0FnZXlCamIyeHNaV04wYVc5dWN6b2dZMjlzYkdWamRHbHZiaUI5TEZ4dUlDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCeWFXOXlhWFI1T2lBNU5TeGNiaUFnSUNBZ0lDQWdJQ0FnSUdkeWIzVndPaUJrWVhSaFIzSnZkWEJPWVcxbExGeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ2IyNVZjR1JoZEdVb1hHNGdJQ0FnSUNBZ0lDQWdjMlZuY21WbllYUmxaRVJoZEdGUGJsVndaR0YwWlNCaGN5QmhibmtzWEc0Z0lDQWdJQ0FnSUNBZ2V5QmpiMnhzWldOMGFXOXVjem9nWTI5c2JHVmpkR2x2YmlCOUxGeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnlhVzl5YVhSNU9pQTVOU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHZHliM1Z3T2lCa1lYUmhSM0p2ZFhCT1lXMWxMRnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdiMjVFWld4bGRHVW9YRzRnSUNBZ0lDQWdJQ0FnYzJWbmNtVm5ZWFJsWkVSaGRHRlBia1JsYkdWMFpTQmhjeUJoYm5rc1hHNGdJQ0FnSUNBZ0lDQWdleUJqYjJ4c1pXTjBhVzl1Y3pvZ1kyOXNiR1ZqZEdsdmJpQjlMRnh1SUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ5YVc5eWFYUjVPaUE1TlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR2R5YjNWd09pQmtZWFJoUjNKdmRYQk9ZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdGd2NHeDVLQzR1TG1SbFkzTXBLSFJoY21kbGRDd2djSEp2Y0dWeWRIbExaWGtwTzF4dUlDQjlPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NISnBkbUYwWlVSaGRHRW9YRzRnSUdOdmJHeGxZM1JwYjI0NklITjBjbWx1WnlCOElFTnZiR3hsWTNScGIyNVNaWE52YkhabGNpQTlJRWx0Y0d4cFkybDBVSEpwZG1GMFpVTnZiR3hsWTNScGIyNWNiaWtnZTF4dUlDQm1kVzVqZEdsdmJpQndjbWwyWVhSbFJHRjBZU2hqYjJ4c1pXTjBhVzl1T2lCemRISnBibWNnZkNCRGIyeHNaV04wYVc5dVVtVnpiMngyWlhJcElIdGNiaUFnSUNCeVpYUjFjbTRnYzJWbmNtVm5ZWFJsWkNoamIyeHNaV04wYVc5dUxDQkdZV0p5YVdOTmIyUmxiRXRsZVhNdVVGSkpWa0ZVUlNrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z1JHVmpiM0poZEdsdmJpNW1iM0lvUm1GaWNtbGpUVzlrWld4TFpYbHpMbEJTU1ZaQlZFVXBYRzRnSUNBZ0xtUmxabWx1WlNoN1hHNGdJQ0FnSUNCa1pXTnZjbUYwYjNJNklIQnlhWFpoZEdWRVlYUmhMRnh1SUNBZ0lDQWdZWEpuY3pvZ1cyTnZiR3hsWTNScGIyNWRMRnh1SUNBZ0lIMHBYRzRnSUNBZ0xtRndjR3g1S0NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6YUdGeVpXUkVZWFJoS0dOdmJHeGxZM1JwYjI0NklITjBjbWx1WnlCOElFTnZiR3hsWTNScGIyNVNaWE52YkhabGNpa2dlMXh1SUNCbWRXNWpkR2x2YmlCemFHRnlaV1JFWVhSaEtHTnZiR3hsWTNScGIyNDZJSE4wY21sdVp5QjhJRU52Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaWtnZTF4dUlDQWdJSEpsZEhWeWJpQnpaV2R5WldkaGRHVmtLR052Ykd4bFkzUnBiMjRzSUVaaFluSnBZMDF2WkdWc1MyVjVjeTVUU0VGU1JVUXBPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJRVJsWTI5eVlYUnBiMjR1Wm05eUtFWmhZbkpwWTAxdlpHVnNTMlY1Y3k1VFNFRlNSVVFwWEc0Z0lDQWdMbVJsWm1sdVpTaDdYRzRnSUNBZ0lDQmtaV052Y21GMGIzSTZJSE5vWVhKbFpFUmhkR0VzWEc0Z0lDQWdJQ0JoY21kek9pQmJZMjlzYkdWamRHbHZibDBzWEc0Z0lDQWdmU2xjYmlBZ0lDQXVZWEJ3Ykhrb0tUdGNibjFjYmlKZGZRPT0iXX0=
@@ -19,5 +19,5 @@ exports.ERC20Events = void 0;
19
19
  */
20
20
  ERC20Events["APPROVAL"] = "Approval";
21
21
  })(exports.ERC20Events || (exports.ERC20Events = {}));
22
- //# sourceMappingURL=erc20-constants.js.map
23
- //# sourceMappingURL=erc20-constants.js.map
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjAtY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFOLElBQVksV0FrQlg7QUFsQkQsV0FBWSxXQUFXO0lBQ3JCOzs7Ozs7T0FNRztJQUNILG9DQUFxQixDQUFBO0lBRXJCOzs7Ozs7T0FNRztJQUNILG9DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFsQlcsV0FBVyxLQUFYLFdBQVcsUUFrQnRCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgZXZlbnRzIGVtaXR0ZWQgYnkgYW4gRVJDMjAgY29udHJhY3QuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBldmVudHMgdGhhdCBjYW4gYmUgZW1pdHRlZCBieSBhbiBFUkMyMCBjb250cmFjdC5cbiAqIFRoZSBldmVudHMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgRUlQLTIwIHN0YW5kYXJkLlxuICovXG5leHBvcnQgZW51bSBFUkMyMEV2ZW50cyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBgdHJhbnNmZXJgIGZ1bmN0aW9uIGlzIGNhbGxlZCBzdWNjZXNzZnVsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBmcm9tIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci5cbiAgICogQHBhcmFtIHRvIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHJlY2lwaWVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdHJhbnNmZXJyZWQuXG4gICAqL1xuICBUUkFOU0ZFUiA9IFwiVHJhbnNmZXJcIixcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGFuIGBhcHByb3ZlYCBmdW5jdGlvbiBpcyBjYWxsZWQgc3VjY2Vzc2Z1bGx5LlxuICAgKlxuICAgKiBAcGFyYW0gb3duZXIgLSBUaGUgYWRkcmVzcyBvZiB0aGUgdG9rZW4gb3duZXIuXG4gICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGFwcHJvdmVkIHNwZW5kZXIuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIGFwcHJvdmVkIGZvciB0aGUgc3BlbmRlci5cbiAgICovXG4gIEFQUFJPVkFMID0gXCJBcHByb3ZhbFwiLFxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjAtY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJjMjAtY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLENBQUMsVUFBVSxXQUFXO0lBQ2xCOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDckM7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyxtQkFBVyxJQUFJLENBQUMsbUJBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3RDLDhqREFBOGpEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyB0aGUgZXZlbnRzIGVtaXR0ZWQgYnkgYW4gRVJDMjAgY29udHJhY3QuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgZW51bSBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBldmVudHMgdGhhdCBjYW4gYmUgZW1pdHRlZCBieSBhbiBFUkMyMCBjb250cmFjdC5cbiAqIFRoZSBldmVudHMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgRUlQLTIwIHN0YW5kYXJkLlxuICovXG5leHBvcnQgdmFyIEVSQzIwRXZlbnRzO1xuKGZ1bmN0aW9uIChFUkMyMEV2ZW50cykge1xuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBhIGB0cmFuc2ZlcmAgZnVuY3Rpb24gaXMgY2FsbGVkIHN1Y2Nlc3NmdWxseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlci5cbiAgICAgKiBAcGFyYW0gdG8gLSBUaGUgYWRkcmVzcyBvZiB0aGUgcmVjaXBpZW50LlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRyYW5zZmVycmVkLlxuICAgICAqL1xuICAgIEVSQzIwRXZlbnRzW1wiVFJBTlNGRVJcIl0gPSBcIlRyYW5zZmVyXCI7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGFuIGBhcHByb3ZlYCBmdW5jdGlvbiBpcyBjYWxsZWQgc3VjY2Vzc2Z1bGx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIG93bmVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHRva2VuIG93bmVyLlxuICAgICAqIEBwYXJhbSBzcGVuZGVyIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGFwcHJvdmVkIHNwZW5kZXIuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgYXBwcm92ZWQgZm9yIHRoZSBzcGVuZGVyLlxuICAgICAqL1xuICAgIEVSQzIwRXZlbnRzW1wiQVBQUk9WQUxcIl0gPSBcIkFwcHJvdmFsXCI7XG59KShFUkMyMEV2ZW50cyB8fCAoRVJDMjBFdmVudHMgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWlhKak1qQXRZMjl1YzNSaGJuUnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDNOb1lYSmxaQzlsY21NeU1DOWxjbU15TUMxamIyNXpkR0Z1ZEhNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUU3T3pzN096dEhRVTFITzBGQlEwZ3NUVUZCVFN4RFFVRk9MRWxCUVZrc1YwRnJRbGc3UVVGc1FrUXNWMEZCV1N4WFFVRlhPMGxCUTNKQ096czdPenM3VDBGTlJ6dEpRVU5JTEc5RFFVRnhRaXhEUVVGQk8wbEJSWEpDT3pzN096czdUMEZOUnp0SlFVTklMRzlEUVVGeFFpeERRVUZCTzBGQlEzWkNMRU5CUVVNc1JVRnNRbGNzVjBGQlZ5eExRVUZZTEZkQlFWY3NVVUZyUW5SQ0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeW9xWEc0Z0tpQkZiblZ0SUhKbGNISmxjMlZ1ZEdsdVp5QjBhR1VnWlhabGJuUnpJR1Z0YVhSMFpXUWdZbmtnWVc0Z1JWSkRNakFnWTI5dWRISmhZM1F1WEc0Z0tseHVJQ29nUUhKbGJXRnlhM05jYmlBcUlGUm9hWE1nWlc1MWJTQnBjeUIxYzJWa0lIUnZJR2xrWlc1MGFXWjVJSFJvWlNCemNHVmphV1pwWXlCbGRtVnVkSE1nZEdoaGRDQmpZVzRnWW1VZ1pXMXBkSFJsWkNCaWVTQmhiaUJGVWtNeU1DQmpiMjUwY21GamRDNWNiaUFxSUZSb1pTQmxkbVZ1ZEhNZ1lYSmxJRzVoYldWa0lHRmpZMjl5WkdsdVp5QjBieUIwYUdVZ1JVbFFMVEl3SUhOMFlXNWtZWEprTGx4dUlDb3ZYRzVsZUhCdmNuUWdaVzUxYlNCRlVrTXlNRVYyWlc1MGN5QjdYRzRnSUM4cUtseHVJQ0FnS2lCRmJXbDBkR1ZrSUhkb1pXNGdZU0JnZEhKaGJuTm1aWEpnSUdaMWJtTjBhVzl1SUdseklHTmhiR3hsWkNCemRXTmpaWE56Wm5Wc2JIa3VYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0JtY205dElDMGdWR2hsSUdGa1pISmxjM01nYjJZZ2RHaGxJSE5sYm1SbGNpNWNiaUFnSUNvZ1FIQmhjbUZ0SUhSdklDMGdWR2hsSUdGa1pISmxjM01nYjJZZ2RHaGxJSEpsWTJsd2FXVnVkQzVjYmlBZ0lDb2dRSEJoY21GdElIWmhiSFZsSUMwZ1ZHaGxJR0Z0YjNWdWRDQnZaaUIwYjJ0bGJuTWdkSEpoYm5ObVpYSnlaV1F1WEc0Z0lDQXFMMXh1SUNCVVVrRk9VMFpGVWlBOUlGd2lWSEpoYm5ObVpYSmNJaXhjYmx4dUlDQXZLaXBjYmlBZ0lDb2dSVzFwZEhSbFpDQjNhR1Z1SUdGdUlHQmhjSEJ5YjNabFlDQm1kVzVqZEdsdmJpQnBjeUJqWVd4c1pXUWdjM1ZqWTJWemMyWjFiR3g1TGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2IzZHVaWElnTFNCVWFHVWdZV1JrY21WemN5QnZaaUIwYUdVZ2RHOXJaVzRnYjNkdVpYSXVYRzRnSUNBcUlFQndZWEpoYlNCemNHVnVaR1Z5SUMwZ1ZHaGxJR0ZrWkhKbGMzTWdiMllnZEdobElHRndjSEp2ZG1Wa0lITndaVzVrWlhJdVhHNGdJQ0FxSUVCd1lYSmhiU0IyWVd4MVpTQXRJRlJvWlNCaGJXOTFiblFnYjJZZ2RHOXJaVzV6SUdGd2NISnZkbVZrSUdadmNpQjBhR1VnYzNCbGJtUmxjaTVjYmlBZ0lDb3ZYRzRnSUVGUVVGSlBWa0ZNSUQwZ1hDSkJjSEJ5YjNaaGJGd2lMRnh1ZlZ4dUlsMTkiXX0=
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./erc20-constants.cjs"), exports);
18
- //# sourceMappingURL=index.js.map
19
- //# sourceMappingURL=index.js.map
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2VyYzIwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2VyYzIwLWNvbnN0YW50c1wiO1xuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLHNUQUFzVCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2VyYzIwLWNvbnN0YW50cy5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12YzJoaGNtVmtMMlZ5WXpJd0wybHVaR1Y0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMSEZEUVVGclF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMlZ5WXpJd0xXTnZibk4wWVc1MGMxd2lPMXh1SWwxOSJdfQ==