@decaf-ts/for-fabric 0.13.31-experimental.3 → 0.13.32

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 (563) hide show
  1. package/dist/for-fabric.cjs +2 -4001
  2. package/dist/for-fabric.cjs.map +1 -0
  3. package/dist/for-fabric.js +2 -4111
  4. package/dist/for-fabric.js.map +1 -0
  5. package/lib/cjs/bin/cli.cjs +2 -2
  6. package/lib/cjs/bin/cli.cjs.map +1 -0
  7. package/lib/cjs/cli-module.cjs +2 -2
  8. package/lib/cjs/cli-module.cjs.map +1 -0
  9. package/lib/cjs/cli-utils.cjs +2 -2
  10. package/lib/cjs/cli-utils.cjs.map +1 -0
  11. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  12. package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
  13. package/lib/cjs/client/FabricClientContext.cjs +2 -2
  14. package/lib/cjs/client/FabricClientContext.cjs.map +1 -0
  15. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  16. package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
  17. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  18. package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
  19. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  20. package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
  21. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  22. package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
  23. package/lib/cjs/client/collections/generation.cjs +2 -2
  24. package/lib/cjs/client/collections/generation.cjs.map +1 -0
  25. package/lib/cjs/client/collections/index.cjs +2 -2
  26. package/lib/cjs/client/collections/index.cjs.map +1 -0
  27. package/lib/cjs/client/constants.cjs +2 -2
  28. package/lib/cjs/client/constants.cjs.map +1 -0
  29. package/lib/cjs/client/crypto.cjs +2 -2
  30. package/lib/cjs/client/crypto.cjs.map +1 -0
  31. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  32. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
  33. package/lib/cjs/client/erc20/index.cjs +2 -2
  34. package/lib/cjs/client/erc20/index.cjs.map +1 -0
  35. package/lib/cjs/client/fabric-fs.cjs +2 -2
  36. package/lib/cjs/client/fabric-fs.cjs.map +1 -0
  37. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  38. package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
  39. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  40. package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
  41. package/lib/cjs/client/ids/index.cjs +2 -2
  42. package/lib/cjs/client/ids/index.cjs.map +1 -0
  43. package/lib/cjs/client/index.cjs +2 -2
  44. package/lib/cjs/client/index.cjs.map +1 -0
  45. package/lib/cjs/client/indexes/generation.cjs +2 -2
  46. package/lib/cjs/client/indexes/generation.cjs.map +1 -0
  47. package/lib/cjs/client/indexes/index.cjs +2 -2
  48. package/lib/cjs/client/indexes/index.cjs.map +1 -0
  49. package/lib/cjs/client/logging.cjs +2 -2
  50. package/lib/cjs/client/logging.cjs.map +1 -0
  51. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  52. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
  53. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  54. package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
  55. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  56. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
  57. package/lib/cjs/client/services/constants.cjs +2 -2
  58. package/lib/cjs/client/services/constants.cjs.map +1 -0
  59. package/lib/cjs/client/services/index.cjs +2 -2
  60. package/lib/cjs/client/services/index.cjs.map +1 -0
  61. package/lib/cjs/client/types.cjs +2 -2
  62. package/lib/cjs/client/types.cjs.map +1 -0
  63. package/lib/cjs/client/utils.cjs +2 -2
  64. package/lib/cjs/client/utils.cjs.map +1 -0
  65. package/lib/cjs/contract/Address.cjs +2 -2
  66. package/lib/cjs/contract/Address.cjs.map +1 -0
  67. package/lib/cjs/contract/AddressContract.cjs +2 -2
  68. package/lib/cjs/contract/AddressContract.cjs.map +1 -0
  69. package/lib/cjs/contract/AuditContract.cjs +2 -2
  70. package/lib/cjs/contract/AuditContract.cjs.map +1 -0
  71. package/lib/cjs/contract/BatchContract.cjs +2 -2
  72. package/lib/cjs/contract/BatchContract.cjs.map +1 -0
  73. package/lib/cjs/contract/MarketContract.cjs +2 -2
  74. package/lib/cjs/contract/MarketContract.cjs.map +1 -0
  75. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  76. package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
  77. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  78. package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
  79. package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
  80. package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
  81. package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
  82. package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
  83. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  84. package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
  85. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  86. package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
  87. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  88. package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
  89. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  90. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
  91. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  92. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
  93. package/lib/cjs/contract/Product.cjs +2 -2
  94. package/lib/cjs/contract/Product.cjs.map +1 -0
  95. package/lib/cjs/contract/ProductContract.cjs +2 -2
  96. package/lib/cjs/contract/ProductContract.cjs.map +1 -0
  97. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  98. package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
  99. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  100. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
  101. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  102. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
  103. package/lib/cjs/contract/User.cjs +2 -2
  104. package/lib/cjs/contract/User.cjs.map +1 -0
  105. package/lib/cjs/contract/UserContract.cjs +2 -2
  106. package/lib/cjs/contract/UserContract.cjs.map +1 -0
  107. package/lib/cjs/contract/index.cjs +2 -2
  108. package/lib/cjs/contract/index.cjs.map +1 -0
  109. package/lib/cjs/contract/logging-context.cjs +2 -2
  110. package/lib/cjs/contract/logging-context.cjs.map +1 -0
  111. package/lib/cjs/contract/models/Audit.cjs +2 -2
  112. package/lib/cjs/contract/models/Audit.cjs.map +1 -0
  113. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  114. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
  115. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  116. package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
  117. package/lib/cjs/contract/models/Batch.cjs +2 -2
  118. package/lib/cjs/contract/models/Batch.cjs.map +1 -0
  119. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  120. package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
  121. package/lib/cjs/contract/models/History.cjs +2 -2
  122. package/lib/cjs/contract/models/History.cjs.map +1 -0
  123. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  124. package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
  125. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  126. package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
  127. package/lib/cjs/contract/models/Market.cjs +2 -2
  128. package/lib/cjs/contract/models/Market.cjs.map +1 -0
  129. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  130. package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
  131. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  132. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
  133. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  134. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
  135. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  136. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
  137. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  138. package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
  139. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  140. package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
  141. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  142. package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
  143. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  144. package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
  145. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  146. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
  147. package/lib/cjs/contract/models/Product.cjs +2 -2
  148. package/lib/cjs/contract/models/Product.cjs.map +1 -0
  149. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  150. package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
  151. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  152. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
  153. package/lib/cjs/contract/models/constants.cjs +2 -2
  154. package/lib/cjs/contract/models/constants.cjs.map +1 -0
  155. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  156. package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
  157. package/lib/cjs/contract/models/decorators.cjs +2 -2
  158. package/lib/cjs/contract/models/decorators.cjs.map +1 -0
  159. package/lib/cjs/contract/models/gtin.cjs +2 -2
  160. package/lib/cjs/contract/models/gtin.cjs.map +1 -0
  161. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  162. package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
  163. package/lib/cjs/contract/trackedModels/History.cjs +2 -2
  164. package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
  165. package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
  166. package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
  167. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +2 -2
  168. package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +1 -0
  169. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
  170. package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
  171. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
  172. package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
  173. package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
  174. package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
  175. package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
  176. package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
  177. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
  178. package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
  179. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
  180. package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
  181. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
  182. package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
  183. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  184. package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
  185. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  186. package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
  187. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  188. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
  189. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  190. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
  191. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  192. package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
  193. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  194. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
  195. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  196. package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
  197. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  198. package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
  199. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  200. package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
  201. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  202. package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
  203. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  204. package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
  205. package/lib/cjs/contracts/auth/index.cjs +2 -2
  206. package/lib/cjs/contracts/auth/index.cjs.map +1 -0
  207. package/lib/cjs/contracts/bootstrap.cjs +2 -2
  208. package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
  209. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  210. package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
  211. package/lib/cjs/contracts/crud/index.cjs +2 -2
  212. package/lib/cjs/contracts/crud/index.cjs.map +1 -0
  213. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  214. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
  215. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  216. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
  217. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  218. package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
  219. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  220. package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
  221. package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
  222. package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
  223. package/lib/cjs/contracts/index.cjs +2 -2
  224. package/lib/cjs/contracts/index.cjs.map +1 -0
  225. package/lib/cjs/contracts/logging.cjs +2 -2
  226. package/lib/cjs/contracts/logging.cjs.map +1 -0
  227. package/lib/cjs/contracts/overrides.cjs +2 -2
  228. package/lib/cjs/contracts/overrides.cjs.map +1 -0
  229. package/lib/cjs/contracts/types.cjs +2 -2
  230. package/lib/cjs/contracts/types.cjs.map +1 -0
  231. package/lib/cjs/contracts/uuid.cjs +2 -2
  232. package/lib/cjs/contracts/uuid.cjs.map +1 -0
  233. package/lib/cjs/index.cjs +2 -2
  234. package/lib/cjs/index.cjs.map +1 -0
  235. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  236. package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
  237. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  238. package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
  239. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  240. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
  241. package/lib/cjs/shared/constants.cjs +2 -2
  242. package/lib/cjs/shared/constants.cjs.map +1 -0
  243. package/lib/cjs/shared/decorators.cjs +2 -2
  244. package/lib/cjs/shared/decorators.cjs.map +1 -0
  245. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  246. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
  247. package/lib/cjs/shared/erc20/index.cjs +2 -2
  248. package/lib/cjs/shared/erc20/index.cjs.map +1 -0
  249. package/lib/cjs/shared/errors.cjs +2 -2
  250. package/lib/cjs/shared/errors.cjs.map +1 -0
  251. package/lib/cjs/shared/events.cjs +2 -2
  252. package/lib/cjs/shared/events.cjs.map +1 -0
  253. package/lib/cjs/shared/fabric-types.cjs +2 -2
  254. package/lib/cjs/shared/fabric-types.cjs.map +1 -0
  255. package/lib/cjs/shared/index.cjs +2 -2
  256. package/lib/cjs/shared/index.cjs.map +1 -0
  257. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  258. package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
  259. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  260. package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
  261. package/lib/cjs/shared/math.cjs +2 -2
  262. package/lib/cjs/shared/math.cjs.map +1 -0
  263. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  264. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
  265. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  266. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
  267. package/lib/cjs/shared/model/Identity.cjs +2 -2
  268. package/lib/cjs/shared/model/Identity.cjs.map +1 -0
  269. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  270. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
  271. package/lib/cjs/shared/model/index.cjs +2 -2
  272. package/lib/cjs/shared/model/index.cjs.map +1 -0
  273. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  274. package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
  275. package/lib/cjs/shared/overrides/index.cjs +2 -2
  276. package/lib/cjs/shared/overrides/index.cjs.map +1 -0
  277. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  278. package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
  279. package/lib/cjs/shared/types.cjs +2 -2
  280. package/lib/cjs/shared/types.cjs.map +1 -0
  281. package/lib/cjs/version.cjs +5 -5
  282. package/lib/cjs/version.cjs.map +1 -0
  283. package/lib/esm/bin/cli.js +1 -1
  284. package/lib/esm/bin/cli.js.map +1 -0
  285. package/lib/esm/cli-module.js +1 -1
  286. package/lib/esm/cli-module.js.map +1 -0
  287. package/lib/esm/cli-utils.js +1 -1
  288. package/lib/esm/cli-utils.js.map +1 -0
  289. package/lib/esm/client/FabricClientAdapter.js +1 -1
  290. package/lib/esm/client/FabricClientAdapter.js.map +1 -0
  291. package/lib/esm/client/FabricClientContext.js +1 -1
  292. package/lib/esm/client/FabricClientContext.js.map +1 -0
  293. package/lib/esm/client/FabricClientDispatch.js +1 -1
  294. package/lib/esm/client/FabricClientDispatch.js.map +1 -0
  295. package/lib/esm/client/FabricClientPaginator.js +1 -1
  296. package/lib/esm/client/FabricClientPaginator.js.map +1 -0
  297. package/lib/esm/client/FabricClientRepository.js +1 -1
  298. package/lib/esm/client/FabricClientRepository.js.map +1 -0
  299. package/lib/esm/client/FabricClientStatement.js +1 -1
  300. package/lib/esm/client/FabricClientStatement.js.map +1 -0
  301. package/lib/esm/client/collections/generation.js +1 -1
  302. package/lib/esm/client/collections/generation.js.map +1 -0
  303. package/lib/esm/client/collections/index.js +1 -1
  304. package/lib/esm/client/collections/index.js.map +1 -0
  305. package/lib/esm/client/constants.js +1 -1
  306. package/lib/esm/client/constants.js.map +1 -0
  307. package/lib/esm/client/crypto.js +1 -1
  308. package/lib/esm/client/crypto.js.map +1 -0
  309. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  310. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
  311. package/lib/esm/client/erc20/index.js +1 -1
  312. package/lib/esm/client/erc20/index.js.map +1 -0
  313. package/lib/esm/client/fabric-fs.js +1 -1
  314. package/lib/esm/client/fabric-fs.js.map +1 -0
  315. package/lib/esm/client/fabric-hsm.js +1 -1
  316. package/lib/esm/client/fabric-hsm.js.map +1 -0
  317. package/lib/esm/client/ids/id-extraction.js +1 -1
  318. package/lib/esm/client/ids/id-extraction.js.map +1 -0
  319. package/lib/esm/client/ids/index.js +1 -1
  320. package/lib/esm/client/ids/index.js.map +1 -0
  321. package/lib/esm/client/index.js +1 -1
  322. package/lib/esm/client/index.js.map +1 -0
  323. package/lib/esm/client/indexes/generation.js +1 -1
  324. package/lib/esm/client/indexes/generation.js.map +1 -0
  325. package/lib/esm/client/indexes/index.js +1 -1
  326. package/lib/esm/client/indexes/index.js.map +1 -0
  327. package/lib/esm/client/logging.js +1 -1
  328. package/lib/esm/client/logging.js.map +1 -0
  329. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  330. package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
  331. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  332. package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
  333. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  334. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
  335. package/lib/esm/client/services/constants.js +1 -1
  336. package/lib/esm/client/services/constants.js.map +1 -0
  337. package/lib/esm/client/services/index.js +1 -1
  338. package/lib/esm/client/services/index.js.map +1 -0
  339. package/lib/esm/client/types.js +1 -1
  340. package/lib/esm/client/types.js.map +1 -0
  341. package/lib/esm/client/utils.js +1 -1
  342. package/lib/esm/client/utils.js.map +1 -0
  343. package/lib/esm/contract/Address.js +1 -1
  344. package/lib/esm/contract/Address.js.map +1 -0
  345. package/lib/esm/contract/AddressContract.js +1 -1
  346. package/lib/esm/contract/AddressContract.js.map +1 -0
  347. package/lib/esm/contract/AuditContract.js +1 -1
  348. package/lib/esm/contract/AuditContract.js.map +1 -0
  349. package/lib/esm/contract/BatchContract.js +1 -1
  350. package/lib/esm/contract/BatchContract.js.map +1 -0
  351. package/lib/esm/contract/MarketContract.js +1 -1
  352. package/lib/esm/contract/MarketContract.js.map +1 -0
  353. package/lib/esm/contract/OtherAuditContract.js +1 -1
  354. package/lib/esm/contract/OtherAuditContract.js.map +1 -0
  355. package/lib/esm/contract/OtherBatchContract.js +1 -1
  356. package/lib/esm/contract/OtherBatchContract.js.map +1 -0
  357. package/lib/esm/contract/OtherLeafletContract.js +1 -1
  358. package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
  359. package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
  360. package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
  361. package/lib/esm/contract/OtherMarketContract.js +1 -1
  362. package/lib/esm/contract/OtherMarketContract.js.map +1 -0
  363. package/lib/esm/contract/OtherProductContract.js +1 -1
  364. package/lib/esm/contract/OtherProductContract.js.map +1 -0
  365. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  366. package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
  367. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  368. package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
  369. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  370. package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
  371. package/lib/esm/contract/Product.js +1 -1
  372. package/lib/esm/contract/Product.js.map +1 -0
  373. package/lib/esm/contract/ProductContract.js +1 -1
  374. package/lib/esm/contract/ProductContract.js.map +1 -0
  375. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  376. package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
  377. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  378. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
  379. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  380. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
  381. package/lib/esm/contract/User.js +1 -1
  382. package/lib/esm/contract/User.js.map +1 -0
  383. package/lib/esm/contract/UserContract.js +1 -1
  384. package/lib/esm/contract/UserContract.js.map +1 -0
  385. package/lib/esm/contract/index.js +1 -1
  386. package/lib/esm/contract/index.js.map +1 -0
  387. package/lib/esm/contract/logging-context.js +1 -1
  388. package/lib/esm/contract/logging-context.js.map +1 -0
  389. package/lib/esm/contract/models/Audit.js +1 -1
  390. package/lib/esm/contract/models/Audit.js.map +1 -0
  391. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  392. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
  393. package/lib/esm/contract/models/BaseModel.js +1 -1
  394. package/lib/esm/contract/models/BaseModel.js.map +1 -0
  395. package/lib/esm/contract/models/Batch.js +1 -1
  396. package/lib/esm/contract/models/Batch.js.map +1 -0
  397. package/lib/esm/contract/models/GtinOwner.js +1 -1
  398. package/lib/esm/contract/models/GtinOwner.js.map +1 -0
  399. package/lib/esm/contract/models/History.js +1 -1
  400. package/lib/esm/contract/models/History.js.map +1 -0
  401. package/lib/esm/contract/models/Leaflet.js +1 -1
  402. package/lib/esm/contract/models/Leaflet.js.map +1 -0
  403. package/lib/esm/contract/models/LeafletFile.js +1 -1
  404. package/lib/esm/contract/models/LeafletFile.js.map +1 -0
  405. package/lib/esm/contract/models/Market.js +1 -1
  406. package/lib/esm/contract/models/Market.js.map +1 -0
  407. package/lib/esm/contract/models/OtherAudit.js +1 -1
  408. package/lib/esm/contract/models/OtherAudit.js.map +1 -0
  409. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  410. package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
  411. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  412. package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
  413. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  414. package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
  415. package/lib/esm/contract/models/OtherMarket.js +1 -1
  416. package/lib/esm/contract/models/OtherMarket.js.map +1 -0
  417. package/lib/esm/contract/models/OtherProduct.js +1 -1
  418. package/lib/esm/contract/models/OtherProduct.js.map +1 -0
  419. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  420. package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
  421. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  422. package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
  423. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  424. package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
  425. package/lib/esm/contract/models/Product.js +1 -1
  426. package/lib/esm/contract/models/Product.js.map +1 -0
  427. package/lib/esm/contract/models/ProductStrength.js +1 -1
  428. package/lib/esm/contract/models/ProductStrength.js.map +1 -0
  429. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  430. package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
  431. package/lib/esm/contract/models/constants.js +1 -1
  432. package/lib/esm/contract/models/constants.js.map +1 -0
  433. package/lib/esm/contract/models/decorators-private.js +1 -1
  434. package/lib/esm/contract/models/decorators-private.js.map +1 -0
  435. package/lib/esm/contract/models/decorators.js +1 -1
  436. package/lib/esm/contract/models/decorators.js.map +1 -0
  437. package/lib/esm/contract/models/gtin.js +1 -1
  438. package/lib/esm/contract/models/gtin.js.map +1 -0
  439. package/lib/esm/contract/models/history-dec.js +1 -1
  440. package/lib/esm/contract/models/history-dec.js.map +1 -0
  441. package/lib/esm/contract/trackedModels/History.js +1 -1
  442. package/lib/esm/contract/trackedModels/History.js.map +1 -0
  443. package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
  444. package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
  445. package/lib/esm/contract/trackedModels/OtherBatchShared.js +1 -1
  446. package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +1 -0
  447. package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
  448. package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
  449. package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
  450. package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
  451. package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
  452. package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
  453. package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
  454. package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
  455. package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
  456. package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
  457. package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
  458. package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
  459. package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
  460. package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
  461. package/lib/esm/contracts/ContractAdapter.js +1 -1
  462. package/lib/esm/contracts/ContractAdapter.js.map +1 -0
  463. package/lib/esm/contracts/ContractContext.js +1 -1
  464. package/lib/esm/contracts/ContractContext.js.map +1 -0
  465. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  466. package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
  467. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  468. package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
  469. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  470. package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
  471. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  472. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
  473. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  474. package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
  475. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  476. package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
  477. package/lib/esm/contracts/MigrationContract.js +1 -1
  478. package/lib/esm/contracts/MigrationContract.js.map +1 -0
  479. package/lib/esm/contracts/PrivateSequence.js +1 -1
  480. package/lib/esm/contracts/PrivateSequence.js.map +1 -0
  481. package/lib/esm/contracts/auth/decorators.js +1 -1
  482. package/lib/esm/contracts/auth/decorators.js.map +1 -0
  483. package/lib/esm/contracts/auth/index.js +1 -1
  484. package/lib/esm/contracts/auth/index.js.map +1 -0
  485. package/lib/esm/contracts/bootstrap.js +1 -1
  486. package/lib/esm/contracts/bootstrap.js.map +1 -0
  487. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  488. package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
  489. package/lib/esm/contracts/crud/index.js +1 -1
  490. package/lib/esm/contracts/crud/index.js.map +1 -0
  491. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  492. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
  493. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  494. package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
  495. package/lib/esm/contracts/erc20/index.js +1 -1
  496. package/lib/esm/contracts/erc20/index.js.map +1 -0
  497. package/lib/esm/contracts/erc20/models.js +1 -1
  498. package/lib/esm/contracts/erc20/models.js.map +1 -0
  499. package/lib/esm/contracts/fabric-overrides.js +1 -1
  500. package/lib/esm/contracts/fabric-overrides.js.map +1 -0
  501. package/lib/esm/contracts/index.js +1 -1
  502. package/lib/esm/contracts/index.js.map +1 -0
  503. package/lib/esm/contracts/logging.js +1 -1
  504. package/lib/esm/contracts/logging.js.map +1 -0
  505. package/lib/esm/contracts/overrides.js +1 -1
  506. package/lib/esm/contracts/overrides.js.map +1 -0
  507. package/lib/esm/contracts/types.js +1 -1
  508. package/lib/esm/contracts/types.js.map +1 -0
  509. package/lib/esm/contracts/uuid.js +1 -1
  510. package/lib/esm/contracts/uuid.js.map +1 -0
  511. package/lib/esm/index.js +1 -1
  512. package/lib/esm/index.js.map +1 -0
  513. package/lib/esm/shared/ClientSerializer.js +1 -1
  514. package/lib/esm/shared/ClientSerializer.js.map +1 -0
  515. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  516. package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
  517. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  518. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
  519. package/lib/esm/shared/constants.js +1 -1
  520. package/lib/esm/shared/constants.js.map +1 -0
  521. package/lib/esm/shared/decorators.js +1 -1
  522. package/lib/esm/shared/decorators.js.map +1 -0
  523. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  524. package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
  525. package/lib/esm/shared/erc20/index.js +1 -1
  526. package/lib/esm/shared/erc20/index.js.map +1 -0
  527. package/lib/esm/shared/errors.js +1 -1
  528. package/lib/esm/shared/errors.js.map +1 -0
  529. package/lib/esm/shared/events.js +1 -1
  530. package/lib/esm/shared/events.js.map +1 -0
  531. package/lib/esm/shared/fabric-types.js +1 -1
  532. package/lib/esm/shared/fabric-types.js.map +1 -0
  533. package/lib/esm/shared/index.js +1 -1
  534. package/lib/esm/shared/index.js.map +1 -0
  535. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  536. package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
  537. package/lib/esm/shared/interfaces/index.js +1 -1
  538. package/lib/esm/shared/interfaces/index.js.map +1 -0
  539. package/lib/esm/shared/math.js +1 -1
  540. package/lib/esm/shared/math.js.map +1 -0
  541. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  542. package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
  543. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  544. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
  545. package/lib/esm/shared/model/Identity.js +1 -1
  546. package/lib/esm/shared/model/Identity.js.map +1 -0
  547. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  548. package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
  549. package/lib/esm/shared/model/index.js +1 -1
  550. package/lib/esm/shared/model/index.js.map +1 -0
  551. package/lib/esm/shared/overrides/Model.js +1 -1
  552. package/lib/esm/shared/overrides/Model.js.map +1 -0
  553. package/lib/esm/shared/overrides/index.js +1 -1
  554. package/lib/esm/shared/overrides/index.js.map +1 -0
  555. package/lib/esm/shared/overrides/overrides.js +1 -1
  556. package/lib/esm/shared/overrides/overrides.js.map +1 -0
  557. package/lib/esm/shared/types.js +1 -1
  558. package/lib/esm/shared/types.js.map +1 -0
  559. package/lib/esm/version.js +4 -4
  560. package/lib/esm/version.js.map +1 -0
  561. package/lib/types/version.d.cts +3 -3
  562. package/lib/types/version.d.mts +3 -3
  563. package/package.json +1 -1
@@ -1650,5 +1650,5 @@ class FabricContractAdapter extends for_couchdb_1.CouchDBAdapter {
1650
1650
  exports.FabricContractAdapter = FabricContractAdapter;
1651
1651
  FabricContractAdapter.decoration();
1652
1652
  core_1.Adapter.setCurrent(constants_js_1.FabricFlavour);
1653
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3RBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9Db250cmFjdEFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBR1gsd0JBQXdCLEVBQ3hCLHVCQUF1QixJQUFJLDRCQUE0QixFQUN2RCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLDJCQUEyQixHQUM1QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsNkJBQTBCO0FBQzFELE9BQU8sRUFDTCxlQUFlLEVBRWYscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsRUFDUixjQUFjLEVBR2Qsa0JBQWtCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUVMLE1BQU0sSUFBSSxZQUFZLEVBQ3RCLFFBQVEsRUFDUixRQUFRLElBQUksY0FBYyxHQUMzQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBVSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsZUFBZSxFQUlmLGdCQUFnQixFQUNoQixPQUFPLEVBSVAsVUFBVSxFQUNWLFdBQVcsRUFDWCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsZUFBZSxFQUVmLE9BQU8sRUFTUCxjQUFjLEVBQ2Qsd0JBQXdCLEVBR3hCLGVBQWUsRUFDZix5QkFBeUIsR0FDMUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsc0NBQW1DO0FBT3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUscUNBQWtD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R0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUzQyx3REFBd0Q7WUFDeEQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDOUMsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUVELE9BQU8sWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxFQUFFLENBQUM7SUFDYixDQUFDOztBQUdILHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ25DLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQktleXMsXG4gIE1hbmdvUXVlcnksXG4gIFZpZXdSZXNwb25zZSxcbiAgcmVxdWlyZUdlbmVyYXRlZFVzZUluZGV4LFxuICBlbnN1cmVEZXRlcm1pbmlzdGljU29ydCBhcyBjb3VjaEVuc3VyZURldGVybWluaXN0aWNTb3J0LFxuICBnZXRTb3J0RGlyZWN0aW9uLFxuICBnZXRTb3J0RmllbGRzLFxuICB3YXJuU2NhblByb25lTWFuZ29PcGVyYXRvcnMsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IE1vZGVsLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwiY3J5cHRvXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dFwiO1xuaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBCYXNlRXJyb3IsXG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgb25DcmVhdGUsXG4gIG9uQ3JlYXRlVXBkYXRlLFxuICBPcGVyYXRpb25LZXlzLFxuICBQcmltYXJ5S2V5VHlwZSxcbiAgU2VyaWFsaXphdGlvbkVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7XG4gIENvbnRleHQgYXMgQ3R4LFxuICBPYmplY3QgYXMgRmFicmljT2JqZWN0LFxuICBQcm9wZXJ0eSxcbiAgUHJvcGVydHkgYXMgRmFicmljUHJvcGVydHksXG59IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7XG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUmVsYXRpb25zTWV0YWRhdGEsXG4gIFNlcXVlbmNlLFxuICBTZXF1ZW5jZU9wdGlvbnMsXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG4gIEFkYXB0ZXIsXG4gIEFkYXB0ZXJGbGFncyxcbiAgUHJlcGFyZWRNb2RlbCxcbiAgUmVwb3NpdG9yeSxcbiAgUXVlcnlFcnJvcixcbiAgUGFnaW5nRXJyb3IsXG4gIE1pZ3JhdGlvbkVycm9yLFxuICBPYnNlcnZlckVycm9yLFxuICBBdXRob3JpemF0aW9uRXJyb3IsXG4gIEZvcmJpZGRlbkVycm9yLFxuICBDb25uZWN0aW9uRXJyb3IsXG4gIENvbnRleHR1YWxpemVkQXJncyxcbiAgQ29udGV4dCxcbiAgUmF3UmVzdWx0LFxuICBQYWdpbmF0b3IsXG4gIENvbnRleHR1YWxBcmdzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIE1ldGhvZE9yT3BlcmF0aW9uLFxuICBBbGxPcGVyYXRpb25LZXlzLFxuICBGbGFnc09mLFxuICBDb250ZXh0T2YsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBUcmFuc2FjdGlvbk9wZXJhdGlvbktleXMsXG4gIEV2ZW50SWRzLFxuICBEaXNwYXRjaCxcbiAgcHJvbWlzZVNlcXVlbmNlLFxuICByZXNvbHZlQnVsa1NlcXVlbmNlUmVzdWx0LFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeSB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeVwiO1xuaW1wb3J0IHtcbiAgQ2hhaW5jb2RlU3R1YixcbiAgQ2xpZW50SWRlbnRpdHksXG4gIEl0ZXJhdG9ycyxcbiAgU3RhdGVRdWVyeVJlc3BvbnNlLFxufSBmcm9tIFwiZmFicmljLXNoaW0tYXBpXCI7XG5pbXBvcnQgeyBGYWJyaWNTdGF0ZW1lbnQgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFN0YXRlbWVudFwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RTZXF1ZW5jZSB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0U2VxdWVuY2VcIjtcbmltcG9ydCB7IEZhYnJpY0ZsYXZvdXIsIEZhYnJpY01vZGVsS2V5cyB9IGZyb20gXCIuLi9zaGFyZWQvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBTaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplciB9IGZyb20gXCIuLi9zaGFyZWQvU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXJcIjtcbmltcG9ydCB7XG4gIGFwcGx5LFxuICBDb25zdHJ1Y3RvcixcbiAgRGVjb3JhdGlvbixcbiAgTWV0YWRhdGEsXG4gIHByb3BNZXRhZGF0YSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFBhZ2luYXRvciB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0UGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBNaXNzaW5nQ29udGV4dEVycm9yIH0gZnJvbSBcIi4uL3NoYXJlZC9lcnJvcnNcIjtcbmltcG9ydCB7IFNlZ3JlZ2F0ZWRNb2RlbCB9IGZyb20gXCIuLi9zaGFyZWQvaW5kZXhcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0RGlzcGF0Y2ggfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdERpc3BhdGNoXCI7XG5cbmV4cG9ydCB0eXBlIEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxcbiAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gIEVYVEVORCBleHRlbmRzIGJvb2xlYW4gPSBmYWxzZSxcbj4gPSBDb250ZXh0dWFsaXplZEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTLCBFWFRFTkQ+ICYge1xuICBzdHViOiBDaGFpbmNvZGVTdHViO1xuICBpZGVudGl0eTogQ2xpZW50SWRlbnRpdHk7XG59O1xuXG50eXBlIFByaXZhdGVTeW50aGV0aWNCb29rbWFyayA9IHtcbiAgc29ydEZpZWxkOiBzdHJpbmc7XG4gIGRpcmVjdGlvbjogXCJhc2NcIiB8IFwiZGVzY1wiO1xuICBpZEZpZWxkOiBzdHJpbmc7XG4gIGxhc3RWYWx1ZTogYW55O1xuICBsYXN0SWQ6IHN0cmluZztcbiAgcXVlcnlIYXNoOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTZXRzIHRoZSBjcmVhdG9yIG9yIHVwZGF0ZXIgZmllbGQgaW4gYSBtb2RlbCBiYXNlZCBvbiB0aGUgdXNlciBpbiB0aGUgY29udGV4dFxuICogQHN1bW1hcnkgQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBpbiBkZWNvcmF0b3JzIHRvIGF1dG9tYXRpY2FsbHkgc2V0IHRoZSBjcmVhdGVkX2J5IG9yIHVwZGF0ZWRfYnkgZmllbGRzXG4gKiB3aXRoIHRoZSB1c2VybmFtZSBmcm9tIHRoZSBjb250ZXh0IHdoZW4gYSBkb2N1bWVudCBpcyBjcmVhdGVkIG9yIHVwZGF0ZWRcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBSIC0gVHlwZSBleHRlbmRpbmcgTmFub1JlcG9zaXRvcnk8TT5cbiAqIEB0ZW1wbGF0ZSBWIC0gVHlwZSBleHRlbmRpbmcgUmVsYXRpb25zTWV0YWRhdGFcbiAqIEBwYXJhbSB7Un0gdGhpcyAtIFRoZSByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY29udGV4dCAtIFRoZSBvcGVyYXRpb24gY29udGV4dCBjb250YWluaW5nIHVzZXIgaW5mb3JtYXRpb25cbiAqIEBwYXJhbSB7Vn0gZGF0YSAtIFRoZSByZWxhdGlvbiBtZXRhZGF0YVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgdG8gc2V0IHdpdGggdGhlIHVzZXJuYW1lXG4gKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlIGJlaW5nIGNyZWF0ZWQgb3IgdXBkYXRlZFxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gKiBAZnVuY3Rpb24gY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZmFicmljLmNvbnRyYWN0c1xuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBGIGFzIGNyZWF0ZWRCeU9uTmFub0NyZWF0ZVVwZGF0ZVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENvbnRleHRcbiAqICAgcGFydGljaXBhbnQgTSBhcyBNb2RlbFxuICogICBGLT4+QzogZ2V0KFwidXNlclwiKVxuICogICBDLS0+PkY6IHVzZXIgb2JqZWN0XG4gKiAgIEYtPj5NOiBzZXQga2V5IHRvIHVzZXIubmFtZVxuICogICBOb3RlIG92ZXIgRjogSWYgbm8gdXNlciBpbiBjb250ZXh0XG4gKiAgIEYtLT4+RjogdGhyb3cgVW5zdXBwb3J0ZWRFcnJvclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxNPixcbiAgViBleHRlbmRzIFJlbGF0aW9uc01ldGFkYXRhLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dE9mPFI+LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB1c2VyID0gY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKSBhcyBDbGllbnRJZGVudGl0eTtcbiAgICBtb2RlbFtrZXldID0gdXNlci5nZXRJRCgpIGFzIE1bdHlwZW9mIGtleV07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBcIk5vIFVzZXIgZm91bmQgaW4gY29udGV4dC4gUGxlYXNlIHByb3ZpZGUgYSB1c2VyIGluIHRoZSBjb250ZXh0XCJcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFkYXB0ZXIgZm9yIEh5cGVybGVkZ2VyIEZhYnJpYyBjaGFpbmNvZGUgc3RhdGUgZGF0YWJhc2Ugb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgUHJvdmlkZXMgYSBDb3VjaERCLWxpa2UgaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2UgZnJvbSB3aXRoaW4gYSBjaGFpbmNvZGUgY29udHJhY3RcbiAqIEB0ZW1wbGF0ZSB2b2lkIC0gTm8gY29uZmlndXJhdGlvbiBuZWVkZWQgZm9yIGNvbnRyYWN0IGFkYXB0ZXJcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNDb250cmFjdEZsYWdzIC0gRmxhZ3Mgc3BlY2lmaWMgdG8gRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNDb250cmFjdENvbnRleHQgLSBDb250ZXh0IHR5cGUgZm9yIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAY2xhc3MgRmFicmljQ29udHJhY3RBZGFwdGVyXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gYSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRyYWN0IGNsYXNzXG4gKiBpbXBvcnQgeyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgfSBmcm9tICdAZGVjYWYtdHMvZm9yLWZhYnJpYyc7XG4gKlxuICogZXhwb3J0IGNsYXNzIE15Q29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIHByaXZhdGUgYWRhcHRlciA9IG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIoKTtcbiAqXG4gKiAgIEBUcmFuc2FjdGlvbigpXG4gKiAgIGFzeW5jIGNyZWF0ZUFzc2V0KGN0eDogQ29udGV4dCwgaWQ6IHN0cmluZywgZGF0YTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgY29uc3QgbW9kZWwgPSB7IGlkLCBkYXRhLCB0aW1lc3RhbXA6IERhdGUubm93KCkgfTtcbiAqICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlKCdhc3NldHMnLCBpZCwgbW9kZWwsIHt9LCB7IHN0dWI6IGN0eC5zdHViIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAqICAgcGFydGljaXBhbnQgRmFicmljQ29udHJhY3RBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IFN0dWJcbiAqICAgcGFydGljaXBhbnQgU3RhdGVEQlxuICpcbiAqICAgQ29udHJhY3QtPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgdHJhbnNpZW50LCBjdHgpXG4gKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogU2VyaWFsaXplIG1vZGVsIHRvIEpTT05cbiAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+U3R1YjogcHV0U3RhdGUoaWQsIHNlcmlhbGl6ZWREYXRhKVxuICogICBTdHViLT4+U3RhdGVEQjogV3JpdGUgZGF0YVxuICogICBTdGF0ZURCLS0+PlN0dWI6IFN1Y2Nlc3NcbiAqICAgU3R1Yi0tPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IFN1Y2Nlc3NcbiAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLS0+PkNvbnRyYWN0OiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ29udHJhY3RBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXI8XG4gIGFueSxcbiAgdm9pZCxcbiAgRmFicmljQ29udHJhY3RDb250ZXh0XG4+IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUFJJVkFURV9CT09LTUFSS19QUkVGSVggPSBcIl9fZGNmX3B2dGJtX19cIjtcblxuICBwcml2YXRlIHN0YXRpYyBzdGFibGVTdHJpbmdpZnkodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gYFske3ZhbHVlXG4gICAgICAgIC5tYXAoKHYpID0+IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5zdGFibGVTdHJpbmdpZnkodikpXG4gICAgICAgIC5qb2luKFwiLFwiKX1dYDtcbiAgICB9XG5cbiAgICBjb25zdCBvYmogPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICByZXR1cm4gYHske09iamVjdC5rZXlzKG9iailcbiAgICAgIC5zb3J0KClcbiAgICAgIC5tYXAoXG4gICAgICAgIChrZXkpID0+XG4gICAgICAgICAgYCR7SlNPTi5zdHJpbmdpZnkoa2V5KX06JHtGYWJyaWNDb250cmFjdEFkYXB0ZXIuc3RhYmxlU3RyaW5naWZ5KG9ialtrZXldKX1gXG4gICAgICApXG4gICAgICAuam9pbihcIixcIil9fWA7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0b0J1ZmZlcih2YWx1ZTogdW5rbm93bik6IEJ1ZmZlciB7XG4gICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh2YWx1ZSwgXCJ1dGY4XCIpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHZhbHVlICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIFwiYnVmZmVyXCIgaW4gdmFsdWUgJiZcbiAgICAgICh2YWx1ZSBhcyBhbnkpLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyXG4gICAgKSB7XG4gICAgICBjb25zdCB0eXBlZCA9IHZhbHVlIGFzIHtcbiAgICAgICAgYnVmZmVyOiBBcnJheUJ1ZmZlcjtcbiAgICAgICAgYnl0ZU9mZnNldD86IG51bWJlcjtcbiAgICAgICAgYnl0ZUxlbmd0aD86IG51bWJlcjtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh0eXBlZC5idWZmZXIsIHR5cGVkLmJ5dGVPZmZzZXQgfHwgMCwgdHlwZWQuYnl0ZUxlbmd0aCk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihcbiAgICAgIGBDYW5ub3QgY29udmVydCBwcml2YXRlIHF1ZXJ5IHZhbHVlIHRvIEJ1ZmZlcjogJHtPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoXG4gICAgICAgIHZhbHVlXG4gICAgICApfWBcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcHJpdmF0ZVF1ZXJ5SGFzaChxdWVyeTogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG4gICAgY29uc3QgcmVsZXZhbnQgPSB7XG4gICAgICBzZWxlY3RvcjogcXVlcnkuc2VsZWN0b3IgfHwge30sXG4gICAgICBzb3J0OiBxdWVyeS5zb3J0IHx8IFtdLFxuICAgICAgZmllbGRzOiBxdWVyeS5maWVsZHMgfHwgdW5kZWZpbmVkLFxuICAgICAgdXNlX2luZGV4OiBxdWVyeS51c2VfaW5kZXggfHwgdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICByZXR1cm4gY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgICAgLnVwZGF0ZShGYWJyaWNDb250cmFjdEFkYXB0ZXIuc3RhYmxlU3RyaW5naWZ5KHJlbGV2YW50KSlcbiAgICAgIC5kaWdlc3QoXCJiYXNlNjR1cmxcIik7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhdHRhY2hHZW5lcmF0ZWRQcml2YXRlVXNlSW5kZXgoXG4gICAgcXVlcnk6IE1hbmdvUXVlcnksXG4gICAgbG9nPzogTG9nZ2VyXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gcXVlcnkuc2VsZWN0b3IgYXMgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBzZWxlY3Rvcj8uW0NvdWNoREJLZXlzLlRBQkxFXTtcbiAgICBpZiAodHlwZW9mIHRhYmxlTmFtZSAhPT0gXCJzdHJpbmdcIiB8fCAhdGFibGVOYW1lLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjbGF6ejogQ29uc3RydWN0b3I8TW9kZWw+IHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBjbGF6eiA9IE1vZGVsLmZyb21UYWJsZSh0YWJsZU5hbWUpIGFzIENvbnN0cnVjdG9yPE1vZGVsPjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXF1aXJlR2VuZXJhdGVkVXNlSW5kZXgoY2xhenosIHF1ZXJ5LCBsb2csIHtcbiAgICAgIHJlcXVpcmVTb3J0Q292ZXJhZ2U6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb3VudFNlbGVjdG9yRmllbGRPY2N1cnJlbmNlcyhcbiAgICBzZWxlY3RvcjogdW5rbm93bixcbiAgICBjb3VudHM6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpXG4gICk6IE1hcDxzdHJpbmcsIG51bWJlcj4ge1xuICAgIGlmICghc2VsZWN0b3IgfHwgdHlwZW9mIHNlbGVjdG9yICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gY291bnRzO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdG9yKSkge1xuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBzZWxlY3Rvcikge1xuICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuY291bnRTZWxlY3RvckZpZWxkT2NjdXJyZW5jZXMoZW50cnksIGNvdW50cyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY291bnRzO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgICAgc2VsZWN0b3IgYXMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICkpIHtcbiAgICAgIGlmICghW1wiJGFuZFwiLCBcIiRvclwiLCBcIiRub3RcIl0uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBjb3VudHMuc2V0KGtleSwgKGNvdW50cy5nZXQoa2V5KSB8fCAwKSArIDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5jb3VudFNlbGVjdG9yRmllbGRPY2N1cnJlbmNlcyh2YWx1ZSwgY291bnRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY291bnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNOdWxsTG93ZXJCb3VuZE1hcmtlcih2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pO1xuICAgIGlmIChlbnRyaWVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IFtvcGVyYXRvciwgYm91bmRdID0gZW50cmllc1swXTtcbiAgICByZXR1cm4gKG9wZXJhdG9yID09PSBcIiRndFwiIHx8IG9wZXJhdG9yID09PSBcIiRndGVcIikgJiYgYm91bmQgPT09IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBub3JtYWxpemVNYW5nb1F1ZXJ5Rm9yRXhlY3V0aW9uKFxuICAgIHF1ZXJ5OiBNYW5nb1F1ZXJ5XG4gICk6IE1hbmdvUXVlcnkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQ6IE1hbmdvUXVlcnkgPSB7XG4gICAgICAuLi5xdWVyeSxcbiAgICAgIHNlbGVjdG9yOlxuICAgICAgICBxdWVyeS5zZWxlY3RvciAmJiB0eXBlb2YgcXVlcnkuc2VsZWN0b3IgPT09IFwib2JqZWN0XCJcbiAgICAgICAgICA/IHsgLi4uKHF1ZXJ5LnNlbGVjdG9yIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pIH1cbiAgICAgICAgICA6IHF1ZXJ5LnNlbGVjdG9yLFxuICAgIH07XG5cbiAgICBpZiAoIW5vcm1hbGl6ZWQuc2VsZWN0b3IgfHwgdHlwZW9mIG5vcm1hbGl6ZWQuc2VsZWN0b3IgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemVkO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdW50cyA9IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5jb3VudFNlbGVjdG9yRmllbGRPY2N1cnJlbmNlcyhcbiAgICAgIG5vcm1hbGl6ZWQuc2VsZWN0b3JcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBbZmllbGQsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhcbiAgICAgIG5vcm1hbGl6ZWQuc2VsZWN0b3IgYXMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIUZhYnJpY0NvbnRyYWN0QWRhcHRlci5pc051bGxMb3dlckJvdW5kTWFya2VyKHZhbHVlKSB8fFxuICAgICAgICAoY291bnRzLmdldChmaWVsZCkgfHwgMCkgPD0gMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBkZWxldGUgKG5vcm1hbGl6ZWQuc2VsZWN0b3IgYXMgUmVjb3JkPHN0cmluZywgYW55PilbZmllbGRdO1xuICAgIH1cblxuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRQcml2YXRlQ29udGludWF0aW9uU2VsZWN0b3IoXG4gICAgc2VsZWN0b3I6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgc29ydEZpZWxkOiBzdHJpbmcsXG4gICAgZGlyZWN0aW9uOiBcImFzY1wiIHwgXCJkZXNjXCIsXG4gICAgaWRGaWVsZDogc3RyaW5nLFxuICAgIGxhc3RWYWx1ZTogYW55LFxuICAgIGxhc3RJZDogc3RyaW5nLFxuICAgIHZhcmlhbnQ6IFwic2FtZVwiIHwgXCJuZXh0XCJcbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgY21wID0gZGlyZWN0aW9uID09PSBcImRlc2NcIiA/IFwiJGx0XCIgOiBcIiRndFwiO1xuICAgIGNvbnN0IGlkQ21wID0gZGlyZWN0aW9uID09PSBcImRlc2NcIiA/IFwiJGx0XCIgOiBcIiRndFwiO1xuXG4gICAgaWYgKGlkRmllbGQgPT09IHNvcnRGaWVsZCkge1xuICAgICAgY29uc3QgY29udGludWF0aW9uID0ge1xuICAgICAgICBbc29ydEZpZWxkXToge1xuICAgICAgICAgIFtjbXBdOiBsYXN0VmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAoIXNlbGVjdG9yIHx8ICFPYmplY3Qua2V5cyhzZWxlY3RvcikubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBjb250aW51YXRpb247XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgICRhbmQ6IFtzZWxlY3RvciwgY29udGludWF0aW9uXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgY2xhdXNlcyA9XG4gICAgICB2YXJpYW50ID09PSBcInNhbWVcIlxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgW3NvcnRGaWVsZF06IHtcbiAgICAgICAgICAgICAgICAkZXE6IGxhc3RWYWx1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFtpZEZpZWxkXToge1xuICAgICAgICAgICAgICAgIFtpZENtcF06IGxhc3RJZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgW3NvcnRGaWVsZF06IHtcbiAgICAgICAgICAgICAgICBbY21wXTogbGFzdFZhbHVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuXG4gICAgaWYgKCFzZWxlY3RvciB8fCAhT2JqZWN0LmtleXMoc2VsZWN0b3IpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGNsYXVzZXMubGVuZ3RoID09PSAxXG4gICAgICAgID8gY2xhdXNlc1swXVxuICAgICAgICA6IHtcbiAgICAgICAgICAgICRhbmQ6IGNsYXVzZXMsXG4gICAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGFuZDogW3NlbGVjdG9yLCAuLi5jbGF1c2VzXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRPcmxlc3NLZXlzZXRDb250aW51YXRpb25RdWVyaWVzKFxuICAgIHF1ZXJ5OiBNYW5nb1F1ZXJ5LFxuICAgIGN1cnNvcjogUHJpdmF0ZVN5bnRoZXRpY0Jvb2ttYXJrLFxuICAgIHBhZ2VTaXplOiBudW1iZXJcbiAgKTogTWFuZ29RdWVyeVtdIHtcbiAgICBjb25zdCBiYXNlUXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7IC4uLnF1ZXJ5IH07XG4gICAgZGVsZXRlIGJhc2VRdWVyeS5za2lwO1xuICAgIGRlbGV0ZSBiYXNlUXVlcnkuYm9va21hcms7XG4gICAgZGVsZXRlIGJhc2VRdWVyeS5saW1pdDtcblxuICAgIGlmIChjdXJzb3IuaWRGaWVsZCA9PT0gY3Vyc29yLnNvcnRGaWVsZCkge1xuICAgICAgY29uc3Qgc2luZ2xlOiBNYW5nb1F1ZXJ5ID0ge1xuICAgICAgICAuLi5iYXNlUXVlcnksXG4gICAgICAgIHNlbGVjdG9yOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYnVpbGRQcml2YXRlQ29udGludWF0aW9uU2VsZWN0b3IoXG4gICAgICAgICAgKGJhc2VRdWVyeS5zZWxlY3RvciB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgICAgICBjdXJzb3Iuc29ydEZpZWxkLFxuICAgICAgICAgIGN1cnNvci5kaXJlY3Rpb24sXG4gICAgICAgICAgY3Vyc29yLmlkRmllbGQsXG4gICAgICAgICAgY3Vyc29yLmxhc3RWYWx1ZSxcbiAgICAgICAgICBjdXJzb3IubGFzdElkLFxuICAgICAgICAgIFwic2FtZVwiXG4gICAgICAgICkgYXMgYW55LFxuICAgICAgICBsaW1pdDogcGFnZVNpemUgKyAxLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIFtzaW5nbGVdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0OiBNYW5nb1F1ZXJ5ID0ge1xuICAgICAgLi4uYmFzZVF1ZXJ5LFxuICAgICAgc2VsZWN0b3I6IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5idWlsZFByaXZhdGVDb250aW51YXRpb25TZWxlY3RvcihcbiAgICAgICAgKGJhc2VRdWVyeS5zZWxlY3RvciB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgICAgY3Vyc29yLnNvcnRGaWVsZCxcbiAgICAgICAgY3Vyc29yLmRpcmVjdGlvbixcbiAgICAgICAgY3Vyc29yLmlkRmllbGQsXG4gICAgICAgIGN1cnNvci5sYXN0VmFsdWUsXG4gICAgICAgIGN1cnNvci5sYXN0SWQsXG4gICAgICAgIFwic2FtZVwiXG4gICAgICApIGFzIGFueSxcbiAgICAgIGxpbWl0OiBwYWdlU2l6ZSArIDEsXG4gICAgfTtcblxuICAgIGNvbnN0IHNlY29uZDogTWFuZ29RdWVyeSA9IHtcbiAgICAgIC4uLmJhc2VRdWVyeSxcbiAgICAgIHNlbGVjdG9yOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYnVpbGRQcml2YXRlQ29udGludWF0aW9uU2VsZWN0b3IoXG4gICAgICAgIChiYXNlUXVlcnkuc2VsZWN0b3IgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgIGN1cnNvci5zb3J0RmllbGQsXG4gICAgICAgIGN1cnNvci5kaXJlY3Rpb24sXG4gICAgICAgIGN1cnNvci5pZEZpZWxkLFxuICAgICAgICBjdXJzb3IubGFzdFZhbHVlLFxuICAgICAgICBjdXJzb3IubGFzdElkLFxuICAgICAgICBcIm5leHRcIlxuICAgICAgKSBhcyBhbnksXG4gICAgICBsaW1pdDogcGFnZVNpemUgKyAxLFxuICAgIH07XG5cbiAgICByZXR1cm4gW2ZpcnN0LCBzZWNvbmRdO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZW5zdXJlRGV0ZXJtaW5pc3RpY1ByaXZhdGVTb3J0KFxuICAgIHF1ZXJ5OiBNYW5nb1F1ZXJ5LFxuICAgIHRpZUJyZWFrZXI6IHN0cmluZ1xuICApOiB7XG4gICAgc29ydEZpZWxkOiBzdHJpbmc7XG4gICAgZGlyZWN0aW9uOiBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgaWRGaWVsZDogc3RyaW5nO1xuICB9IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlcnkuc29ydCkgfHwgIXF1ZXJ5LnNvcnQubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXG4gICAgICAgIFwiUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIHJlcXVpcmVzIGFuIGV4cGxpY2l0IHNvcnQuIEFkZCBvcmRlckJ5KC4uLikgc28gYSBzdGFibGUgZ2VuZXJhdGVkIGluZGV4IGNhbiBiZSBzZWxlY3RlZC5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSAoZ2V0U29ydERpcmVjdGlvbihxdWVyeSkgfHxcbiAgICAgIE9yZGVyRGlyZWN0aW9uLkFTQykgYXMgT3JkZXJEaXJlY3Rpb247XG4gICAgY291Y2hFbnN1cmVEZXRlcm1pbmlzdGljU29ydChxdWVyeSwgdGllQnJlYWtlciwgZGlyZWN0aW9uKTtcblxuICAgIGNvbnN0IHNvcnRGaWVsZHMgPSBnZXRTb3J0RmllbGRzKHF1ZXJ5KTtcbiAgICBjb25zdCBzb3J0RmllbGQgPSBzb3J0RmllbGRzWzBdO1xuICAgIGlmICghc29ydEZpZWxkKSB7XG4gICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXG4gICAgICAgIFwiUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIHJlcXVpcmVzIGEgdmFsaWQgZmlyc3Qgc29ydCBmaWVsZC5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXNvcnRGaWVsZHMuaW5jbHVkZXModGllQnJlYWtlcikpIHtcbiAgICAgIHRocm93IG5ldyBQYWdpbmdFcnJvcihcbiAgICAgICAgYFByaXZhdGUgTWFuZ28gcGFnaW5hdGlvbiByZXF1aXJlcyB0aWUtYnJlYWtlciBzb3J0IGZpZWxkIFwiJHt0aWVCcmVha2VyfVwiLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNvcnRGaWVsZCxcbiAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uIGFzIFwiYXNjXCIgfCBcImRlc2NcIixcbiAgICAgIGlkRmllbGQ6IHRpZUJyZWFrZXIsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHBhcnNlUHJpdmF0ZVJlc3VsdFZhbHVlKHZhbHVlOiBCdWZmZXIpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh2YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuXG4gICAgICBpZiAoIXBhcnNlZCB8fCB0eXBlb2YgcGFyc2VkICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcml2YXRlIHF1ZXJ5IHJlc3VsdCBpcyBub3QgYSBKU09OIG9iamVjdFwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHBhcnNlZCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgcHJpdmF0ZSBxdWVyeSByZXN1bHQgd2hpbGUgYnVpbGRpbmcgYm9va21hcms6ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGV4ZWN1dGVQcml2YXRlTWFuZ29QYWdlUXVlcmllcyhcbiAgICBzdHViOiBDaGFpbmNvZGVTdHViLFxuICAgIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgICBxdWVyaWVzOiBNYW5nb1F1ZXJ5W10sXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBsb2c6IExvZ2dlclxuICApOiBQcm9taXNlPEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBCdWZmZXIgfT4+IHtcbiAgICBjb25zdCBwYWdlZDogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IEJ1ZmZlciB9PiA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBxIG9mIHF1ZXJpZXMpIHtcbiAgICAgIGlmIChwYWdlZC5sZW5ndGggPj0gcGFnZVNpemUgKyAxKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZW1haW5pbmcgPSBwYWdlU2l6ZSArIDEgLSBwYWdlZC5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IHF1ZXJ5Rm9yRXhlY3V0aW9uOiBNYW5nb1F1ZXJ5ID0ge1xuICAgICAgICAuLi5xLFxuICAgICAgICBsaW1pdDogcmVtYWluaW5nLFxuICAgICAgfTtcblxuICAgICAgZGVsZXRlIHF1ZXJ5Rm9yRXhlY3V0aW9uLnNraXA7XG4gICAgICBkZWxldGUgcXVlcnlGb3JFeGVjdXRpb24uYm9va21hcms7XG5cbiAgICAgIGNvbnN0IHF1ZXJ5SnNvbiA9IEpTT04uc3RyaW5naWZ5KHF1ZXJ5Rm9yRXhlY3V0aW9uKTtcblxuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgUXVlcnlpbmcgcHJpdmF0ZSBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gd2l0aCBNYW5nbyBxdWVyeTogJHtxdWVyeUpzb259YFxuICAgICAgKTtcblxuICAgICAgbGV0IHJlc3BvbnNlOiB1bmtub3duO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IHN0dWIuZ2V0UHJpdmF0ZURhdGFRdWVyeVJlc3VsdChjb2xsZWN0aW9uLCBxdWVyeUpzb24pO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgW1xuICAgICAgICAgICAgYFByaXZhdGUgTWFuZ28gcGFnaW5hdGVkIHF1ZXJ5IGZhaWxlZGAsXG4gICAgICAgICAgICBgY29sbGVjdGlvbj0ke2NvbGxlY3Rpb259YCxcbiAgICAgICAgICAgIGBxdWVyeT0ke3F1ZXJ5SnNvbn1gLFxuICAgICAgICAgICAgYGVycm9yPSR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5zdGFjayB8fCBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCxcbiAgICAgICAgICBdLmpvaW4oXCJcXG5cIilcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpdGVyYXRvciA9ICgocmVzcG9uc2UgYXMgYW55KS5pdGVyYXRvciB8fFxuICAgICAgICByZXNwb25zZSkgYXMgSXRlcmF0b3JzLlN0YXRlUXVlcnlJdGVyYXRvcjtcblxuICAgICAgaWYgKCFpdGVyYXRvciB8fCB0eXBlb2YgaXRlcmF0b3IubmV4dCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICAgIGBQcml2YXRlIHBhZ2luYXRlZCBxdWVyeSBvbiBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gZGlkIG5vdCByZXR1cm4gYSB2YWxpZCBpdGVyYXRvcmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgd2hpbGUgKHBhZ2VkLmxlbmd0aCA8IHBhZ2VTaXplICsgMSkge1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcblxuICAgICAgICAgIGlmIChyZXMuZG9uZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyZXMudmFsdWUgfHwgIXJlcy52YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGFnZWQucHVzaCh7XG4gICAgICAgICAgICBrZXk6IHJlcy52YWx1ZS5rZXkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgdmFsdWU6IEZhYnJpY0NvbnRyYWN0QWRhcHRlci50b0J1ZmZlcihyZXMudmFsdWUudmFsdWUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICBbXG4gICAgICAgICAgICBgRmFpbGVkIHdoaWxlIHJlYWRpbmcgcHJpdmF0ZSBNYW5nbyBpdGVyYXRvcmAsXG4gICAgICAgICAgICBgY29sbGVjdGlvbj0ke2NvbGxlY3Rpb259YCxcbiAgICAgICAgICAgIGBxdWVyeT0ke3F1ZXJ5SnNvbn1gLFxuICAgICAgICAgICAgYGVycm9yPSR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5zdGFjayB8fCBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCxcbiAgICAgICAgICBdLmpvaW4oXCJcXG5cIilcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBgRmFpbGVkIHRvIGNsb3NlIHByaXZhdGUgTWFuZ28gaXRlcmF0b3JgLFxuICAgICAgICAgICAgICBgY29sbGVjdGlvbj0ke2NvbGxlY3Rpb259YCxcbiAgICAgICAgICAgICAgYHF1ZXJ5PSR7cXVlcnlKc29ufWAsXG4gICAgICAgICAgICAgIGBlcnJvcj0ke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUuc3RhY2sgfHwgZS5tZXNzYWdlIDogU3RyaW5nKGUpfWAsXG4gICAgICAgICAgICBdLmpvaW4oXCJcXG5cIilcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1maW5hbGx5XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYWdlZDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHRvRmFicmljUGFnaW5hdGlvblJlc3BvbnNlKFxuICAgIGRvY3M6IEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBCdWZmZXIgfT4sXG4gICAgYm9va21hcms6IHN0cmluZ1xuICApOiB7XG4gICAgaXRlcmF0b3I6IEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I7XG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIGZldGNoZWRSZWNvcmRzQ291bnQ6IG51bWJlcjtcbiAgICAgIGJvb2ttYXJrOiBzdHJpbmc7XG4gICAgfTtcbiAgfSB7XG4gICAgbGV0IGlkeCA9IDA7XG5cbiAgICBjb25zdCBpdGVyYXRvciA9IHtcbiAgICAgIGFzeW5jIG5leHQoKSB7XG4gICAgICAgIGlmIChpZHggPCBkb2NzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogZG9jc1tpZHgrK10sXG4gICAgICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkIGFzIGFueSxcbiAgICAgICAgICBkb25lOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGFzeW5jIGNsb3NlKCkge30sXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBpdGVyYXRvcjogaXRlcmF0b3IgYXMgdW5rbm93biBhcyBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgZmV0Y2hlZFJlY29yZHNDb3VudDogZG9jcy5sZW5ndGgsXG4gICAgICAgIGJvb2ttYXJrLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VTeW50aGV0aWNQcml2YXRlQm9va21hcmsoXG4gICAgYm9va21hcms6IHVua25vd25cbiAgKTogUHJpdmF0ZVN5bnRoZXRpY0Jvb2ttYXJrIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIGJvb2ttYXJrICE9PSBcInN0cmluZ1wiKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICghYm9va21hcmsuc3RhcnRzV2l0aChGYWJyaWNDb250cmFjdEFkYXB0ZXIuUFJJVkFURV9CT09LTUFSS19QUkVGSVgpKVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCByYXcgPSBib29rbWFyay5zbGljZShcbiAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5QUklWQVRFX0JPT0tNQVJLX1BSRUZJWC5sZW5ndGhcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHJhdywgXCJiYXNlNjR1cmxcIikudG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgICAgIGlmIChcbiAgICAgICAgIXBhcnNlZCB8fFxuICAgICAgICB0eXBlb2YgcGFyc2VkICE9PSBcIm9iamVjdFwiIHx8XG4gICAgICAgIHR5cGVvZiBwYXJzZWQuc29ydEZpZWxkICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBwYXJzZWQuZGlyZWN0aW9uICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIHR5cGVvZiBwYXJzZWQuaWRGaWVsZCAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgcGFyc2VkLmxhc3RJZCAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICB0eXBlb2YgcGFyc2VkLnF1ZXJ5SGFzaCAhPT0gXCJzdHJpbmdcIlxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzb3J0RmllbGQ6IHBhcnNlZC5zb3J0RmllbGQsXG4gICAgICAgIGRpcmVjdGlvbjogcGFyc2VkLmRpcmVjdGlvbiA9PT0gXCJkZXNjXCIgPyBcImRlc2NcIiA6IFwiYXNjXCIsXG4gICAgICAgIGlkRmllbGQ6IHBhcnNlZC5pZEZpZWxkLFxuICAgICAgICBsYXN0VmFsdWU6IChwYXJzZWQgYXMgYW55KS5sYXN0VmFsdWUsXG4gICAgICAgIGxhc3RJZDogcGFyc2VkLmxhc3RJZCxcbiAgICAgICAgcXVlcnlIYXNoOiBwYXJzZWQucXVlcnlIYXNoLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRTeW50aGV0aWNQcml2YXRlQm9va21hcmsoY3Vyc29yOiB7XG4gICAgc29ydEZpZWxkOiBzdHJpbmc7XG4gICAgZGlyZWN0aW9uOiBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgaWRGaWVsZDogc3RyaW5nO1xuICAgIGxhc3RWYWx1ZTogYW55O1xuICAgIGxhc3RJZDogc3RyaW5nO1xuICAgIHF1ZXJ5SGFzaDogc3RyaW5nO1xuICB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7RmFicmljQ29udHJhY3RBZGFwdGVyLlBSSVZBVEVfQk9PS01BUktfUFJFRklYfSR7QnVmZmVyLmZyb20oXG4gICAgICBKU09OLnN0cmluZ2lmeShjdXJzb3IpXG4gICAgKS50b1N0cmluZyhcImJhc2U2NHVybFwiKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldENsaWVudCgpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIkNsaWVudCBpcyBub3Qgc3VwcG9ydGVkIGluIEZhYnJpYyBjb250cmFjdHNcIik7XG4gIH1cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUZXh0IGRlY29kZXIgZm9yIGNvbnZlcnRpbmcgYmluYXJ5IGRhdGEgdG8gc3RyaW5nc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgdGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgc2VyaWFsaXplciA9IG5ldyBTaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplcigpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ29udGV4dCBjb25zdHJ1Y3RvciBmb3IgdGhpcyBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcyB0aGUgYmFzZSBDb250ZXh0IGNvbnN0cnVjdG9yIHdpdGggRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0IENvbnRleHQoKTogQ29uc3RydWN0b3I8RmFicmljQ29udHJhY3RDb250ZXh0PiB7XG4gICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0Q29udGV4dDtcbiAgfVxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIHJlcG9zaXRvcnkgY29uc3RydWN0b3IgZm9yIHRoaXMgYWRhcHRlclxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgY29uc3RydWN0b3IgZm9yIGNyZWF0aW5nIHJlcG9zaXRvcmllc1xuICAgKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEByZXR1cm4ge0NvbnN0cnVjdG9yPFJlcG9zaXRvcnk8TSwgTWFuZ29RdWVyeSwgRmFicmljQ29udHJhY3RBZGFwdGVyLCBGYWJyaWNDb250cmFjdEZsYWdzLCBGYWJyaWNDb250cmFjdENvbnRleHQ+Pn0gVGhlIHJlcG9zaXRvcnkgY29uc3RydWN0b3JcbiAgICovXG4gIG92ZXJyaWRlIHJlcG9zaXRvcnk8XG4gICAgUiBleHRlbmRzIFJlcG9zaXRvcnk8XG4gICAgICBhbnksXG4gICAgICBBZGFwdGVyPGFueSwgdm9pZCwgTWFuZ29RdWVyeSwgQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPj5cbiAgICA+LFxuICA+KCk6IENvbnN0cnVjdG9yPFI+IHtcbiAgICByZXR1cm4gRmFicmljQ29udHJhY3RSZXBvc2l0b3J5IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8Uj47XG4gIH1cblxuICBvdmVycmlkZSBQYWdpbmF0b3I8TSBleHRlbmRzIE1vZGVsPihcbiAgICBxdWVyeTogTWFuZ29RdWVyeSxcbiAgICBzaXplOiBudW1iZXIsXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+XG4gICk6IFBhZ2luYXRvcjxNLCBhbnksIE1hbmdvUXVlcnk+IHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NvbnRyYWN0UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBTZXF1ZW5jZShvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMpOiBQcm9taXNlPFNlcXVlbmNlPiB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdFNlcXVlbmNlKG9wdGlvbnMsIHRoaXMgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBEaXNwYXRjaCgpOiBEaXNwYXRjaDxGYWJyaWNDb250cmFjdEFkYXB0ZXI+IHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NvbnRyYWN0RGlzcGF0Y2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYW4gYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBwYXJhbSB7dm9pZH0gc2NvcGUgLSBOb3QgdXNlZCBpbiB0aGlzIGFkYXB0ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFthbGlhc10gLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiB2b2lkLCBhbGlhcz86IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBGYWJyaWNGbGF2b3VyLCBhbGlhcyk7XG4gIH1cblxuICBvdmVycmlkZSBmb3IoY29uZmlnOiBQYXJ0aWFsPGFueT4sIC4uLmFyZ3M6IGFueSk6IHR5cGVvZiB0aGlzIHtcbiAgICByZXR1cm4gc3VwZXIuZm9yKGNvbmZpZywgLi4uYXJncyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TW9kZWxEZWZhdWx0czxNIGV4dGVuZHMgTW9kZWw+KGNsYXp6OiBDb25zdHJ1Y3RvcjxNPikge1xuICAgIGNvbnN0IG0gPSBuZXcgY2xhenooKTtcbiAgICByZXR1cm4gKE1ldGFkYXRhLnByb3BlcnRpZXMoY2xhenopIHx8IFtdKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBwKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgbVtwIGFzIGtleW9mIE1dICE9PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgIGFjY1twIGFzIGtleW9mIE1dID0gbVtwIGFzIGtleW9mIE1dO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIFJlY29yZDxrZXlvZiBNLCBhbnk+XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHJlY29yZCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgU2VyaWFsaXplcyBhIG1vZGVsIGFuZCBzdG9yZXMgaXQgaW4gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgcmVjb3JkIGRhdGFcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSAobm90IHVzZWQgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbilcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3JkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBjcmVhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlKTtcbiAgICB0aGlzLmVuZm9yY2VNaXJyb3JBdXRob3JpemF0aW9uKGNsYXp6LCBjdHgpO1xuICAgIGxvZy5pbmZvKGBpbiBBREFQVEVSIGNyZWF0ZSB3aXRoIGFyZ3MgJHthcmdzfWApO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgY29uc3QgY29tcG9zZWRLZXkgPSBjdHguc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbU3RyaW5nKGlkKV0pO1xuICAgIGNvbnN0IG1pcnJvckNvbGxlY3Rpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JDb2xsZWN0aW9uXCIpIGFzXG4gICAgICB8IHN0cmluZ1xuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZnVsbHlTZWdyZWdhdGVkID0gY3R4LmlzRnVsbHlTZWdyZWdhdGVkICYmICFtaXJyb3JDb2xsZWN0aW9uO1xuXG4gICAgaWYgKCFtaXJyb3JDb2xsZWN0aW9uKSB7XG4gICAgICBsZXQgZXhpc3Rpbmc6IGFueTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4aXN0aW5nID0gYXdhaXQgdGhpcy5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leC1hc3NpZ25cbiAgICAgICAgZSA9IHRoaXMucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpKSB0aHJvdyBlO1xuICAgICAgfVxuICAgICAgaWYgKGV4aXN0aW5nKVxuICAgICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihcbiAgICAgICAgICBgcmVjb3JkIHdpdGggaWQgJHtpZH0gaW4gdGFibGUgJHt0YWJsZU5hbWV9IGFscmVhZHkgZXhpc3RzYFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBsb2cuaW5mbyhgYWRkaW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZSB3aXRoIHBrICR7aWR9YCk7XG5cbiAgICAgIGlmIChtaXJyb3JDb2xsZWN0aW9uKSB7XG4gICAgICAgIG1vZGVsID0gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnB1dFN0YXRlKFxuICAgICAgICAgIGNvbXBvc2VkS2V5LFxuICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgIGN0eFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdHMgPSB0aGlzLmdldE1vZGVsRGVmYXVsdHMoY2xhenopO1xuICAgICAgICAvLyBoYW5kbGUgcHVibGljIGRhdGEgaWYgbm90IGZ1bGx5IHNlZ3JlZ2F0ZWRcbiAgICAgICAgaWYgKCFmdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhtb2RlbCkuZmlsdGVyKChrKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCS2V5cy5UQUJMRSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICByZXR1cm4gIShcbiAgICAgICAgICAgICAgICBkZWZhdWx0cyAmJlxuICAgICAgICAgICAgICAgIGsgaW4gZGVmYXVsdHMgJiZcbiAgICAgICAgICAgICAgICBkZWZhdWx0c1trIGFzIGtleW9mIE1dID09PSBtb2RlbFtrXVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkubGVuZ3RoXG4gICAgICAgICAgKVxuICAgICAgICAgICAgbW9kZWwgPSBhd2FpdCB0aGlzLnB1dFN0YXRlKGNvbXBvc2VkS2V5LCBtb2RlbCwgY3R4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGhhbmRsZSBzZWdyZWdhdGVkIHdyaXRlc1xuICAgICAgICBjb25zdCBkYXRhID0gY3R4LmdldEZyb21DaGlsZHJlbihcInNlZ3JlZ2F0ZWREYXRhXCIpO1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiBkYXRhKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbGxlY3Rpb24pLnB1dFN0YXRlKFxuICAgICAgICAgICAgICAgIGNvbXBvc2VkS2V5LFxuICAgICAgICAgICAgICAgIGRhdGFbY29sbGVjdGlvbl1baWQgYXMgYW55XSxcbiAgICAgICAgICAgICAgICBjdHhcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFibGVOYW1lOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBpZiAoaWQubGVuZ3RoICE9PSBtb2RlbC5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsKTtcbiAgICBjb25zdCB0YWJsZUxhYmVsID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBDcmVhdGluZyAke2lkLmxlbmd0aH0gZW50cmllcyAke3RhYmxlTGFiZWx9IHRhYmxlYCk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgaWQubWFwKChpLCBjb3VudCkgPT4gdGhpcy5jcmVhdGUodGFibGVOYW1lLCBpLCBtb2RlbFtjb3VudF0sIC4uLmN0eEFyZ3MpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIGEgcmVjb3JkIGZyb20gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhbmQgZGVzZXJpYWxpemVzIGEgcmVjb3JkIGZyb20gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHRoZSBjaGFpbmNvZGUgc3R1YiBhbmQgbG9nZ2VyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3JkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyByZWFkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWQpO1xuICAgIGxvZy5pbmZvKGBpbiBBREFQVEVSIHJlYWQgd2l0aCBhcmdzICR7YXJnc31gKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgY29uc3QgY29tcG9zZWRLZXkgPSBjdHguc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbU3RyaW5nKGlkKV0pO1xuICAgIGNvbnN0IG1pcnJvckNvbGxlY3Rpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JDb2xsZWN0aW9uXCIpIGFzXG4gICAgICB8IHN0cmluZ1xuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgaXNNaXJyb3IgPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JcIikgYXMgYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNNaXJyb3IgJiYgbWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5yZWFkU3RhdGUoXG4gICAgICAgICAgY29tcG9zZWRLZXksXG4gICAgICAgICAgY3R4XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGN0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgICAgIGN0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAgIHRyeSB7XG4gICAgICBtb2RlbCA9IGN0eC5pc0Z1bGx5U2VncmVnYXRlZFxuICAgICAgICA/IHt9XG4gICAgICAgIDogYXdhaXQgdGhpcy5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlYWRDb2xsZWN0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gICAgICAuLi4oY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpIHx8IFtdKSxcbiAgICAgIC4uLihjdHguY29uc3VtZVJlYWRDb2xsZWN0aW9ucygpIHx8IFtdKSxcbiAgICBdKTtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiByZWFkQ29sbGVjdGlvbnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbCkucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICAgICAgaWYgKHBhcnNlZCBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIGNvbnRpbnVlO1xuICAgICAgICB0aHJvdyBwYXJzZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXG4gICAgICAgIGByZWNvcmQgd2l0aCBpZCAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX0gZG9lcyBub3QgZXhpc3RgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtdWx0aXBsZSByZWNvcmRzIGZyb20gdGhlIGRhdGFiYXNlXG4gICAqIEBzdW1tYXJ5IEZldGNoZXMgbXVsdGlwbGUgcmVjb3JkcyB3aXRoIHRoZSBnaXZlbiBJRHMgZnJvbSB0aGUgc3BlY2lmaWVkIHRhYmxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gcmVhZCBmcm9tXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVycyBvZiB0aGUgcmVjb3JkcyB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgc3BlY2lmaWMgdG8gdGhlIGFkYXB0ZXIgaW1wbGVtZW50YXRpb25cbiAgICogQHJldHVybiBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBhcnJheSBvZiByZXRyaWV2ZWQgcmVjb3Jkc1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZEFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGVbXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cuZGVidWcoYFJlYWRpbmcgJHtpZC5sZW5ndGh9IGVudHJpZXMgJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgY29uc3QgYnJlYWtPblNpbmdsZUZhaWx1cmUgPSBjdHguZ2V0KFwiYnJlYWtPblNpbmdsZUZhaWx1cmVJbkJ1bGtcIikgPz8gdHJ1ZTtcbiAgICBjb25zdCBjb250aW51ZU9uRXJyb3IgPSAhYnJlYWtPblNpbmdsZUZhaWx1cmU7XG5cbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGlzTWlycm9yID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yXCIpIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCByZWFkTWlycm9yID0gYXN5bmMgPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+PlxuICAgICkgPT4ge1xuICAgICAgaWYgKCFtaXJyb3JDb2xsZWN0aW9uKVxuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKFwiTWlzc2luZyBtaXJyb3IgY29sbGVjdGlvbiBmb3IgbWlycm9yIHJlYWRcIik7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCByZWFkTWlycm9yKTtcbiAgICAgICAgbG9nLmluZm8oYGluIEFEQVBURVIgcmVhZCB3aXRoIGFyZ3MgJHthcmdzfWApO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1xuICAgICAgICAgIFN0cmluZyhpZCksXG4gICAgICAgIF0pO1xuXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZvclByaXZhdGUobWlycm9yQ29sbGVjdGlvbikucmVhZFN0YXRlKFxuICAgICAgICAgIGNvbXBvc2VkS2V5LFxuICAgICAgICAgIGN0eFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0YXNrcyA9IGlkLm1hcChcbiAgICAgICAgKGkpID0+ICgpID0+XG4gICAgICAgICAgaXNNaXJyb3IgJiYgbWlycm9yQ29sbGVjdGlvblxuICAgICAgICAgICAgPyByZWFkTWlycm9yKFxuICAgICAgICAgICAgICAgIGNsYXp6LFxuICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgLi4uYXJncyxcbiAgICAgICAgICAgICAgICAoY3R4IGFzIGFueSkub3ZlcnJpZGUoeyBub0VtaXRTaW5nbGU6IHRydWUgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB0aGlzLnJlYWQoXG4gICAgICAgICAgICAgICAgY2xhenosXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICAuLi5hcmdzLFxuICAgICAgICAgICAgICAgIChjdHggYXMgYW55KS5vdmVycmlkZSh7IG5vRW1pdFNpbmdsZTogdHJ1ZSB9KVxuICAgICAgICAgICAgICApXG4gICAgICApO1xuXG4gICAgICBjb25zdCByYXdSZXN1bHQgPSBjb250aW51ZU9uRXJyb3JcbiAgICAgICAgPyBhd2FpdCBwcm9taXNlU2VxdWVuY2UodGFza3MsIHRydWUpXG4gICAgICAgIDogYXdhaXQgcHJvbWlzZVNlcXVlbmNlKHRhc2tzKTtcbiAgICAgIHJldHVybiByZXNvbHZlQnVsa1NlcXVlbmNlUmVzdWx0KFxuICAgICAgICByYXdSZXN1bHQsXG4gICAgICAgIGNvbnRpbnVlT25FcnJvcixcbiAgICAgICAgbG9nLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuUkVBRF9BTExcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB1bmRlZmluZWQpO1xuICAgICAgY3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIGEgcmVjb3JkIGluIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBTZXJpYWxpemVzIGEgbW9kZWwgYW5kIHVwZGF0ZXMgaXQgaW4gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIChub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCByZWNvcmRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuXG4gICAgdGhpcy5lbmZvcmNlTWlycm9yQXV0aG9yaXphdGlvbihjbGF6eiwgY3R4KTtcbiAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiB1cGRhdGUgd2l0aCBhcmdzICR7YXJnc31gKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxvZy5pbmZvKGB1cGRhdGluZyBlbnRyeSBpbiAke3RhYmxlTmFtZX0gdGFibGUgd2l0aCBwayAke2lkfWApO1xuXG4gICAgICBpZiAobWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5wdXRTdGF0ZShcbiAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICBjdHhcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5nZXRNb2RlbERlZmF1bHRzKGNsYXp6KTtcbiAgICAgICAgLy8gaGFuZGxlIHB1YmxpYyBkYXRhXG4gICAgICAgIGlmIChcbiAgICAgICAgICBPYmplY3Qua2V5cyhtb2RlbCkuZmlsdGVyKChrKSA9PiB7XG4gICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQktleXMuVEFCTEUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiAhKFxuICAgICAgICAgICAgICBkZWZhdWx0cyAmJlxuICAgICAgICAgICAgICBrIGluIGRlZmF1bHRzICYmXG4gICAgICAgICAgICAgIGRlZmF1bHRzW2sgYXMga2V5b2YgTV0gPT09IG1vZGVsW2tdXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLmxlbmd0aFxuICAgICAgICApXG4gICAgICAgICAgbW9kZWwgPSBhd2FpdCB0aGlzLnB1dFN0YXRlKGNvbXBvc2VkS2V5LCBtb2RlbCwgY3R4KTtcblxuICAgICAgICAvLyBoYW5kbGUgc2VncmVnYXRlZCB3cml0ZXNcbiAgICAgICAgY29uc3QgZGF0YSA9IGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJzZWdyZWdhdGVkRGF0YVwiKTtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gaW4gZGF0YSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKS5wdXRTdGF0ZShcbiAgICAgICAgICAgICAgICBjb21wb3NlZEtleSxcbiAgICAgICAgICAgICAgICBkYXRhW2NvbGxlY3Rpb25dW2lkIGFzIGFueV0sXG4gICAgICAgICAgICAgICAgY3R4XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHJlY29yZCBmcm9tIHRoZSBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSByZWNvcmQgYW5kIHRoZW4gcmVtb3ZlcyBpdCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllciB0byBkZWxldGVcbiAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4gICAqL1xuICBhc3luYyBkZWxldGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZGVsZXRlKTtcblxuICAgIHRoaXMuZW5mb3JjZU1pcnJvckF1dGhvcml6YXRpb24oY2xhenosIGN0eCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGNvbnN0IGNvbXBvc2VkS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhpZCldKTtcbiAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKSBhc1xuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgIGxldCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAgIGlmIChtaXJyb3JDb2xsZWN0aW9uKSB7XG4gICAgICB0cnkge1xuICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5yZWFkU3RhdGUoXG4gICAgICAgICAgY29tcG9zZWRLZXksXG4gICAgICAgICAgY3R4XG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5kZWxldGVTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBtb2RlbCA9IGN0eC5pc0Z1bGx5U2VncmVnYXRlZFxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IGF3YWl0IHRoaXMucmVhZFN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICBpZiAoIWN0eC5pc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgRGVsZXRpbmcgZW50cnkgJHtjb21wb3NlZEtleX0gZnJvbSBwdWJsaWMgbGVkZ2VyYCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpO1xuICAgICAgaWYgKGNvbGxlY3Rpb25zICYmIGNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgIGBlbnN1cmluZyBjb2xsZWN0aW9uICR7Y29sfSBoYXMgZW50cnkgZm9yIGlkICR7Y29tcG9zZWRLZXl9IGJlZm9yZSBkZWxldGluZ2BcbiAgICAgICAgICApO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2wpLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KVxuICAgICAgICAgICk7XG4gICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgYERlbGV0aW5nIHByaXZhdGUgY29sbGVjdGlvbiAke2NvbH0gZW50cnkgZm9yIGlkICR7Y29tcG9zZWRLZXl9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5mb3JQcml2YXRlKGNvbCkuZGVsZXRlU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVN0YXRlKGlkOiBzdHJpbmcsIGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCkge1xuICAgIGF3YWl0IGNvbnRleHQuc3R1Yi5kZWxldGVTdGF0ZShpZCk7XG4gIH1cblxuICBmb3JQcml2YXRlKGNvbGxlY3Rpb246IHN0cmluZyk6IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB7XG4gICAgY29uc3QgdG9PdmVycmlkZSA9IFtcbiAgICAgIHRoaXMucHV0U3RhdGUsXG4gICAgICB0aGlzLnJlYWRTdGF0ZSxcbiAgICAgIHRoaXMuZGVsZXRlU3RhdGUsXG4gICAgICB0aGlzLnF1ZXJ5UmVzdWx0LFxuICAgICAgdGhpcy5xdWVyeVJlc3VsdFBhZ2luYXRlZCxcbiAgICBdLm1hcCgoZm4pID0+IGZuLm5hbWUpO1xuICAgIHJldHVybiBuZXcgUHJveHkodGhpcywge1xuICAgICAgZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKCF0b092ZXJyaWRlLmluY2x1ZGVzKHByb3AgYXMgc3RyaW5nKSlcbiAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkoKHRhcmdldCBhcyBhbnkpW3Byb3BdLCB7XG4gICAgICAgICAgYXN5bmMgYXBwbHkoZm4sIHRoaXNBcmcsIGFyZ3NMaXN0KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHByb3ApIHtcbiAgICAgICAgICAgICAgY2FzZSBcInB1dFN0YXRlXCI6IHtcbiAgICAgICAgICAgICAgICAvLyBwdXRTdGF0ZSBzaWduYXR1cmU6IChpZDogc3RyaW5nLCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PiwgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQpXG4gICAgICAgICAgICAgICAgY29uc3QgW2lkLCBtb2RlbCwgY3R4XSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHByb3ApO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgIGBQcml2YXRlIHdyaXRlIHRvICR7Y29sbGVjdGlvbn0gZm9yICR7aWQudG9TdHJpbmcoKX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gQnVmZmVyLmZyb20oXG4gICAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5zZXJpYWxpemUoXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsIGFzIE1vZGVsLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYXdhaXQgY3R4LnN0dWIucHV0UHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQudG9TdHJpbmcoKSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgLy8gZGVsZXRlU3RhdGUgc2lnbmF0dXJlOiAoaWQ6IHN0cmluZywgY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0KVxuICAgICAgICAgICAgICAgIGNvbnN0IFtpZCwgY3R4XSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHByb3ApO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgIGBQcml2YXRlIGRlbGV0ZSBvbiAke2NvbGxlY3Rpb259IGZvciAke2lkLnRvU3RyaW5nKCl9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYXdhaXQgY3R4LnN0dWIuZGVsZXRlUHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJyZWFkU3RhdGVcIjoge1xuICAgICAgICAgICAgICAgIC8vIHJlYWRTdGF0ZSBzaWduYXR1cmU6IChpZDogc3RyaW5nLCBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dClcbiAgICAgICAgICAgICAgICBjb25zdCBbaWQsIGN0eF0gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcihwcm9wKTtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoXG4gICAgICAgICAgICAgICAgICBgUHJpdmF0ZSByZWFkIGZyb20gJHtjb2xsZWN0aW9ufSBmb3IgJHtpZC50b1N0cmluZygpfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjdHguc3R1Yi5nZXRQcml2YXRlRGF0YShjb2xsZWN0aW9uLCBpZCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhLnRvU3RyaW5nKCkubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoXG4gICAgICAgICAgICAgICAgICAgIGRhdGEudG9TdHJpbmcoXCJ1dGY4XCIpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlIFwicXVlcnlSZXN1bHRcIjoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtzdHViLCByYXdJbnB1dCwgLi4uYXJnc10gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxvZyB9ID0gdGhpc0FyZ1tcImxvZ0N0eFwiXShhcmdzLCBwcm9wKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJbnB1dCA9XG4gICAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIubm9ybWFsaXplTWFuZ29RdWVyeUZvckV4ZWN1dGlvbihcbiAgICAgICAgICAgICAgICAgICAgcmF3SW5wdXRcbiAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeUpzb24gPSBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkSW5wdXQpO1xuXG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgICAgICAgYFF1ZXJ5aW5nIHByaXZhdGUgY29sbGVjdGlvbiAke2NvbGxlY3Rpb259IHdpdGggTWFuZ28gcXVlcnk6ICR7cXVlcnlKc29ufWBcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IChcbiAgICAgICAgICAgICAgICAgICAgc3R1YiBhcyBDaGFpbmNvZGVTdHViXG4gICAgICAgICAgICAgICAgICApLmdldFByaXZhdGVEYXRhUXVlcnlSZXN1bHQoY29sbGVjdGlvbiwgcXVlcnlKc29uKTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgaXRlcmF0b3IgPSAocmVzIGFzIGFueSkuaXRlcmF0b3IgfHwgcmVzO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9yIHx8IHR5cGVvZiBpdGVyYXRvci5uZXh0ICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYFByaXZhdGUgcXVlcnkgb24gY29sbGVjdGlvbiAke2NvbGxlY3Rpb259IGRpZCBub3QgcmV0dXJuIGEgdmFsaWQgaXRlcmF0b3JgXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcjtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBgUHJpdmF0ZSBNYW5nbyBxdWVyeSBmYWlsZWRgLFxuICAgICAgICAgICAgICAgICAgICAgIGBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn1gLFxuICAgICAgICAgICAgICAgICAgICAgIGBxdWVyeT0ke3F1ZXJ5SnNvbn1gLFxuICAgICAgICAgICAgICAgICAgICAgIGBlcnJvcj0ke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUuc3RhY2sgfHwgZS5tZXNzYWdlIDogU3RyaW5nKGUpfWAsXG4gICAgICAgICAgICAgICAgICAgIF0uam9pbihcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgdGhyb3cgdGhpc0FyZy5wYXJzZUVycm9yID8gdGhpc0FyZy5wYXJzZUVycm9yKGUgYXMgRXJyb3IpIDogZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSBcInF1ZXJ5UmVzdWx0UGFnaW5hdGVkXCI6IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbc3R1YiwgcmF3SW5wdXQsIGxpbWl0LCBza2lwLCBib29rbWFyaywgLi4uYXJnc10gPVxuICAgICAgICAgICAgICAgICAgYXJnc0xpc3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpc0FyZ1tcImxvZ0N0eFwiXShhcmdzLCBwcm9wKTtcbiAgICAgICAgICAgICAgICBpZiAoc2tpcCAhPT0gdW5kZWZpbmVkICYmIHNraXAgIT09IG51bGwgJiYgTnVtYmVyKHNraXApID4gMCkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhZ2luZ0Vycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlByaXZhdGUgTWFuZ28gcGFnaW5hdGlvbiBkb2VzIG5vdCBzdXBwb3J0IHNraXAvb2Zmc2V0IHBhZ2luYXRpb24uIFVzZSB0aGUgcmV0dXJuZWQgc3ludGhldGljIGJvb2ttYXJrIGluc3RlYWQuXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZVNpemUgPSBNYXRoLm1heCgxLCBOdW1iZXIobGltaXQpIHx8IDI1MCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB7IC4uLnJhd0lucHV0IH0gYXMgTWFuZ29RdWVyeTtcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeUlucHV0ID0gcXVlcnkgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeVBrRmllbGQgPVxuICAgICAgICAgICAgICAgICAgdHlwZW9mIHF1ZXJ5SW5wdXRbXCJfX3BrRmllbGRcIl0gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5SW5wdXRbXCJfX3BrRmllbGRcIl0udHJpbSgpLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IFN0cmluZyhxdWVyeUlucHV0W1wiX19wa0ZpZWxkXCJdKVxuICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0eD8uZ2V0T3JVbmRlZmluZWQoXCJwcml2YXRlUGFnaW5hdGlvblRpZUJyZWFrZXJcIikgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcXVlcnlJbnB1dFtcIl9fcGtGaWVsZFwiXTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpY0N1cnNvciA9XG4gICAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIucGFyc2VTeW50aGV0aWNQcml2YXRlQm9va21hcmsoYm9va21hcmspO1xuXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgYm9va21hcmsgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgICAgYm9va21hcmsgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgIGJvb2ttYXJrICE9PSBcIlwiICYmXG4gICAgICAgICAgICAgICAgICAhc3ludGhldGljQ3Vyc29yXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIG9ubHkgc3VwcG9ydHMgYWRhcHRlci1nZW5lcmF0ZWQgc3ludGhldGljIGJvb2ttYXJrcy5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocXVlcnkuc29ydCkgfHwgIXF1ZXJ5LnNvcnQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIHJlcXVpcmVzIGFuIGV4cGxpY2l0IHNvcnQuIEFkZCBvcmRlckJ5KC4uLikgc28gYSBzdGFibGUgZ2VuZXJhdGVkIGluZGV4IGNhbiBiZSBzZWxlY3RlZC5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICBzb3J0RmllbGQsXG4gICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICBpZEZpZWxkLFxuICAgICAgICAgICAgICAgIH0gPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIuZW5zdXJlRGV0ZXJtaW5pc3RpY1ByaXZhdGVTb3J0KFxuICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICBxdWVyeVBrRmllbGRcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgd2FyblNjYW5Qcm9uZU1hbmdvT3BlcmF0b3JzKHF1ZXJ5LnNlbGVjdG9yIHx8IHt9LCBsb2cpO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFF1ZXJ5ID1cbiAgICAgICAgICAgICAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5ub3JtYWxpemVNYW5nb1F1ZXJ5Rm9yRXhlY3V0aW9uKHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYXR0YWNoR2VuZXJhdGVkUHJpdmF0ZVVzZUluZGV4KFxuICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgbG9nXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgICAgIGBQcml2YXRlIHBhZ2luYXRlZCBxdWVyeSBpbnB1dCBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn0gbGltaXQ9JHtsaW1pdH0gc2tpcD0ke3NraXB9IGJvb2ttYXJrPSR7Ym9va21hcmt9IHNvcnRGaWVsZD0ke3NvcnRGaWVsZH0gZGlyZWN0aW9uPSR7c29ydERpcmVjdGlvbn0gc3ludGhldGljPSR7Qm9vbGVhbihcbiAgICAgICAgICAgICAgICAgICAgc3ludGhldGljQ3Vyc29yXG4gICAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZFF1ZXJ5LmxpbWl0ID0gcGFnZVNpemUgKyAxO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnlIYXNoID1cbiAgICAgICAgICAgICAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5wcml2YXRlUXVlcnlIYXNoKG5vcm1hbGl6ZWRRdWVyeSk7XG4gICAgICAgICAgICAgICAgaWYgKHN5bnRoZXRpY0N1cnNvcikge1xuICAgICAgICAgICAgICAgICAgaWYgKHN5bnRoZXRpY0N1cnNvci5xdWVyeUhhc2ggIT09IHF1ZXJ5SGFzaCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJQcml2YXRlIE1hbmdvIGJvb2ttYXJrIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50IHF1ZXJ5LlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcmllcyA9IHN5bnRoZXRpY0N1cnNvclxuICAgICAgICAgICAgICAgICAgPyBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYnVpbGRPcmxlc3NLZXlzZXRDb250aW51YXRpb25RdWVyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRRdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICBzeW50aGV0aWNDdXJzb3IsXG4gICAgICAgICAgICAgICAgICAgICAgcGFnZVNpemVcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgOiBbeyAuLi5ub3JtYWxpemVkUXVlcnksIGxpbWl0OiBwYWdlU2l6ZSArIDEgfSBhcyBNYW5nb1F1ZXJ5XTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VkID1cbiAgICAgICAgICAgICAgICAgIGF3YWl0IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5leGVjdXRlUHJpdmF0ZU1hbmdvUGFnZVF1ZXJpZXMoXG4gICAgICAgICAgICAgICAgICAgIHN0dWIgYXMgQ2hhaW5jb2RlU3R1YixcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgcXVlcmllcyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIGxvZ1xuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc01vcmUgPSBwYWdlZC5sZW5ndGggPiBwYWdlU2l6ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBkb2NzID0gaGFzTW9yZSA/IHBhZ2VkLnNsaWNlKDAsIHBhZ2VTaXplKSA6IHBhZ2VkO1xuXG4gICAgICAgICAgICAgICAgbGV0IG5leHRCb29rbWFyayA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKGhhc01vcmUgJiYgZG9jcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBkb2NzW2RvY3MubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgICAgICBjb25zdCBsYXN0RG9jID0gRmFicmljQ29udHJhY3RBZGFwdGVyLnBhcnNlUHJpdmF0ZVJlc3VsdFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICBsYXN0LnZhbHVlXG4gICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoIShzb3J0RmllbGQgaW4gbGFzdERvYykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhZ2luZ0Vycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIGBDYW5ub3QgYnVpbGQgcHJpdmF0ZSBwYWdpbmF0aW9uIGJvb2ttYXJrOiBzb3J0ZWQgZmllbGQgXCIke3NvcnRGaWVsZH1cIiBpcyBtaXNzaW5nIGZyb20gdGhlIGxhc3QgcmVzdWx0YFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCBsYXN0SWRWYWx1ZSA9IGxhc3REb2NbaWRGaWVsZF07XG4gICAgICAgICAgICAgICAgICBpZiAobGFzdElkVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBsYXN0SWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYENhbm5vdCBidWlsZCBwcml2YXRlIHBhZ2luYXRpb24gYm9va21hcms6IGlkIGZpZWxkIFwiJHtpZEZpZWxkfVwiIGlzIG1pc3NpbmcgZnJvbSB0aGUgbGFzdCByZXN1bHRgXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIG5leHRCb29rbWFyayA9XG4gICAgICAgICAgICAgICAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5idWlsZFN5bnRoZXRpY1ByaXZhdGVCb29rbWFyayh7XG4gICAgICAgICAgICAgICAgICAgICAgc29ydEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogc29ydERpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBpZEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3RWYWx1ZTogbGFzdERvY1tzb3J0RmllbGRdLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3RJZDogU3RyaW5nKGxhc3RJZFZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgICBxdWVyeUhhc2gsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBGYWJyaWNDb250cmFjdEFkYXB0ZXIudG9GYWJyaWNQYWdpbmF0aW9uUmVzcG9uc2UoXG4gICAgICAgICAgICAgICAgICBkb2NzLFxuICAgICAgICAgICAgICAgICAgbmV4dEJvb2ttYXJrXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgICAgICAgYFVuc3VwcG9ydGVkIG1ldGhvZCBvdmVycmlkZSAke1N0cmluZyhwcm9wKX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcHV0U3RhdGUoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICApIHtcbiAgICBsZXQgZGF0YTogQnVmZmVyO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRhdGEgPSBCdWZmZXIuZnJvbShcbiAgICAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsIGFzIE1vZGVsLCBmYWxzZSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byBzZXJpYWxpemUgcmVjb3JkIHdpdGggaWQgJHtpZH06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBhd2FpdCBjdHguc3R1Yi5wdXRTdGF0ZShpZC50b1N0cmluZygpLCBkYXRhKTtcblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWFkU3RhdGUoaWQ6IHN0cmluZywgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQpIHtcbiAgICBsZXQgcmVzdWx0OiBhbnk7XG5cbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoW2N0eF0sIHRoaXMucmVhZFN0YXRlKTtcbiAgICBjb25zdCByZXMgPSAoYXdhaXQgY3R4LnN0dWIuZ2V0U3RhdGUoaWQudG9TdHJpbmcoKSkpLnRvU3RyaW5nKCk7XG4gICAgaWYgKCFyZXMpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBSZWNvcmQgd2l0aCBpZCAke2lkfSBub3QgZm91bmRgKTtcbiAgICBsb2cuc2lsbHkoYHN0YXRlIHJldHJpZXZlZCB1bmRlciBpZCAke2lkfWApO1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyZXMudG9TdHJpbmcoKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHJlY29yZDogJHtlfWApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcXVlcnlSZXN1bHQoXG4gICAgc3R1YjogQ2hhaW5jb2RlU3R1YixcbiAgICByYXdJbnB1dDogYW55LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8SXRlcmF0b3JzLlN0YXRlUXVlcnlJdGVyYXRvcj4ge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRJbnB1dCA9XG4gICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIubm9ybWFsaXplTWFuZ29RdWVyeUZvckV4ZWN1dGlvbihyYXdJbnB1dCk7XG4gICAgRmFicmljQ29udHJhY3RBZGFwdGVyLmF0dGFjaEdlbmVyYXRlZFByaXZhdGVVc2VJbmRleChub3JtYWxpemVkSW5wdXQpO1xuICAgIHJldHVybiBzdHViLmdldFF1ZXJ5UmVzdWx0KEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRJbnB1dCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHF1ZXJ5UmVzdWx0UGFnaW5hdGVkKFxuICAgIHN0dWI6IENoYWluY29kZVN0dWIsXG4gICAgcmF3SW5wdXQ6IGFueSxcbiAgICBsaW1pdDogbnVtYmVyID0gMjUwLFxuICAgIHBhZ2U/OiBudW1iZXIsXG4gICAgYm9va21hcms/OiBzdHJpbmcgfCBudW1iZXIsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U3RhdGVRdWVyeVJlc3BvbnNlPEl0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3I+PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZElucHV0ID1cbiAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5ub3JtYWxpemVNYW5nb1F1ZXJ5Rm9yRXhlY3V0aW9uKHJhd0lucHV0KTtcbiAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYXR0YWNoR2VuZXJhdGVkUHJpdmF0ZVVzZUluZGV4KG5vcm1hbGl6ZWRJbnB1dCk7XG4gICAgcmV0dXJuIHN0dWIuZ2V0UXVlcnlSZXN1bHRXaXRoUGFnaW5hdGlvbihcbiAgICAgIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRJbnB1dCksXG4gICAgICBsaW1pdCxcbiAgICAgIGJvb2ttYXJrPy50b1N0cmluZygpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVjb2RlcyBiaW5hcnkgZGF0YSB0byBzdHJpbmdcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYSBVaW50OEFycmF5IHRvIGEgc3RyaW5nIHVzaW5nIFVURi04IGVuY29kaW5nXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gYnVmZmVyIC0gVGhlIGJpbmFyeSBkYXRhIHRvIGRlY29kZVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBkZWNvZGVkIHN0cmluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGRlY29kZShidWZmZXI6IFVpbnQ4QXJyYXkpIHtcbiAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnRleHREZWNvZGVyLmRlY29kZShidWZmZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIG9wZXJhdGlvbiBmbGFncyBmb3IgRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAgICogQHN1bW1hcnkgTWVyZ2VzIGRlZmF1bHQgZmxhZ3Mgd2l0aCBGYWJyaWMtc3BlY2lmaWMgY29udGV4dCBpbmZvcm1hdGlvblxuICAgKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c30gb3BlcmF0aW9uIC0gVGhlIG9wZXJhdGlvbiBiZWluZyBwZXJmb3JtZWRcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWwgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+fSBmbGFncyAtIFBhcnRpYWwgZmxhZ3MgdG8gbWVyZ2Ugd2l0aCBkZWZhdWx0c1xuICAgKiBAcGFyYW0ge0N0eH0gY3R4IC0gVGhlIEZhYnJpYyBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcmV0dXJuIHtGYWJyaWNDb250cmFjdEZsYWdzfSBUaGUgbWVyZ2VkIGZsYWdzXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmxhZ3M8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvcGVyYXRpb246IEFsbE9wZXJhdGlvbktleXMsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+IHwgdW5kZWZpbmVkLFxuICAgIGZsYWdzOiBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+IHwgRmFicmljQ29udHJhY3RDb250ZXh0IHwgQ3R4IHwgYW55XG4gICk6IFByb21pc2U8RmFicmljQ29udHJhY3RGbGFncz4ge1xuICAgIGxldCBiYXNlRmxhZ3MgPSB7XG4gICAgICBzZWdyZWdhdGVkOiBmYWxzZSxcbiAgICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgICAgIGZ1bGx5U2VncmVnYXRlZDogZmFsc2UsXG4gICAgICBzdHJpY3RQcml2YXRlTWFuZ29QYWdpbmF0aW9uOiB0cnVlLFxuICAgICAgcHJpdmF0ZVBhZ2luYXRpb25UaWVCcmVha2VyOiBcImlkXCIsXG4gICAgfTtcbiAgICBpZiAoZmxhZ3MgaW5zdGFuY2VvZiBGYWJyaWNDb250cmFjdENvbnRleHQgfHwgZmxhZ3MgaW5zdGFuY2VvZiBDb250ZXh0KSB7XG4gICAgICBmbGFncyA9IGZsYWdzLnRvT3ZlcnJpZGVzKCk7XG4gICAgfVxuXG4gICAgYmFzZUZsYWdzID0gT2JqZWN0LmFzc2lnbihiYXNlRmxhZ3MsIGZsYWdzKTtcbiAgICBjb25zdCBzdHViRnJvbUZsYWdzID1cbiAgICAgIChmbGFncyBhcyBGYWJyaWNDb250cmFjdENvbnRleHQpLnN0dWIgfHwgKGZsYWdzIGFzIEN0eCkuc3R1YjtcbiAgICBjb25zdCBpZGVudGl0eUZyb21GbGFncyA9XG4gICAgICAoZmxhZ3MgYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5pZGVudGl0eSB8fFxuICAgICAgKGZsYWdzIGFzIEN0eCkuY2xpZW50SWRlbnRpdHk7XG4gICAgaWYgKHN0dWJGcm9tRmxhZ3MgJiYgaWRlbnRpdHlGcm9tRmxhZ3MpIHtcbiAgICAgIGNvbnN0IHR4SWQgPSBzdHViRnJvbUZsYWdzLmdldFR4SUQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oYmFzZUZsYWdzLCB7XG4gICAgICAgIHN0dWI6IHN0dWJGcm9tRmxhZ3MsXG4gICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUZyb21GbGFncyxcbiAgICAgICAgY2VydDogaWRlbnRpdHlGcm9tRmxhZ3MuZ2V0SURCeXRlcygpLnRvU3RyaW5nKCksXG4gICAgICAgIHJvbGVzOiBpZGVudGl0eUZyb21GbGFncy5nZXRBdHRyaWJ1dGVWYWx1ZShcInJvbGVzXCIpLFxuICAgICAgICBsb2dnZXI6IExvZ2dpbmcuZm9yKFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsb2dMZXZlbDogZmFsc2UsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IGZhbHNlLFxuICAgICAgICAgICAgY29ycmVsYXRpb25JZDogdHhJZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZsYWdzXG4gICAgICAgICksXG4gICAgICAgIGNvcnJlbGF0aW9uSWQ6IHR4SWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZUZsYWdzID0gT2JqZWN0LmFzc2lnbihiYXNlRmxhZ3MsIGZsYWdzIHx8IHt9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IHN1cGVyLmZsYWdzKFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgbW9kZWwsXG4gICAgICBiYXNlRmxhZ3MgYXMgYW55XG4gICAgKSkgYXMgRmFicmljQ29udHJhY3RGbGFncztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbmRleCBmb3IgYSBtb2RlbFxuICAgKiBAc3VtbWFyeSBUaGlzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIEZhYnJpYyBjb250cmFjdHMgYW5kIHJldHVybnMgYSByZXNvbHZlZCBwcm9taXNlXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gbW9kZWxzIC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyBpbW1lZGlhdGVseVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm90ZWN0ZWQgaW5kZXg8TT4obW9kZWxzOiBDb25zdHJ1Y3RvcjxNPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIHJlc3VsdHMgZnJvbSBhIHN0YXRlIHF1ZXJ5IGl0ZXJhdG9yXG4gICAqIEBzdW1tYXJ5IEl0ZXJhdGVzIHRocm91Z2ggcXVlcnkgcmVzdWx0cyBhbmQgY29udmVydHMgdGhlbSB0byBhIHN0cnVjdHVyZWQgZm9ybWF0XG4gICAqIEBwYXJhbSB7TG9nZ2VyfSBsb2cgLSBMb2dnZXIgaW5zdGFuY2UgZm9yIGRlYnVnZ2luZ1xuICAgKiBAcGFyYW0ge0l0ZXJhdG9ycy5TdGF0ZVF1ZXJ5SXRlcmF0b3J9IGl0ZXJhdG9yIC0gVGhlIHN0YXRlIHF1ZXJ5IGl0ZXJhdG9yXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzSGlzdG9yeT1mYWxzZV0gLSBXaGV0aGVyIHRoaXMgaXMgYSBoaXN0b3J5IHF1ZXJ5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55W10+fSBQcm9taXNlIHJlc29sdmluZyB0byBhbiBhcnJheSBvZiBwcm9jZXNzZWQgcmVzdWx0c1xuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAgICogICBwYXJ0aWNpcGFudCBSZXN1bHRJdGVyYXRvclxuICAgKiAgIHBhcnRpY2lwYW50IEl0ZXJhdG9yXG4gICAqXG4gICAqICAgQ2FsbGVyLT4+UmVzdWx0SXRlcmF0b3I6IHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IsIGlzSGlzdG9yeSlcbiAgICogICBsb29wIFVudGlsIGRvbmVcbiAgICogICAgIFJlc3VsdEl0ZXJhdG9yLT4+SXRlcmF0b3I6IG5leHQoKVxuICAgKiAgICAgSXRlcmF0b3ItLT4+UmVzdWx0SXRlcmF0b3I6IHsgdmFsdWUsIGRvbmUgfVxuICAgKiAgICAgYWx0IEhhcyB2YWx1ZVxuICAgKiAgICAgICBSZXN1bHRJdGVyYXRvci0+PlJlc3VsdEl0ZXJhdG9yOiBQcm9jZXNzIHZhbHVlIGJhc2VkIG9uIGlzSGlzdG9yeVxuICAgKiAgICAgICBSZXN1bHRJdGVyYXRvci0+PlJlc3VsdEl0ZXJhdG9yOiBBZGQgdG8gcmVzdWx0cyBhcnJheVxuICAgKiAgICAgZW5kXG4gICAqICAgZW5kXG4gICAqICAgUmVzdWx0SXRlcmF0b3ItPj5JdGVyYXRvcjogY2xvc2UoKVxuICAgKiAgIFJlc3VsdEl0ZXJhdG9yLS0+PkNhbGxlcjogYWxsUmVzdWx0c1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIHJlc3VsdEl0ZXJhdG9yKFxuICAgIGxvZzogTG9nZ2VyLFxuICAgIGl0ZXJhdG9yOiBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yLFxuICAgIGlzSGlzdG9yeSA9IGZhbHNlXG4gICkge1xuICAgIGNvbnN0IGFsbFJlc3VsdHMgPSBbXTtcbiAgICBsZXQgcmVzOiB7IHZhbHVlOiBhbnk7IGRvbmU6IGJvb2xlYW4gfSA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICB3aGlsZSAoIXJlcy5kb25lKSB7XG4gICAgICBpZiAocmVzLnZhbHVlICYmIHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZygpKSB7XG4gICAgICAgIGxldCBqc29uUmVzOiBhbnkgPSB7fTtcbiAgICAgICAgbG9nLmRlYnVnKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICBpZiAoaXNIaXN0b3J5IC8qICYmIGlzSGlzdG9yeSA9PT0gdHJ1ZSovKSB7XG4gICAgICAgICAganNvblJlcy5UeElkID0gcmVzLnZhbHVlLnR4SWQ7XG4gICAgICAgICAganNvblJlcy5UaW1lc3RhbXAgPSByZXMudmFsdWUudGltZXN0YW1wO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBqc29uUmVzLlZhbHVlID0gSlNPTi5wYXJzZShyZXMudmFsdWUudmFsdWUudG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKGVycik7XG4gICAgICAgICAgICBqc29uUmVzLlZhbHVlID0gcmVzLnZhbHVlLnZhbHVlLnRvU3RyaW5nKFwidXRmOFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGpzb25SZXMgPSBKU09OLnBhcnNlKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgIGpzb25SZXMgPSByZXMudmFsdWUudmFsdWUudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhbGxSZXN1bHRzLnB1c2goanNvblJlcyk7XG4gICAgICB9XG4gICAgICByZXMgPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgQ2xvc2luZyBpdGVyYXRvciBhZnRlciAke2FsbFJlc3VsdHMubGVuZ3RofSByZXN1bHRzYCk7XG4gICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbiAgICByZXR1cm4gYWxsUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSByYXcgcXVlcnkgYWdhaW5zdCB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICogQHN1bW1hcnkgUGVyZm9ybXMgYSByaWNoIHF1ZXJ5IHVzaW5nIENvdWNoREIgc3ludGF4IGFnYWluc3QgdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgKiBAdGVtcGxhdGUgUiAtIFRoZSByZXR1cm4gdHlwZVxuICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBkb2NzT25seSAtIFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgZG9jdW1lbnRzIChub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFI+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcXVlcnkgcmVzdWx0c1xuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBTdHViXG4gICAqICAgcGFydGljaXBhbnQgU3RhdGVEQlxuICAgKlxuICAgKiAgIENhbGxlci0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogcmF3KHJhd0lucHV0LCBkb2NzT25seSwgY3R4KVxuICAgKiAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogRXh0cmFjdCBsaW1pdCBhbmQgc2tpcFxuICAgKiAgIGFsdCBXaXRoIHBhZ2luYXRpb25cbiAgICogICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci0+PlN0dWI6IGdldFF1ZXJ5UmVzdWx0V2l0aFBhZ2luYXRpb24ocXVlcnksIGxpbWl0LCBza2lwKVxuICAgKiAgIGVsc2UgV2l0aG91dCBwYWdpbmF0aW9uXG4gICAqICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBnZXRRdWVyeVJlc3VsdChxdWVyeSlcbiAgICogICBlbmRcbiAgICogICBTdHViLT4+U3RhdGVEQjogRXhlY3V0ZSBxdWVyeVxuICAgKiAgIFN0YXRlREItLT4+U3R1YjogSXRlcmF0b3JcbiAgICogICBTdHViLS0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogSXRlcmF0b3JcbiAgICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IpXG4gICAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLS0+PkNhbGxlcjogcmVzdWx0c1xuICAgKi9cbiAgYXN5bmMgcmF3PFIsIEQgZXh0ZW5kcyBib29sZWFuPihcbiAgICByYXdJbnB1dDogTWFuZ29RdWVyeSxcbiAgICBkb2NzT25seTogRCA9IHRydWUgYXMgRCxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8UmF3UmVzdWx0PFIsIEQ+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCwgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuXG4gICAgY29uc3QgZW5hYmxlU2VncmVnYXRlcyA9ICFhcmdzLmxlbmd0aCB8fCBhcmdzWzBdICE9PSB0cnVlO1xuICAgIGNvbnN0IGZ1bGx5U2VncmVnYXRlZCA9IGVuYWJsZVNlZ3JlZ2F0ZXMgJiYgY3R4LmlzRnVsbHlTZWdyZWdhdGVkO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxJbnB1dCA9IHsgLi4uKHJhd0lucHV0IGFzIFJlY29yZDxzdHJpbmcsIGFueT4pIH07XG4gICAgY29uc3QgeyBza2lwLCBsaW1pdCB9ID0gb3JpZ2luYWxJbnB1dDtcbiAgICBjb25zdCBib29rbWFyayA9IG9yaWdpbmFsSW5wdXRbXCJib29rbWFya1wiXTtcbiAgICBjb25zdCBoYXNTb3J0ID1cbiAgICAgIEFycmF5LmlzQXJyYXkoKG9yaWdpbmFsSW5wdXQgYXMgUmVjb3JkPHN0cmluZywgYW55Pikuc29ydCkgJiZcbiAgICAgIChvcmlnaW5hbElucHV0IGFzIFJlY29yZDxzdHJpbmcsIGFueT4pLnNvcnQubGVuZ3RoID4gMDtcbiAgICBjb25zdCBwa0ZpZWxkID1cbiAgICAgIHR5cGVvZiBvcmlnaW5hbElucHV0W1wiX19wa0ZpZWxkXCJdID09PSBcInN0cmluZ1wiICYmXG4gICAgICBvcmlnaW5hbElucHV0W1wiX19wa0ZpZWxkXCJdLnRyaW0oKS5sZW5ndGhcbiAgICAgICAgPyBTdHJpbmcob3JpZ2luYWxJbnB1dFtcIl9fcGtGaWVsZFwiXSlcbiAgICAgICAgOiBTdHJpbmcoY3R4Py5nZXRPclVuZGVmaW5lZChcInByaXZhdGVQYWdpbmF0aW9uVGllQnJlYWtlclwiKSB8fCBcImlkXCIpO1xuICAgIGNvbnN0IGhhc1NraXAgPSBza2lwICE9PSB1bmRlZmluZWQgJiYgc2tpcCAhPT0gbnVsbCAmJiBOdW1iZXIoc2tpcCkgPiAwO1xuICAgIGNvbnN0IGhhc0Jvb2ttYXJrID1cbiAgICAgIGJvb2ttYXJrICE9PSB1bmRlZmluZWQgJiYgYm9va21hcmsgIT09IG51bGwgJiYgYm9va21hcmsgIT09IFwiXCI7XG4gICAgY29uc3QgcGFnaW5hdGlvbkFjdGl2ZSA9IEJvb2xlYW4obGltaXQgfHwgaGFzU2tpcCB8fCBoYXNCb29rbWFyayk7XG4gICAgY29uc3Qgc2hvdWxkUGFnaW5hdGUgPSBCb29sZWFuKFxuICAgICAgcGFnaW5hdGlvbkFjdGl2ZSAmJlxuICAgICAgICAoZW5hYmxlU2VncmVnYXRlcyB8fCBoYXNTa2lwIHx8IGhhc0Jvb2ttYXJrIHx8IGhhc1NvcnQpXG4gICAgKTtcbiAgICBjb25zdCBiYXNlSW5wdXQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7IC4uLm9yaWdpbmFsSW5wdXQgfTtcbiAgICBkZWxldGUgYmFzZUlucHV0W1wic2tpcFwiXTtcbiAgICBkZWxldGUgYmFzZUlucHV0W1wiYm9va21hcmtcIl07XG4gICAgZGVsZXRlIGJhc2VJbnB1dFtcIl9fcGtGaWVsZFwiXTtcbiAgICBsZXQgcmVzcCA9IHsgZG9jczogW10sIGJvb2ttYXJrOiB1bmRlZmluZWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJhdyBxdWVyeSBzdGFydCBmdWxseVNlZ3JlZ2F0ZWQ9JHtmdWxseVNlZ3JlZ2F0ZWR9IGVuYWJsZVNlZ3JlZ2F0ZXM9JHtlbmFibGVTZWdyZWdhdGVzfSBwYWdpbmF0aW9uQWN0aXZlPSR7cGFnaW5hdGlvbkFjdGl2ZX0gbGltaXQ9JHtsaW1pdH0gc2tpcD0ke3NraXB9IGJvb2ttYXJrPSR7Ym9va21hcmt9IHBrRmllbGQ9JHtwa0ZpZWxkfSBxdWVyeT0ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBvcmlnaW5hbElucHV0XG4gICAgICApfWBcbiAgICApO1xuXG4gICAgLy8gUXVlcnkgcHVibGljIHN0YXRlIG9ubHkgd2hlbiB0aGUgbW9kZWwgaXMgTk9UIGZ1bGx5IHNlZ3JlZ2F0ZWRcbiAgICBpZiAoIWZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgbGV0IGl0ZXJhdG9yOiBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yO1xuICAgICAgaWYgKHNob3VsZFBhZ2luYXRlKSB7XG4gICAgICAgIGNvbnN0IHBhZ2luYXRlZElucHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0geyAuLi5iYXNlSW5wdXQgfTtcbiAgICAgICAgZGVsZXRlIHBhZ2luYXRlZElucHV0W1wibGltaXRcIl07XG4gICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICBgUmV0cmlldmluZyBwdWJsaWMgcGFnaW5hdGVkIGl0ZXJhdG9yOiBsaW1pdDogJHtsaW1pdH0vIHNraXA6ICR7c2tpcH0gYm9va21hcms9JHtib29rbWFya31gXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlOiBTdGF0ZVF1ZXJ5UmVzcG9uc2U8SXRlcmF0b3JzLlN0YXRlUXVlcnlJdGVyYXRvcj4gPVxuICAgICAgICAgIChhd2FpdCB0aGlzLnF1ZXJ5UmVzdWx0UGFnaW5hdGVkKFxuICAgICAgICAgICAgY3R4LnN0dWIsXG4gICAgICAgICAgICBwYWdpbmF0ZWRJbnB1dCxcbiAgICAgICAgICAgIGxpbWl0IHx8IDI1MCxcbiAgICAgICAgICAgIChza2lwIGFzIGFueSk/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICBib29rbWFyayxcbiAgICAgICAgICAgIC4uLltjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0XVxuICAgICAgICAgICkpIGFzIFN0YXRlUXVlcnlSZXNwb25zZTxJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yPjtcbiAgICAgICAgcmVzcC5ib29rbWFyayA9IHJlc3BvbnNlLm1ldGFkYXRhLmJvb2ttYXJrO1xuICAgICAgICBpdGVyYXRvciA9IHJlc3BvbnNlLml0ZXJhdG9yO1xuICAgICAgICBsb2cuZGVidWcoYFJldHJpZXZlZCBwdWJsaWMgcGFnaW5nIGl0ZXJhdG9yYCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICBgcHVibGljIHBhZ2luYXRlZCByZXNwb25zZSBib29rbWFyaz0ke3Jlc3AuYm9va21hcmt9IHF1ZXJ5PSR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBwYWdpbmF0ZWRJbnB1dFxuICAgICAgICAgICl9YFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKFwiUmV0cmlldmluZyBsaXN0aW5nIHB1YmxpYyBpdGVyYXRvclwiKTtcbiAgICAgICAgaXRlcmF0b3IgPSAoYXdhaXQgdGhpcy5xdWVyeVJlc3VsdChcbiAgICAgICAgICBjdHguc3R1YixcbiAgICAgICAgICB7IC4uLmJhc2VJbnB1dCB9LFxuICAgICAgICAgIGN0eFxuICAgICAgICApKSBhcyBJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yO1xuICAgICAgfVxuICAgICAgbG9nLmRlYnVnKGBSZXRyaWV2ZWQgcHVibGljIGxpc3RpbmcgaXRlcmF0b3JgKTtcblxuICAgICAgcmVzcC5kb2NzID0gKGF3YWl0IHRoaXMucmVzdWx0SXRlcmF0b3IobG9nLCBpdGVyYXRvcikpIGFzIGFueTtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYHJldHVybmluZyAke0FycmF5LmlzQXJyYXkocmVzcC5kb2NzKSA/IHJlc3AuZG9jcy5sZW5ndGggOiAxfSByZXN1bHRzYFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmRlYnVnKFwiU2tpcHBpbmcgcHVibGljIHN0YXRlIHF1ZXJ5IChmdWxseSBzZWdyZWdhdGVkIG1vZGVsKVwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGVuYWJsZVNlZ3JlZ2F0ZXMgPyBjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCkgOiB1bmRlZmluZWQ7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJlYWQgY29sbGVjdGlvbnMgZm9yIHJhdyBxdWVyeTogJHtKU09OLnN0cmluZ2lmeShjb2xsZWN0aW9ucyB8fCBbXSl9YFxuICAgICk7XG5cbiAgICBpZiAoY29sbGVjdGlvbnMgJiYgY29sbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAvLyBCdWlsZCBhIGZyZXNoIGlucHV0IHdpdGggbGltaXQvc2tpcC9ib29rbWFyayByZXN0b3JlZFxuICAgICAgY29uc3Qgc2VncmVnYXRlZElucHV0ID0geyAuLi5iYXNlSW5wdXQgfTtcbiAgICAgIGlmIChsaW1pdCkgc2VncmVnYXRlZElucHV0LmxpbWl0ID0gbGltaXQ7XG4gICAgICBpZiAoc2tpcCkgc2VncmVnYXRlZElucHV0LnNraXAgPSBza2lwO1xuICAgICAgaWYgKGJvb2ttYXJrKSBzZWdyZWdhdGVkSW5wdXRbXCJib29rbWFya1wiXSA9IGJvb2ttYXJrO1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgc2VncmVnYXRlZCBpbnB1dCBwcmVwYXJlZDogJHtKU09OLnN0cmluZ2lmeShzZWdyZWdhdGVkSW5wdXQpfWBcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNlZ3JlZ2F0ZWQ6IGFueVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICAgICAgbG9nLmRlYnVnKGBRdWVyeWluZyBmcm9tICR7Y29sbGVjdGlvbn1gKTtcbiAgICAgICAgY29uc3QgZnJvbUNvbHMgPSBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sbGVjdGlvbikucmF3KFxuICAgICAgICAgIHsgLi4uc2VncmVnYXRlZElucHV0IH0gYXMgTWFuZ29RdWVyeSxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICAgKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoXG4gICAgICAgICAgYHJlY2VpdmVkICR7KGZyb21Db2xzIGFzIHVua25vd24gYXMgYW55W10pLmxlbmd0aH0gZnJvbSAke2NvbGxlY3Rpb259YFxuICAgICAgICApO1xuICAgICAgICBzZWdyZWdhdGVkLnB1c2goZnJvbUNvbHMpO1xuICAgICAgfVxuICAgICAgLy8gUHJlZmVyIHRoZSByZXNwb25zZSB3aXRoIHRoZSBtb3N0IHJlc3VsdHMgc28gbWl4ZWQgYW5kIGZ1bGx5IHNlZ3JlZ2F0ZWRcbiAgICAgIC8vIHJlYWRzIHJldHVybiB0aGUgY29sbGVjdGlvbiB0aGF0IGFjdHVhbGx5IG1hdGNoZWQgdGhlIHF1ZXJ5LlxuICAgICAgcmVzcCA9IHNlZ3JlZ2F0ZWQucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgaWYgKCFhY2MpIHJldHVybiBjdXJyO1xuICAgICAgICBpZiAoY3Vyci5kb2NzICYmIGN1cnIuZG9jcy5sZW5ndGggPj0gYWNjPy5kb2NzLmxlbmd0aCkgcmV0dXJuIGN1cnI7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCByZXNwKTtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYHNlZ3JlZ2F0ZWQgcXVlcnkgcmVzb2x2ZWQgZG9jcz0ke0FycmF5LmlzQXJyYXkocmVzcC5kb2NzKSA/IHJlc3AuZG9jcy5sZW5ndGggOiAwfSBib29rbWFyaz0ke3Jlc3AuYm9va21hcmt9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZG9jc09ubHkpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYHJhdyBxdWVyeSByZXR1cm5pbmcgZG9jc09ubHk9JHtkb2NzT25seX0gZG9jcz0ke0FycmF5LmlzQXJyYXkocmVzcC5kb2NzKSA/IHJlc3AuZG9jcy5sZW5ndGggOiAwfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcC5kb2NzIGFzIGFueTtcbiAgICB9XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHJhdyBxdWVyeSByZXR1cm5pbmcgZG9jcy9ib29rbWFyayBkb2NzPSR7QXJyYXkuaXNBcnJheShyZXNwLmRvY3MpID8gcmVzcC5kb2NzLmxlbmd0aCA6IDB9IGJvb2ttYXJrPSR7cmVzcC5ib29rbWFya31gXG4gICAgKTtcbiAgICByZXR1cm4gcmVzcCBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpc3RzIGFsbCByZWNvcmRzIG9mIGEgbW9kZWwgdXNpbmcgcmFuZ2UgcXVlcmllcyAoZGV0ZXJtaW5pc3RpYywgd3JpdGUtc2FmZSlcbiAgICogQHN1bW1hcnkgSXRlcmF0ZXMgcmVjb3JkcyB2aWEgYGdldFN0YXRlQnlQYXJ0aWFsQ29tcG9zaXRlS2V5YCAocHVibGljKSBhbmRcbiAgICogYGdldFByaXZhdGVEYXRhQnlQYXJ0aWFsQ29tcG9zaXRlS2V5YCAocHJpdmF0ZS9zaGFyZWQpLCBmb2xsb3dpbmcgdGhlIHNhbWUgY29sbGVjdGlvbi1yb3V0aW5nXG4gICAqIGxvZ2ljIGFzIGByYXcoKWAgYnV0IHVzaW5nIEZhYnJpYyByYW5nZSBxdWVyaWVzIGluc3RlYWQgb2YgTWFuZ28gc2VsZWN0b3JzLlxuICAgKiBVbmxpa2UgYHJhdygpYCwgdGhpcyBtZXRob2QgaXMgc2FmZSB0byB1c2UgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gYXMgd3JpdGVzIGJlY2F1c2VcbiAgICogcmFuZ2UgcXVlcmllcyBhcmUgZGV0ZXJtaW5pc3RpYyBhbmQgZG8gbm90IGJsb2NrIHN1YnNlcXVlbnQgYHB1dFN0YXRlYC9gcHV0UHJpdmF0ZURhdGFgIGNhbGxzLlxuICAgKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IGNsYXp6IC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthdHRyaWJ1dGVzPVtdXSAtIFBhcnRpYWwgY29tcG9zaXRlIGtleSBhdHRyaWJ1dGVzIHRvIGZpbHRlciBieSAoZW1wdHkgPSBhbGwgcmVjb3JkcylcbiAgICogQHBhcmFtIHsuLi5Db250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+fSBhcmdzIC0gQ29udGV4dHVhbCBhcmd1bWVudHMgaW5jbHVkaW5nIHRoZSBjaGFpbmNvZGUgY29udGV4dFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPE1bXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIGFuIGFycmF5IG9mIHJlY29uc3RydWN0ZWQgbW9kZWwgaW5zdGFuY2VzXG4gICAqL1xuICBhc3luYyByYW5nZUxpc3Q8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgYXR0cmlidXRlczogc3RyaW5nW10gPSBbXSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYW5nZUxpc3QpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgY29uc3QgZnVsbHlTZWdyZWdhdGVkID0gY3R4LmlzRnVsbHlTZWdyZWdhdGVkO1xuXG4gICAgY29uc3QgZGVzZXJpYWxpemVFbnRyeSA9IChyYXc6IFVpbnQ4QXJyYXkpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkID0+IHtcbiAgICAgIGNvbnN0IHN0ciA9IEJ1ZmZlci5mcm9tKHJhdykudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgaWYgKCFzdHIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoc3RyKSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyKSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIENvbGxlY3QgcmF3IGRhdGEga2V5ZWQgYnkgY29tcG9zaXRlIGtleSwgbWVyZ2luZyBwdWJsaWMgKyBwcml2YXRlIGluIG9yZGVyIChzYW1lIGFzIHJlYWQoKSlcbiAgICBjb25zdCByYXdCeUtleSA9IG5ldyBNYXA8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xuXG4gICAgaWYgKCFmdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhgcmFuZ2VMaXN0IHB1YmxpYzogb2JqZWN0VHlwZT0ke3RhYmxlTmFtZX0gYXR0cmlidXRlcz0ke0pTT04uc3RyaW5naWZ5KGF0dHJpYnV0ZXMpfWApO1xuICAgICAgY29uc3QgaXRlcmF0b3IgPSBhd2FpdCBjdHguc3R1Yi5nZXRTdGF0ZUJ5UGFydGlhbENvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIGF0dHJpYnV0ZXMpO1xuICAgICAgbGV0IG5leHQgPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG4gICAgICB3aGlsZSAoIW5leHQuZG9uZSkge1xuICAgICAgICBpZiAobmV4dC52YWx1ZT8udmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gZGVzZXJpYWxpemVFbnRyeShuZXh0LnZhbHVlLnZhbHVlKTtcbiAgICAgICAgICBpZiAoZGF0YSkgcmF3QnlLZXkuc2V0KG5leHQudmFsdWUua2V5LCBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBuZXh0ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgfVxuICAgICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbiAgICAgIGxvZy5kZWJ1ZyhgcmFuZ2VMaXN0IHB1YmxpYzogJHtyYXdCeUtleS5zaXplfSBlbnRyaWVzYCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSBjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCk7XG4gICAgaWYgKGNvbGxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICBsb2cuZGVidWcoYHJhbmdlTGlzdCBwcml2YXRlOiBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn0gb2JqZWN0VHlwZT0ke3RhYmxlTmFtZX0gYXR0cmlidXRlcz0ke0pTT04uc3RyaW5naWZ5KGF0dHJpYnV0ZXMpfWApO1xuICAgICAgICBjb25zdCBpdGVyYXRvciA9IGF3YWl0IGN0eC5zdHViLmdldFByaXZhdGVEYXRhQnlQYXJ0aWFsQ29tcG9zaXRlS2V5KGNvbGxlY3Rpb24sIHRhYmxlTmFtZSwgYXR0cmlidXRlcyk7XG4gICAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICAgIGxldCBuZXh0ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgICB3aGlsZSAoIW5leHQuZG9uZSkge1xuICAgICAgICAgIGlmIChuZXh0LnZhbHVlPy52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGRlc2VyaWFsaXplRW50cnkobmV4dC52YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IHJhd0J5S2V5LmdldChuZXh0LnZhbHVlLmtleSk7XG4gICAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZXhpc3RpbmcsIGRhdGEpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJhd0J5S2V5LnNldChuZXh0LnZhbHVlLmtleSwgZGF0YSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgbmV4dCA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICBsb2cuZGVidWcoYHJhbmdlTGlzdCBwcml2YXRlOiBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn0gJHtjb3VudH0gZW50cmllc2ApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHM6IE1bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2NvbXBvc2l0ZUtleSwgZGF0YV0gb2YgcmF3QnlLZXkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgYXR0cmlidXRlczoga2V5UGFydHMgfSA9IGN0eC5zdHViLnNwbGl0Q29tcG9zaXRlS2V5KGNvbXBvc2l0ZUtleSk7XG4gICAgICAgIGNvbnN0IGlkID0ga2V5UGFydHNbMF07XG4gICAgICAgIGlmICghaWQpIGNvbnRpbnVlO1xuICAgICAgICByZXN1bHRzLnB1c2godGhpcy5yZXZlcnQoZGF0YSwgY2xhenosIGlkLCB1bmRlZmluZWQsIGN0eCkpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsb2cud2FybihgcmFuZ2VMaXN0OiBza2lwcGluZyBlbnRyeSAke2NvbXBvc2l0ZUtleX06ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsb2cuZGVidWcoYHJhbmdlTGlzdDogcmV0dXJuaW5nICR7cmVzdWx0cy5sZW5ndGh9ICR7Y2xhenoubmFtZX0gaW5zdGFuY2VzYCk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cblxuICBhc3luYyB2aWV3PFI+KFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBkZG9jOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHZpZXdOYW1lOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLl9hcmdzOiBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8Vmlld1Jlc3BvbnNlPFI+PiB7XG4gICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICBcIkZhYnJpYyBjb250cmFjdHMgZG8gbm90IHN1cHBvcnQgQ291Y2hEQiB2aWV3cy5cIlxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBTdGF0ZW1lbnQ8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEFkYXB0ZXJGbGFncz5cbiAgKTogRmFicmljU3RhdGVtZW50PE0sIGFueT4ge1xuICAgIHJldHVybiBuZXcgRmFicmljU3RhdGVtZW50KHRoaXMgYXMgYW55LCBvdmVycmlkZXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlQWxsPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgdGFibGVOYW1lOiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+IHtcbiAgICBpZiAoaWQubGVuZ3RoICE9PSBtb2RlbC5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICBjb25zdCB0YWJsZUxhYmVsID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBVcGRhdGluZyAke2lkLmxlbmd0aH0gZW50cmllcyAke3RhYmxlTGFiZWx9IHRhYmxlYCk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgaWQubWFwKChpLCBjb3VudCkgPT4gdGhpcy51cGRhdGUodGFibGVOYW1lLCBpLCBtb2RlbFtjb3VudF0sIC4uLmN0eEFyZ3MpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwa1xuICAgKiBAcGFyYW0gYXJnc1xuICAgKi9cbiAgb3ZlcnJpZGUgcHJlcGFyZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJlcGFyZWRNb2RlbCAmIHtcbiAgICBzZWdyZWdhdGVkPzogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj47XG4gIH0ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucHJlcGFyZSk7XG4gICAgY29uc3Qgc3BsaXQ6IFNlZ3JlZ2F0ZWRNb2RlbDxNPiA9IE1vZGVsLnNlZ3JlZ2F0ZShtb2RlbCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKG1vZGVsLmNvbnN0cnVjdG9yIGFzIGFueSk7XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhtb2RlbC5jb25zdHJ1Y3RvciBhcyBhbnkpO1xuICAgIGNvbnN0IGlkID0gbW9kZWxbcGsgYXMga2V5b2YgTV07XG5cbiAgICBjb25zdCBpc01pcnJvciA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvclwiKSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgbWFwVG9SZWNvcmQgPSBmdW5jdGlvbiAoXG4gICAgICB0aGlzOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIsXG4gICAgICBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBrZXlzT3ZlcnJpZGU/OiBzdHJpbmdbXVxuICAgICkge1xuICAgICAgaWYgKGtleXNPdmVycmlkZSlcbiAgICAgICAga2V5c092ZXJyaWRlID0gWy4uLm5ldyBTZXQoWy4uLmtleXNPdmVycmlkZSwgcGsgYXMgc3RyaW5nXSldO1xuICAgICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgICAgIChhY2N1bTogUmVjb3JkPHN0cmluZywgYW55PiwgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gYWNjdW07XG4gICAgICAgICAgaWYgKGtleXNPdmVycmlkZSAmJiAha2V5c092ZXJyaWRlLmluY2x1ZGVzKGtleSkpIHJldHVybiBhY2N1bTtcbiAgICAgICAgICBjb25zdCBtYXBwZWRQcm9wID0gTW9kZWwuY29sdW1uTmFtZShtb2RlbCwga2V5IGFzIGFueSk7XG4gICAgICAgICAgaWYgKHRoaXMuaXNSZXNlcnZlZChtYXBwZWRQcm9wKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBQcm9wZXJ0eSBuYW1lICR7bWFwcGVkUHJvcH0gaXMgcmVzZXJ2ZWRgKTtcbiAgICAgICAgICB2YWwgPSB2YWwgaW5zdGFuY2VvZiBEYXRlID8gbmV3IERhdGUodmFsKSA6IHZhbDtcbiAgICAgICAgICBhY2N1bVttYXBwZWRQcm9wXSA9IHZhbDtcbiAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgIH0sXG4gICAgICAgIHt9XG4gICAgICApO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHJlc3VsdCkuZmlsdGVyKChrKSA9PiBCb29sZWFuKHJlc3VsdFtrXSkpLmxlbmd0aCkge1xuICAgICAgICAvLyBBZGQgdGFibGUgaWRlbnRpZmllclxuICAgICAgICByZXN1bHRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LmJpbmQodGhpcyk7XG5cbiAgICBsb2cuc2lsbHkoXG4gICAgICBgUHJlcGFyaW5nIHJlY29yZCBmb3IgJHt0YWJsZU5hbWV9IHRhYmxlIHdpdGggcGsgJHsobW9kZWwgYXMgYW55KVtwa119YFxuICAgICk7XG5cbiAgICBjb25zdCBzZWdyZWdhdGVkV3JpdGVLZXlzID0gY3R4LmdldFNlZ3JlZ2F0ZWRXcml0ZXMoKTtcbiAgICBjb25zdCBzZWdyZWdhdGVkV3JpdGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgLy8gT25seSBhcHBseSBzZWdyZWdhdGVkIHdyaXRlcyB3aGVuIHRoZSBjdXJyZW50IG1vZGVsIGFjdHVhbGx5IGhhcyBhIHRyYW5zaWVudCBzcGxpdC5cbiAgICAvLyBUaGUgc2FtZSBGYWJyaWNDb250cmFjdENvbnRleHQgY2FuIGJlIHJldXNlZCBhY3Jvc3MgbmVzdGVkIG9wZXJhdGlvbnMgKGZvciBleGFtcGxlXG4gICAgLy8gc2VxdWVuY2UgdXBzZXJ0cyBkdXJpbmcgcGVyc2lzdGVudCB2ZXJzaW9uIGdlbmVyYXRpb24pLiBJbiB0aG9zZSBjYXNlcywgd2UgbXVzdCBub3RcbiAgICAvLyBhdHRlbXB0IHRvIGFwcGx5IHBhcmVudC1tb2RlbCBzZWdyZWdhdGVkIHdyaXRlIGtleXMgdG8gdW5yZWxhdGVkIG1vZGVscy5cbiAgICBpZiAoXG4gICAgICBzZWdyZWdhdGVkV3JpdGVLZXlzICYmXG4gICAgICBzcGxpdC50cmFuc2llbnQgJiZcbiAgICAgIHR5cGVvZiBzcGxpdC50cmFuc2llbnQgPT09IFwib2JqZWN0XCJcbiAgICApIHtcbiAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiBzZWdyZWdhdGVkV3JpdGVLZXlzKSB7XG4gICAgICAgIHNlZ3JlZ2F0ZWRXcml0ZXNbY29sbGVjdGlvbl0gPSBzZWdyZWdhdGVkV3JpdGVzW2NvbGxlY3Rpb25dIHx8IHt9O1xuICAgICAgICBzZWdyZWdhdGVkV3JpdGVzW2NvbGxlY3Rpb25dW2lkIGFzIGFueV0gPSBtYXBUb1JlY29yZChcbiAgICAgICAgICBjdHguZ2V0T3JVbmRlZmluZWQoXCJmb3JjZVNlZ3JlZ2F0ZVdyaXRlXCIpXG4gICAgICAgICAgICA/IHNwbGl0Lm1vZGVsXG4gICAgICAgICAgICA6IChzcGxpdC50cmFuc2llbnQgYXMgYW55KSB8fCB7fSxcbiAgICAgICAgICBzZWdyZWdhdGVkV3JpdGVLZXlzW2NvbGxlY3Rpb25dXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW4gbWlycm9yIG1vZGUsIHRoZSByZWNvcmQgc2hvdWxkIGNvbnRhaW4gQUxMIG1vZGVsIHByb3BlcnRpZXMgKGZ1bGwgY29weSlcbiAgICBjb25zdCByZWNvcmQgPSBpc01pcnJvciA/IG1hcFRvUmVjb3JkKG1vZGVsKSA6IG1hcFRvUmVjb3JkKHNwbGl0Lm1vZGVsKTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWNvcmQsXG4gICAgICBpZDogKG1vZGVsIGFzIGFueSlbcGtdIGFzIHN0cmluZyxcbiAgICAgIHRyYW5zaWVudDpcbiAgICAgICAgIWlzTWlycm9yICYmIHNwbGl0LnRyYW5zaWVudCAmJiBPYmplY3Qua2V5cyhzcGxpdC50cmFuc2llbnQpLmxlbmd0aFxuICAgICAgICAgID8gbWFwVG9SZWNvcmQoc3BsaXQudHJhbnNpZW50KVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgc2VncmVnYXRlZDogaXNNaXJyb3IgPyB1bmRlZmluZWQgOiBzZWdyZWdhdGVkV3JpdGVzLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSByZXZlcnQ8TSBleHRlbmRzIE1vZGVsPihcbiAgICBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICB0cmFuc2llbnQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogTSB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXZlcnQpO1xuICAgIGNvbnN0IG9iOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gICAgY29uc3QgcGtQcm9wcyA9IE1vZGVsLnBrUHJvcHMoY2xhenopO1xuICAgIGlmIChwa1Byb3BzPy50eXBlID09PSBOdW1iZXIgJiYgdHlwZW9mIGlkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBpZCA9IE51bWJlcihpZCk7XG4gICAgfVxuICAgIG9iW3BrIGFzIHN0cmluZ10gPSBpZDtcbiAgICBsb2cuc2lsbHkoYFJlYnVpbGRpbmcgbW9kZWwgJHtjbGF6ei5uYW1lfSBpZCAke2lkfWApO1xuXG4gICAgZnVuY3Rpb24gbWFwVG9Nb2RlbChyOiBSZWNvcmQ8YW55LCBhbnk+KSB7XG4gICAgICBjb25zdCBtID0gKFxuICAgICAgICB0eXBlb2YgY2xhenogPT09IFwic3RyaW5nXCIgPyBNb2RlbC5idWlsZChvYiwgY2xhenopIDogbmV3IGNsYXp6KG9iKVxuICAgICAgKSBhcyBNO1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IE1vZGVsLmdldEF0dHJpYnV0ZXMoY2xhenopO1xuICAgICAgY29uc3Qga2V5cyA9IGF0dHJpYnV0ZXMubGVuZ3RoID8gYXR0cmlidXRlcyA6IE9iamVjdC5rZXlzKG0pO1xuICAgICAgcmV0dXJuIGtleXNcbiAgICAgICAgLmZpbHRlcigoaykgPT4gayAhPT0gKHBrIGFzIHN0cmluZykpXG4gICAgICAgIC5yZWR1Y2UoKGFjY3VtOiBNLCBrZXkpID0+IHtcbiAgICAgICAgICAoYWNjdW0gYXMgUmVjb3JkPHN0cmluZywgYW55Pilba2V5XSA9XG4gICAgICAgICAgICByW01vZGVsLmNvbHVtbk5hbWUoYWNjdW0sIGtleSBhcyBhbnkpXTtcbiAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgIH0sIG0pO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSBtYXBUb01vZGVsKG9iaik7XG5cbiAgICBpZiAodHJhbnNpZW50ICYmICF0aGlzLnNob3VsZFJlYnVpbGRXaXRoVHJhbnNpZW50KGN0eCkpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgYGZpbHRlcmluZyB0cmFuc2llbnQgcHJvcGVydGllczogJHtPYmplY3Qua2V5cyh0cmFuc2llbnQpLmpvaW4oXCIsIFwiKX1gXG4gICAgICApO1xuICAgICAgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKGFjYywgW2tleSwgdl0pID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gcGsgfHwgIShrZXkgaW4gdHJhbnNpZW50KSkge1xuICAgICAgICAgIGFjY1trZXkgYXMga2V5b2YgTV0gPSB2O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBuZXcgY2xhenooKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVidWlsZFdpdGhUcmFuc2llbnQoY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQpOiBib29sZWFuIHtcbiAgICBpZiAoIWN0eCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJyZWJ1aWxkV2l0aFRyYW5zaWVudFwiKSkgcmV0dXJuIHRydWU7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwib3BlcmF0aW9uXCIpIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIW9wZXJhdGlvbikgcmV0dXJuIHRydWU7XG4gICAgY29uc3Qgb3AgPSBvcGVyYXRpb24udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiAhVHJhbnNhY3Rpb25PcGVyYXRpb25LZXlzLm1hcCgoaykgPT4gay50b0xvd2VyQ2FzZSgpKS5pbmNsdWRlcyhvcCk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRleHRNc3AoY29udGV4dDogRmFicmljQ29udHJhY3RDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpZGVudGl0eSA9IGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikgYXNcbiAgICAgIHwgc3RyaW5nXG4gICAgICB8IENsaWVudElkZW50aXR5XG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIWlkZW50aXR5KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgaWRlbnRpdHkgPT09IFwic3RyaW5nXCIpIHJldHVybiBpZGVudGl0eTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGlkZW50aXR5LmdldE1TUElEKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5mb3JjZU1pcnJvckF1dGhvcml6YXRpb248TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQoY2xhenopO1xuICAgIGlmICghbWlycm9yTWV0YSkgcmV0dXJuO1xuICAgIGNvbnN0IG1zcCA9IHRoaXMuZ2V0Q29udGV4dE1zcChjdHgpO1xuICAgIGlmICghbXNwKSByZXR1cm47XG4gICAgaWYgKFxuICAgICAgbXNwID09PSBtaXJyb3JNZXRhLm1zcElkIHx8XG4gICAgICAobWlycm9yTWV0YS5jb25kaXRpb24gJiYgbWlycm9yTWV0YS5jb25kaXRpb24obXNwKSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgIGBPcmdhbml6YXRpb24gJHttc3B9IGlzIG5vdCBhdXRob3JpemVkIHRvIG1vZGlmeSBtaXJyb3JlZCBkYXRhYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBjcmVhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZU5hbWU6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApIHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcblxuICAgIHJldHVybiBbdGFibGVOYW1lLCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXSBhcyBbXG4gICAgICBDb25zdHJ1Y3RvcjxNPixcbiAgICAgIFByaW1hcnlLZXlUeXBlLFxuICAgICAgUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAgIC4uLmFueVtdLFxuICAgICAgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIF07XG4gIH1cblxuICBvdmVycmlkZSB1cGRhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YWJsZU5hbWU6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBhbnlbXSB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZVByZWZpeCk7XG4gICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgIE9iamVjdC5hc3NpZ24ocmVjb3JkLCBtb2RlbCk7XG5cbiAgICByZXR1cm4gW3RhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uY3R4QXJnc10gYXMgW1xuICAgICAgQ29uc3RydWN0b3I8TT4sXG4gICAgICBQcmltYXJ5S2V5VHlwZSxcbiAgICAgIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAuLi5hbnlbXSxcbiAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZUFsbFByZWZpeDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IFsuLi5hbnksIEZhYnJpY0NvbnRyYWN0Q29udGV4dF1cbiAgKTogKHN0cmluZyB8IHN0cmluZ1tdIHwgbnVtYmVyW10gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+W10pW10ge1xuICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuXG4gICAgY29uc3QgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQgPSBhcmdzLnBvcCgpO1xuXG4gICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWxzW2NvdW50XSk7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICAgIHJldHVybiBbdGFibGVOYW1lLCBpZHMsIHJlY29yZHMsIGN0eCBhcyBhbnldO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUFsbFByZWZpeDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IFsuLi5hbnksIEZhYnJpY0NvbnRyYWN0Q29udGV4dF1cbiAgKSB7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG5cbiAgICBjb25zdCBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dCA9IGFyZ3MucG9wKCk7XG5cbiAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoaWQsIGNvdW50KSA9PiB7XG4gICAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSBNb2RlbC50YWJsZU5hbWUodGFibGVOYW1lKTtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVjb3JkLCBtb2RlbHNbY291bnRdKTtcbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkcywgcmVjb3JkcywgY3R4IGFzIGFueV07XG4gIH1cblxuICBvdmVycmlkZSBwYXJzZUVycm9yPEUgZXh0ZW5kcyBCYXNlRXJyb3I+KFxuICAgIGVycjogRXJyb3IgfCBzdHJpbmcsXG4gICAgcmVhc29uPzogc3RyaW5nXG4gICk6IEUge1xuICAgIHJldHVybiBGYWJyaWNDb250cmFjdEFkYXB0ZXIucGFyc2VFcnJvcihyZWFzb24gfHwgZXJyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRFxuICApOiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBmYWxzZVxuICApOiBGYWJyaWNDb250ZXh0dWFsaXplZEFyZ3M8QVJHUywgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiB0cnVlLFxuICAgIG92ZXJyaWRlcz86IFBhcnRpYWw8RmxhZ3NPZjxGYWJyaWNDb250cmFjdENvbnRleHQ+PlxuICApOiBQcm9taXNlPFxuICAgIEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+XG4gID47XG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG92ZXJyaWRlcz86IFBhcnRpYWw8RmxhZ3NPZjxGYWJyaWNDb250cmFjdENvbnRleHQ+PiB8IEN0eFxuICApOlxuICAgIHwgUHJvbWlzZTxcbiAgICAgICAgRmFicmljQ29udGV4dHVhbGl6ZWRBcmdzPEFSR1MsIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZT5cbiAgICAgID5cbiAgICB8IEZhYnJpY0NvbnRleHR1YWxpemVkQXJnczxBUkdTLCBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2U+IHtcbiAgICBjb25zdCBjdHggPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG4gICAgbGV0IG1lcmdlZE92ZXJyaWRlcyA9IG92ZXJyaWRlcyBhc1xuICAgICAgfCBQYXJ0aWFsPEZsYWdzT2Y8RmFicmljQ29udHJhY3RDb250ZXh0Pj5cbiAgICAgIHwgQ3R4XG4gICAgICB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChcbiAgICAgIGN0eCBpbnN0YW5jZW9mIEZhYnJpY0NvbnRyYWN0Q29udGV4dCAmJlxuICAgICAgY3R4LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dDb250ZXh0VHJhbnNpZW50TWFwXCIpICYmXG4gICAgICBjdHguZ2V0T3JVbmRlZmluZWQoXCJzdHViXCIpXG4gICAgKSB7XG4gICAgICBjb25zdCB0cmFuc2llbnRPdmVycmlkZXMgPSB0aGlzLnJlYWRUcmFuc2llbnRPdmVycmlkZXMoY3R4KTtcbiAgICAgIGlmICh0cmFuc2llbnRPdmVycmlkZXMpIHtcbiAgICAgICAgbWVyZ2VkT3ZlcnJpZGVzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICBvdmVycmlkZXMgfHwge30sXG4gICAgICAgICAgdHJhbnNpZW50T3ZlcnJpZGVzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFhbGxvd0NyZWF0ZSlcbiAgICAgIHJldHVybiBzdXBlci5sb2dDdHg8QVJHUywgTUVUSE9EPihcbiAgICAgICAgYXJncyxcbiAgICAgICAgb3BlcmF0aW9uIGFzIGFueSxcbiAgICAgICAgYWxsb3dDcmVhdGUgYXMgYW55LFxuICAgICAgICBtZXJnZWRPdmVycmlkZXMgYXMgYW55XG4gICAgICApIGFzIGFueTtcblxuICAgIHJldHVybiBzdXBlci5sb2dDdHhcbiAgICAgIC5jYWxsKHRoaXMsIGFyZ3MsIG9wZXJhdGlvbiBhcyBhbnksIGFsbG93Q3JlYXRlLCBtZXJnZWRPdmVycmlkZXMgYXMgYW55KVxuICAgICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICBpZiAoIShyZXMuY3R4IGluc3RhbmNlb2YgRmFicmljQ29udHJhY3RDb250ZXh0KSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgSW52YWxpZCBjb250ZXh0IGJpbmRpbmdgKTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ocmVzLCB7XG4gICAgICAgICAgLi4uKHJlcy5jdHguZ2V0T3JVbmRlZmluZWQoXCJzdHViXCIpXG4gICAgICAgICAgICA/IHsgc3R1YjogcmVzLmN0eC5nZXRPclVuZGVmaW5lZChcInN0dWJcIikgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgLi4uKHJlcy5jdHguZ2V0T3JVbmRlZmluZWQoXCJpZGVudGl0eVwiKVxuICAgICAgICAgICAgPyB7IGlkZW50aXR5OiByZXMuY3R4LmdldE9yVW5kZWZpbmVkKFwiaWRlbnRpdHlcIikgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0pO1xuICAgICAgfSkgYXMgYW55O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkVHJhbnNpZW50T3ZlcnJpZGVzKFxuICAgIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICk6IFBhcnRpYWw8RmxhZ3NPZjxGYWJyaWNDb250cmFjdENvbnRleHQ+PiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFjdHguZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0NvbnRleHRUcmFuc2llbnRNYXBcIikpIHJldHVybjtcbiAgICBjb25zdCBzdHViID0gY3R4LmdldE9yVW5kZWZpbmVkKFwic3R1YlwiKSBhcyBDaGFpbmNvZGVTdHViIHwgdW5kZWZpbmVkO1xuICAgIGlmICghc3R1YikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCB0cmFuc2llbnRNYXAgPSBzdHViLmdldFRyYW5zaWVudCgpO1xuICAgIGlmICghdHJhbnNpZW50TWFwLmhhcyhGYWJyaWNNb2RlbEtleXMuT1ZFUlJJREVTKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCByYXcgPSB0cmFuc2llbnRNYXAuZ2V0KEZhYnJpY01vZGVsS2V5cy5PVkVSUklERVMpO1xuICAgIGlmICghcmF3KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHJhdykudG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8YW55PiB8IHN0cmluZyxcbiAgICBldmVudDogT3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZyxcbiAgICBpZDogRXZlbnRJZHMsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMub2JzZXJ2ZXJIYW5kbGVyKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiT2JzZXJ2ZXJIYW5kbGVyIG5vdCBpbml0aWFsaXplZC4gRGlkIHlvdSByZWdpc3RlciBhbnkgb2JzZXJ2YWJsZXM/XCJcbiAgICAgICk7XG4gICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlT2JzZXJ2ZXJzKTtcbiAgICBpZiAoY3R4LmlzRnVsbHlTZWdyZWdhdGVkKSByZXR1cm47XG4gICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm5vRW1pdFwiKSkgcmV0dXJuO1xuICAgIGlmICghY3R4LnN0dWIpIHJldHVybjtcbiAgICBjb25zdCBpc0J1bGsgPSBBcnJheS5pc0FycmF5KGlkKTtcbiAgICBjb25zdCBlbWl0U2luZ2xlID0gIWN0eC5nZXRPclVuZGVmaW5lZChcIm5vRW1pdFNpbmdsZVwiKTtcbiAgICBjb25zdCBlbWl0QnVsayA9ICFjdHguZ2V0T3JVbmRlZmluZWQoXCJub0VtaXRCdWxrXCIpO1xuICAgIGlmICgoaXNCdWxrICYmIGVtaXRCdWxrKSB8fCAoIWlzQnVsayAmJiBlbWl0U2luZ2xlKSkge1xuICAgICAgLy8gUGFzcyB0aGUgTVNQIG93bmVyIGZyb20gc3R1YiBhbmQgdGhlIHJlc3VsdCBwYXlsb2FkIChpZiBhbnkpIGluIHRoZVxuICAgICAgLy8gcG9zaXRpb25zIHRoZSBoYW5kbGVyIGV4cGVjdHM6ICh0YWJsZSwgZXZlbnQsIGlkLCBvd25lcj8sIHBheWxvYWQ/LCBjdHgpXG4gICAgICBjb25zdCBtc3BJZCA9IGN0eC5zdHViLmdldE1zcElEID8gY3R4LnN0dWIuZ2V0TXNwSUQoKSA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG5vbkN0eEFyZ3MgPSBjdHhBcmdzLnNsaWNlKDAsIC0xKTsgLy8gZXZlcnl0aGluZyBiZWZvcmUgY3R4XG4gICAgICBjb25zdCBwYXlsb2FkID0gbm9uQ3R4QXJncy5sZW5ndGggPiAwID8gbm9uQ3R4QXJnc1swXSA6IHVuZGVmaW5lZDtcbiAgICAgIGF3YWl0IHRoaXMub2JzZXJ2ZXJIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgICAgdGFibGUsXG4gICAgICAgIGV2ZW50LFxuICAgICAgICBpZCxcbiAgICAgICAgbXNwSWQsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIGN0eFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgb3ZlcnJpZGUgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihlcnI6IEVycm9yIHwgc3RyaW5nKTogRSB7XG4gICAgLy8gaWYgKFxuICAgIC8vICAgTUlTU0lOR19QUklWQVRFX0RBVEFfUkVHRVgudGVzdChcbiAgICAvLyAgICAgdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlXG4gICAgLy8gICApXG4gICAgLy8gKVxuICAgIC8vICAgcmV0dXJuIG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlcnIpIGFzIEU7XG4gICAgY29uc3QgbXNnID0gdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoTm90Rm91bmRFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKENvbmZsaWN0RXJyb3IubmFtZSkpIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhCYWRSZXF1ZXN0RXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhRdWVyeUVycm9yLm5hbWUpKSByZXR1cm4gbmV3IFF1ZXJ5RXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoUGFnaW5nRXJyb3IubmFtZSkpIHJldHVybiBuZXcgUGFnaW5nRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSlcbiAgICAgIHJldHVybiBuZXcgVW5zdXBwb3J0ZWRFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBNaWdyYXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE9ic2VydmVyRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoRm9yYmlkZGVuRXJyb3IubmFtZSkpIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQ29ubmVjdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoU2VyaWFsaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJubyBsZWRnZXIgY29udGV4dFwiKSlcbiAgICAgIHJldHVybiBuZXcgTWlzc2luZ0NvbnRleHRFcnJvcihcbiAgICAgICAgYE5vIGNvbnRleHQgZm91bmQuIHRoaXMgY2FuIGJlIGNhdXNlZCBieSBkZWJ1Z2dpbmc6ICR7bXNnfWBcbiAgICAgICkgYXMgRTtcblxuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIEU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXRpYyBtZXRob2QgZm9yIGRlY29yYXRpb24gb3ZlcnJpZGVzXG4gICAqIEBzdW1tYXJ5IE92ZXJyaWRlcy9leHRlbmRzIGRlY2FmIGRlY29yYXRpb24gd2l0aCBGYWJyaWMtc3BlY2lmaWMgZnVuY3Rpb25hbGl0eVxuICAgKiBAc3RhdGljXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc3RhdGljIG92ZXJyaWRlIGRlY29yYXRpb24oKTogdm9pZCB7XG4gICAgc3VwZXIuZGVjb3JhdGlvbigpO1xuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLkNSRUFURURfQlkpXG4gICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBmdW5jdGlvbiBjcmVhdGVkQnkoKSB7XG4gICAgICAgICAgcmV0dXJuIGFwcGx5KFxuICAgICAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUpLFxuICAgICAgICAgICAgcHJvcE1ldGFkYXRhKFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZLCB7fSlcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSBhcyBhbnkpXG4gICAgICAuYXBwbHkoKTtcblxuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLlVQREFURURfQlkpXG4gICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBmdW5jdGlvbiBjcmVhdGVkQnkoKSB7XG4gICAgICAgICAgcmV0dXJuIGFwcGx5KFxuICAgICAgICAgICAgb25DcmVhdGVVcGRhdGUoY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUpLFxuICAgICAgICAgICAgcHJvcE1ldGFkYXRhKFBlcnNpc3RlbmNlS2V5cy5VUERBVEVEX0JZLCB7fSlcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfSBhcyBhbnkpXG4gICAgICAuYXBwbHkoKTtcblxuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLkNPTFVNTilcbiAgICAgIC5leHRlbmQoRmFicmljUHJvcGVydHkoKSlcbiAgICAgIC5hcHBseSgpO1xuXG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhGYWJyaWNGbGF2b3VyKVxuICAgICAgLmZvcihWYWxpZGF0aW9uS2V5cy5EQVRFKVxuICAgICAgLmV4dGVuZChmdW5jdGlvbiBmYWJyaWNQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcD86IGFueSkgPT4ge1xuICAgICAgICAgIFByb3BlcnR5KHByb3AsIFwic3RyaW5nOmRhdGVcIikodGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhGYWJyaWNGbGF2b3VyKVxuICAgICAgLmZvcihQZXJzaXN0ZW5jZUtleXMuVEFCTEUpXG4gICAgICAuZXh0ZW5kKGZ1bmN0aW9uIHRhYmxlKG9iajogYW55KSB7XG4gICAgICAgIGNvbnN0IGNoYWluOiBhbnlbXSA9IFtdO1xuICAgICAgICBsZXQgY3VycmVudCA9XG4gICAgICAgICAgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICA/IE1ldGFkYXRhLmNvbnN0cihvYmopXG4gICAgICAgICAgICA6IE1ldGFkYXRhLmNvbnN0cihvYmouY29uc3RydWN0b3IpO1xuXG4gICAgICAgIHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IE9iamVjdCAmJiBjdXJyZW50LnByb3RvdHlwZSkge1xuICAgICAgICAgIGNoYWluLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGNoYWluLm1hcCgoYykgPT4gYy5uYW1lIHx8IGMpKTtcblxuICAgICAgICAvLyBBcHBseSBmcm9tIHRoZSBiYXNlIGNsYXNzIGRvd24gdG8gdGhlIGRlY29yYXRlZCBjbGFzc1xuICAgICAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gY2hhaW4ucG9wKCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYENhbGxpbmcgb24gJHtjb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgICAgICAgIEZhYnJpY09iamVjdCgpKGNvbnN0cnVjdG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBGYWJyaWNPYmplY3QoKShvYmopO1xuICAgICAgfSlcbiAgICAgIC5hcHBseSgpO1xuICB9XG59XG5cbkZhYnJpY0NvbnRyYWN0QWRhcHRlci5kZWNvcmF0aW9uKCk7XG5BZGFwdGVyLnNldEN1cnJlbnQoRmFicmljRmxhdm91cik7XG4iXX0=
1654
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3RBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29udHJhY3RBZGFwdGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJDQSxzRUFTQztBQXBERCx1REFBc047QUFDdE4seUVBQXVFO0FBQ3ZFLG1DQUFvQztBQUNwQyw2REFBNkQ7QUFDN0QsMkRBQTZLO0FBQzdLLDZEQUFvRztBQUNwRywrQ0FBNEM7QUFDNUMseUNBQXlSO0FBQ3pSLCtFQUF5RTtBQUN6RSw2RUFBK0Q7QUFDL0QsMkVBQXFFO0FBQ3JFLDJEQUEwRTtBQUMxRSxtR0FBNkY7QUFDN0YscURBQWtGO0FBQ2xGLDZFQUF1RTtBQUN2RSxxREFBNEQ7QUFDNUQsMkVBQXFFO0FBQ3JFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0ksS0FBSyxVQUFVLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUs7SUFDekUsSUFBSSxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLDZEQUE2RDtJQUNqRSxDQUFDO0lBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0sSUFBSSx1QkFBZ0IsQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7QUFDTCxDQUFDO0FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE1BQWEscUJBQXNCLFNBQVEsNEJBQWM7SUFDckQsU0FBUyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUMxRCxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUs7UUFDeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFB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LElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyx3REFBd0Q7WUFDeEQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDOUMsSUFBQSw0QkFBWSxHQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELE9BQU8sSUFBQSw0QkFBWSxHQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO2FBQ0csS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBbGhERCxzREFraERDO0FBQ0QscUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDbkMsY0FBTyxDQUFDLFVBQVUsQ0FBQyw0QkFBYSxDQUFDLENBQUM7QUFDbEMsOHB5TEFBOHB5TCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvdWNoREJBZGFwdGVyLCBDb3VjaERCS2V5cywgcmVxdWlyZUdlbmVyYXRlZFVzZUluZGV4LCBlbnN1cmVEZXRlcm1pbmlzdGljU29ydCBhcyBjb3VjaEVuc3VyZURldGVybWluaXN0aWNTb3J0LCBnZXRTb3J0RGlyZWN0aW9uLCBnZXRTb3J0RmllbGRzLCB3YXJuU2NhblByb25lTWFuZ29PcGVyYXRvcnMsIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgTW9kZWwsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dC5qc1wiO1xuaW1wb3J0IHsgQmFkUmVxdWVzdEVycm9yLCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIG9uQ3JlYXRlLCBvbkNyZWF0ZVVwZGF0ZSwgU2VyaWFsaXphdGlvbkVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgT2JqZWN0IGFzIEZhYnJpY09iamVjdCwgUHJvcGVydHksIFByb3BlcnR5IGFzIEZhYnJpY1Byb3BlcnR5LCB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBQZXJzaXN0ZW5jZUtleXMsIFVuc3VwcG9ydGVkRXJyb3IsIEFkYXB0ZXIsIFF1ZXJ5RXJyb3IsIFBhZ2luZ0Vycm9yLCBNaWdyYXRpb25FcnJvciwgT2JzZXJ2ZXJFcnJvciwgQXV0aG9yaXphdGlvbkVycm9yLCBGb3JiaWRkZW5FcnJvciwgQ29ubmVjdGlvbkVycm9yLCBDb250ZXh0LCBPcmRlckRpcmVjdGlvbiwgVHJhbnNhY3Rpb25PcGVyYXRpb25LZXlzLCBwcm9taXNlU2VxdWVuY2UsIHJlc29sdmVCdWxrU2VxdWVuY2VSZXN1bHQsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuanNcIjtcbmltcG9ydCB7IEZhYnJpY1N0YXRlbWVudCB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0U3RhdGVtZW50LmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIH0gZnJvbSBcIi4vRmFicmljQ29udHJhY3RTZXF1ZW5jZS5qc1wiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciwgRmFicmljTW9kZWxLZXlzIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2NvbnN0YW50cy5qc1wiO1xuaW1wb3J0IHsgU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXIgfSBmcm9tIFwiLi8uLi9zaGFyZWQvU2ltcGxlRGV0ZXJtaW5pc3RpY1NlcmlhbGl6ZXIuanNcIjtcbmltcG9ydCB7IGFwcGx5LCBEZWNvcmF0aW9uLCBNZXRhZGF0YSwgcHJvcE1ldGFkYXRhLCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdFBhZ2luYXRvci5qc1wiO1xuaW1wb3J0IHsgTWlzc2luZ0NvbnRleHRFcnJvciB9IGZyb20gXCIuLy4uL3NoYXJlZC9lcnJvcnMuanNcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0RGlzcGF0Y2ggfSBmcm9tIFwiLi9GYWJyaWNDb250cmFjdERpc3BhdGNoLmpzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTZXRzIHRoZSBjcmVhdG9yIG9yIHVwZGF0ZXIgZmllbGQgaW4gYSBtb2RlbCBiYXNlZCBvbiB0aGUgdXNlciBpbiB0aGUgY29udGV4dFxuICogQHN1bW1hcnkgQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBpbiBkZWNvcmF0b3JzIHRvIGF1dG9tYXRpY2FsbHkgc2V0IHRoZSBjcmVhdGVkX2J5IG9yIHVwZGF0ZWRfYnkgZmllbGRzXG4gKiB3aXRoIHRoZSB1c2VybmFtZSBmcm9tIHRoZSBjb250ZXh0IHdoZW4gYSBkb2N1bWVudCBpcyBjcmVhdGVkIG9yIHVwZGF0ZWRcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBSIC0gVHlwZSBleHRlbmRpbmcgTmFub1JlcG9zaXRvcnk8TT5cbiAqIEB0ZW1wbGF0ZSBWIC0gVHlwZSBleHRlbmRpbmcgUmVsYXRpb25zTWV0YWRhdGFcbiAqIEBwYXJhbSB7Un0gdGhpcyAtIFRoZSByZXBvc2l0b3J5IGluc3RhbmNlXG4gKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY29udGV4dCAtIFRoZSBvcGVyYXRpb24gY29udGV4dCBjb250YWluaW5nIHVzZXIgaW5mb3JtYXRpb25cbiAqIEBwYXJhbSB7Vn0gZGF0YSAtIFRoZSByZWxhdGlvbiBtZXRhZGF0YVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgdG8gc2V0IHdpdGggdGhlIHVzZXJuYW1lXG4gKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlIGJlaW5nIGNyZWF0ZWQgb3IgdXBkYXRlZFxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlXG4gKiBAZnVuY3Rpb24gY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZmFicmljLmNvbnRyYWN0c1xuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBGIGFzIGNyZWF0ZWRCeU9uTmFub0NyZWF0ZVVwZGF0ZVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENvbnRleHRcbiAqICAgcGFydGljaXBhbnQgTSBhcyBNb2RlbFxuICogICBGLT4+QzogZ2V0KFwidXNlclwiKVxuICogICBDLS0+PkY6IHVzZXIgb2JqZWN0XG4gKiAgIEYtPj5NOiBzZXQga2V5IHRvIHVzZXIubmFtZVxuICogICBOb3RlIG92ZXIgRjogSWYgbm8gdXNlciBpbiBjb250ZXh0XG4gKiAgIEYtLT4+RjogdGhyb3cgVW5zdXBwb3J0ZWRFcnJvclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBjb250ZXh0LmdldChcImlkZW50aXR5XCIpO1xuICAgICAgICBtb2RlbFtrZXldID0gdXNlci5nZXRJRCgpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiTm8gVXNlciBmb3VuZCBpbiBjb250ZXh0LiBQbGVhc2UgcHJvdmlkZSBhIHVzZXIgaW4gdGhlIGNvbnRleHRcIik7XG4gICAgfVxufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBzdGF0ZSBkYXRhYmFzZSBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIENvdWNoREItbGlrZSBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZSBmcm9tIHdpdGhpbiBhIGNoYWluY29kZSBjb250cmFjdFxuICogQHRlbXBsYXRlIHZvaWQgLSBObyBjb25maWd1cmF0aW9uIG5lZWRlZCBmb3IgY29udHJhY3QgYWRhcHRlclxuICogQHRlbXBsYXRlIEZhYnJpY0NvbnRyYWN0RmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgY29udHJhY3Qgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIEZhYnJpY0NvbnRyYWN0Q29udGV4dCAtIENvbnRleHQgdHlwZSBmb3IgRmFicmljIGNvbnRyYWN0IG9wZXJhdGlvbnNcbiAqIEBjbGFzcyBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3QgY2xhc3NcbiAqIGltcG9ydCB7IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB9IGZyb20gJ0BkZWNhZi10cy9mb3ItZmFicmljJztcbiAqXG4gKiBleHBvcnQgY2xhc3MgTXlDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHtcbiAqICAgcHJpdmF0ZSBhZGFwdGVyID0gbmV3IEZhYnJpY0NvbnRyYWN0QWRhcHRlcigpO1xuICpcbiAqICAgQFRyYW5zYWN0aW9uKClcbiAqICAgYXN5bmMgY3JlYXRlQXNzZXQoY3R4OiBDb250ZXh0LCBpZDogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAqICAgICBjb25zdCBtb2RlbCA9IHsgaWQsIGRhdGEsIHRpbWVzdGFtcDogRGF0ZS5ub3coKSB9O1xuICogICAgIGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUoJ2Fzc2V0cycsIGlkLCBtb2RlbCwge30sIHsgc3R1YjogY3R4LnN0dWIgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgU3R1YlxuICogICBwYXJ0aWNpcGFudCBTdGF0ZURCXG4gKlxuICogICBDb250cmFjdC0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogY3JlYXRlKHRhYmxlTmFtZSwgaWQsIG1vZGVsLCB0cmFuc2llbnQsIGN0eClcbiAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiBTZXJpYWxpemUgbW9kZWwgdG8gSlNPTlxuICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBwdXRTdGF0ZShpZCwgc2VyaWFsaXplZERhdGEpXG4gKiAgIFN0dWItPj5TdGF0ZURCOiBXcml0ZSBkYXRhXG4gKiAgIFN0YXRlREItLT4+U3R1YjogU3VjY2Vzc1xuICogICBTdHViLS0+PkZhYnJpY0NvbnRyYWN0QWRhcHRlcjogU3VjY2Vzc1xuICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItLT4+Q29udHJhY3Q6IG1vZGVsXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgZXh0ZW5kcyBDb3VjaERCQWRhcHRlciB7XG4gICAgc3RhdGljIHsgdGhpcy5QUklWQVRFX0JPT0tNQVJLX1BSRUZJWCA9IFwiX19kY2ZfcHZ0Ym1fX1wiOyB9XG4gICAgc3RhdGljIHN0YWJsZVN0cmluZ2lmeSh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGBbJHt2YWx1ZVxuICAgICAgICAgICAgICAgIC5tYXAoKHYpID0+IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5zdGFibGVTdHJpbmdpZnkodikpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIsXCIpfV1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9iaiA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gYHske09iamVjdC5rZXlzKG9iailcbiAgICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gYCR7SlNPTi5zdHJpbmdpZnkoa2V5KX06JHtGYWJyaWNDb250cmFjdEFkYXB0ZXIuc3RhYmxlU3RyaW5naWZ5KG9ialtrZXldKX1gKVxuICAgICAgICAgICAgLmpvaW4oXCIsXCIpfX1gO1xuICAgIH1cbiAgICBzdGF0aWMgdG9CdWZmZXIodmFsdWUpIHtcbiAgICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh2YWx1ZSwgXCJ1dGY4XCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgICAgICBcImJ1ZmZlclwiIGluIHZhbHVlICYmXG4gICAgICAgICAgICB2YWx1ZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgY29uc3QgdHlwZWQgPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh0eXBlZC5idWZmZXIsIHR5cGVkLmJ5dGVPZmZzZXQgfHwgMCwgdHlwZWQuYnl0ZUxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgQ2Fubm90IGNvbnZlcnQgcHJpdmF0ZSBxdWVyeSB2YWx1ZSB0byBCdWZmZXI6ICR7T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKX1gKTtcbiAgICB9XG4gICAgc3RhdGljIHByaXZhdGVRdWVyeUhhc2gocXVlcnkpIHtcbiAgICAgICAgY29uc3QgcmVsZXZhbnQgPSB7XG4gICAgICAgICAgICBzZWxlY3RvcjogcXVlcnkuc2VsZWN0b3IgfHwge30sXG4gICAgICAgICAgICBzb3J0OiBxdWVyeS5zb3J0IHx8IFtdLFxuICAgICAgICAgICAgZmllbGRzOiBxdWVyeS5maWVsZHMgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXNlX2luZGV4OiBxdWVyeS51c2VfaW5kZXggfHwgdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgICAgICAgICAgLnVwZGF0ZShGYWJyaWNDb250cmFjdEFkYXB0ZXIuc3RhYmxlU3RyaW5naWZ5KHJlbGV2YW50KSlcbiAgICAgICAgICAgIC5kaWdlc3QoXCJiYXNlNjR1cmxcIik7XG4gICAgfVxuICAgIHN0YXRpYyBhdHRhY2hHZW5lcmF0ZWRQcml2YXRlVXNlSW5kZXgocXVlcnksIGxvZykge1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9IHF1ZXJ5LnNlbGVjdG9yO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBzZWxlY3Rvcj8uW0NvdWNoREJLZXlzLlRBQkxFXTtcbiAgICAgICAgaWYgKHR5cGVvZiB0YWJsZU5hbWUgIT09IFwic3RyaW5nXCIgfHwgIXRhYmxlTmFtZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY2xheno7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjbGF6eiA9IE1vZGVsLmZyb21UYWJsZSh0YWJsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXF1aXJlR2VuZXJhdGVkVXNlSW5kZXgoY2xhenosIHF1ZXJ5LCBsb2csIHtcbiAgICAgICAgICAgIHJlcXVpcmVTb3J0Q292ZXJhZ2U6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgY291bnRTZWxlY3RvckZpZWxkT2NjdXJyZW5jZXMoc2VsZWN0b3IsIGNvdW50cyA9IG5ldyBNYXAoKSkge1xuICAgICAgICBpZiAoIXNlbGVjdG9yIHx8IHR5cGVvZiBzZWxlY3RvciAhPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGNvdW50cztcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2Ygc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuY291bnRTZWxlY3RvckZpZWxkT2NjdXJyZW5jZXMoZW50cnksIGNvdW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY291bnRzO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgaWYgKCFbXCIkYW5kXCIsIFwiJG9yXCIsIFwiJG5vdFwiXS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgY291bnRzLnNldChrZXksIChjb3VudHMuZ2V0KGtleSkgfHwgMCkgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuY291bnRTZWxlY3RvckZpZWxkT2NjdXJyZW5jZXModmFsdWUsIGNvdW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvdW50cztcbiAgICB9XG4gICAgc3RhdGljIGlzTnVsbExvd2VyQm91bmRNYXJrZXIodmFsdWUpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModmFsdWUpO1xuICAgICAgICBpZiAoZW50cmllcy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbb3BlcmF0b3IsIGJvdW5kXSA9IGVudHJpZXNbMF07XG4gICAgICAgIHJldHVybiAob3BlcmF0b3IgPT09IFwiJGd0XCIgfHwgb3BlcmF0b3IgPT09IFwiJGd0ZVwiKSAmJiBib3VuZCA9PT0gbnVsbDtcbiAgICB9XG4gICAgc3RhdGljIG5vcm1hbGl6ZU1hbmdvUXVlcnlGb3JFeGVjdXRpb24ocXVlcnkpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IHtcbiAgICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgICAgc2VsZWN0b3I6IHF1ZXJ5LnNlbGVjdG9yICYmIHR5cGVvZiBxdWVyeS5zZWxlY3RvciA9PT0gXCJvYmplY3RcIlxuICAgICAgICAgICAgICAgID8geyAuLi5xdWVyeS5zZWxlY3RvciB9XG4gICAgICAgICAgICAgICAgOiBxdWVyeS5zZWxlY3RvcixcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFub3JtYWxpemVkLnNlbGVjdG9yIHx8IHR5cGVvZiBub3JtYWxpemVkLnNlbGVjdG9yICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb3VudHMgPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIuY291bnRTZWxlY3RvckZpZWxkT2NjdXJyZW5jZXMobm9ybWFsaXplZC5zZWxlY3Rvcik7XG4gICAgICAgIGZvciAoY29uc3QgW2ZpZWxkLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9ybWFsaXplZC5zZWxlY3RvcikpIHtcbiAgICAgICAgICAgIGlmICghRmFicmljQ29udHJhY3RBZGFwdGVyLmlzTnVsbExvd2VyQm91bmRNYXJrZXIodmFsdWUpIHx8XG4gICAgICAgICAgICAgICAgKGNvdW50cy5nZXQoZmllbGQpIHx8IDApIDw9IDEpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlbGV0ZSBub3JtYWxpemVkLnNlbGVjdG9yW2ZpZWxkXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgICB9XG4gICAgc3RhdGljIGJ1aWxkUHJpdmF0ZUNvbnRpbnVhdGlvblNlbGVjdG9yKHNlbGVjdG9yLCBzb3J0RmllbGQsIGRpcmVjdGlvbiwgaWRGaWVsZCwgbGFzdFZhbHVlLCBsYXN0SWQsIHZhcmlhbnQpIHtcbiAgICAgICAgY29uc3QgY21wID0gZGlyZWN0aW9uID09PSBcImRlc2NcIiA/IFwiJGx0XCIgOiBcIiRndFwiO1xuICAgICAgICBjb25zdCBpZENtcCA9IGRpcmVjdGlvbiA9PT0gXCJkZXNjXCIgPyBcIiRsdFwiIDogXCIkZ3RcIjtcbiAgICAgICAgaWYgKGlkRmllbGQgPT09IHNvcnRGaWVsZCkge1xuICAgICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0ge1xuICAgICAgICAgICAgICAgIFtzb3J0RmllbGRdOiB7XG4gICAgICAgICAgICAgICAgICAgIFtjbXBdOiBsYXN0VmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoIXNlbGVjdG9yIHx8ICFPYmplY3Qua2V5cyhzZWxlY3RvcikubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJGFuZDogW3NlbGVjdG9yLCBjb250aW51YXRpb25dLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjbGF1c2VzID0gdmFyaWFudCA9PT0gXCJzYW1lXCJcbiAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgW3NvcnRGaWVsZF06IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlcTogbGFzdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBbaWRGaWVsZF06IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZENtcF06IGxhc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBbc29ydEZpZWxkXToge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2NtcF06IGxhc3RWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgaWYgKCFzZWxlY3RvciB8fCAhT2JqZWN0LmtleXMoc2VsZWN0b3IpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsYXVzZXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyBjbGF1c2VzWzBdXG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICRhbmQ6IGNsYXVzZXMsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGFuZDogW3NlbGVjdG9yLCAuLi5jbGF1c2VzXSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIGJ1aWxkT3JsZXNzS2V5c2V0Q29udGludWF0aW9uUXVlcmllcyhxdWVyeSwgY3Vyc29yLCBwYWdlU2l6ZSkge1xuICAgICAgICBjb25zdCBiYXNlUXVlcnkgPSB7IC4uLnF1ZXJ5IH07XG4gICAgICAgIGRlbGV0ZSBiYXNlUXVlcnkuc2tpcDtcbiAgICAgICAgZGVsZXRlIGJhc2VRdWVyeS5ib29rbWFyaztcbiAgICAgICAgZGVsZXRlIGJhc2VRdWVyeS5saW1pdDtcbiAgICAgICAgaWYgKGN1cnNvci5pZEZpZWxkID09PSBjdXJzb3Iuc29ydEZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCBzaW5nbGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYmFzZVF1ZXJ5LFxuICAgICAgICAgICAgICAgIHNlbGVjdG9yOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYnVpbGRQcml2YXRlQ29udGludWF0aW9uU2VsZWN0b3IoKGJhc2VRdWVyeS5zZWxlY3RvciB8fCB7fSksIGN1cnNvci5zb3J0RmllbGQsIGN1cnNvci5kaXJlY3Rpb24sIGN1cnNvci5pZEZpZWxkLCBjdXJzb3IubGFzdFZhbHVlLCBjdXJzb3IubGFzdElkLCBcInNhbWVcIiksXG4gICAgICAgICAgICAgICAgbGltaXQ6IHBhZ2VTaXplICsgMSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gW3NpbmdsZV07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlyc3QgPSB7XG4gICAgICAgICAgICAuLi5iYXNlUXVlcnksXG4gICAgICAgICAgICBzZWxlY3RvcjogRmFicmljQ29udHJhY3RBZGFwdGVyLmJ1aWxkUHJpdmF0ZUNvbnRpbnVhdGlvblNlbGVjdG9yKChiYXNlUXVlcnkuc2VsZWN0b3IgfHwge30pLCBjdXJzb3Iuc29ydEZpZWxkLCBjdXJzb3IuZGlyZWN0aW9uLCBjdXJzb3IuaWRGaWVsZCwgY3Vyc29yLmxhc3RWYWx1ZSwgY3Vyc29yLmxhc3RJZCwgXCJzYW1lXCIpLFxuICAgICAgICAgICAgbGltaXQ6IHBhZ2VTaXplICsgMSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2Vjb25kID0ge1xuICAgICAgICAgICAgLi4uYmFzZVF1ZXJ5LFxuICAgICAgICAgICAgc2VsZWN0b3I6IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5idWlsZFByaXZhdGVDb250aW51YXRpb25TZWxlY3RvcigoYmFzZVF1ZXJ5LnNlbGVjdG9yIHx8IHt9KSwgY3Vyc29yLnNvcnRGaWVsZCwgY3Vyc29yLmRpcmVjdGlvbiwgY3Vyc29yLmlkRmllbGQsIGN1cnNvci5sYXN0VmFsdWUsIGN1cnNvci5sYXN0SWQsIFwibmV4dFwiKSxcbiAgICAgICAgICAgIGxpbWl0OiBwYWdlU2l6ZSArIDEsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBbZmlyc3QsIHNlY29uZF07XG4gICAgfVxuICAgIHN0YXRpYyBlbnN1cmVEZXRlcm1pbmlzdGljUHJpdmF0ZVNvcnQocXVlcnksIHRpZUJyZWFrZXIpIHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHF1ZXJ5LnNvcnQpIHx8ICFxdWVyeS5zb3J0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFBhZ2luZ0Vycm9yKFwiUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIHJlcXVpcmVzIGFuIGV4cGxpY2l0IHNvcnQuIEFkZCBvcmRlckJ5KC4uLikgc28gYSBzdGFibGUgZ2VuZXJhdGVkIGluZGV4IGNhbiBiZSBzZWxlY3RlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gKGdldFNvcnREaXJlY3Rpb24ocXVlcnkpIHx8XG4gICAgICAgICAgICBPcmRlckRpcmVjdGlvbi5BU0MpO1xuICAgICAgICBjb3VjaEVuc3VyZURldGVybWluaXN0aWNTb3J0KHF1ZXJ5LCB0aWVCcmVha2VyLCBkaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCBzb3J0RmllbGRzID0gZ2V0U29ydEZpZWxkcyhxdWVyeSk7XG4gICAgICAgIGNvbnN0IHNvcnRGaWVsZCA9IHNvcnRGaWVsZHNbMF07XG4gICAgICAgIGlmICghc29ydEZpZWxkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoXCJQcml2YXRlIE1hbmdvIHBhZ2luYXRpb24gcmVxdWlyZXMgYSB2YWxpZCBmaXJzdCBzb3J0IGZpZWxkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNvcnRGaWVsZHMuaW5jbHVkZXModGllQnJlYWtlcikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBQYWdpbmdFcnJvcihgUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIHJlcXVpcmVzIHRpZS1icmVha2VyIHNvcnQgZmllbGQgXCIke3RpZUJyZWFrZXJ9XCIuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNvcnRGaWVsZCxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uLFxuICAgICAgICAgICAgaWRGaWVsZDogdGllQnJlYWtlcixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIHBhcnNlUHJpdmF0ZVJlc3VsdFZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHZhbHVlLnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZCB8fCB0eXBlb2YgcGFyc2VkICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByaXZhdGUgcXVlcnkgcmVzdWx0IGlzIG5vdCBhIEpTT04gb2JqZWN0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBhcnNlZDtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHByaXZhdGUgcXVlcnkgcmVzdWx0IHdoaWxlIGJ1aWxkaW5nIGJvb2ttYXJrOiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGFzeW5jIGV4ZWN1dGVQcml2YXRlTWFuZ29QYWdlUXVlcmllcyhzdHViLCBjb2xsZWN0aW9uLCBxdWVyaWVzLCBwYWdlU2l6ZSwgbG9nKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VkID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcSBvZiBxdWVyaWVzKSB7XG4gICAgICAgICAgICBpZiAocGFnZWQubGVuZ3RoID49IHBhZ2VTaXplICsgMSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVtYWluaW5nID0gcGFnZVNpemUgKyAxIC0gcGFnZWQubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlGb3JFeGVjdXRpb24gPSB7XG4gICAgICAgICAgICAgICAgLi4ucSxcbiAgICAgICAgICAgICAgICBsaW1pdDogcmVtYWluaW5nLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeUZvckV4ZWN1dGlvbi5za2lwO1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5Rm9yRXhlY3V0aW9uLmJvb2ttYXJrO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlKc29uID0gSlNPTi5zdHJpbmdpZnkocXVlcnlGb3JFeGVjdXRpb24pO1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBRdWVyeWluZyBwcml2YXRlIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufSB3aXRoIE1hbmdvIHF1ZXJ5OiAke3F1ZXJ5SnNvbn1gKTtcbiAgICAgICAgICAgIGxldCByZXNwb25zZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBzdHViLmdldFByaXZhdGVEYXRhUXVlcnlSZXN1bHQoY29sbGVjdGlvbiwgcXVlcnlKc29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKFtcbiAgICAgICAgICAgICAgICAgICAgYFByaXZhdGUgTWFuZ28gcGFnaW5hdGVkIHF1ZXJ5IGZhaWxlZGAsXG4gICAgICAgICAgICAgICAgICAgIGBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn1gLFxuICAgICAgICAgICAgICAgICAgICBgcXVlcnk9JHtxdWVyeUpzb259YCxcbiAgICAgICAgICAgICAgICAgICAgYGVycm9yPSR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5zdGFjayB8fCBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCxcbiAgICAgICAgICAgICAgICBdLmpvaW4oXCJcXG5cIikpO1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdGVyYXRvciA9IChyZXNwb25zZS5pdGVyYXRvciB8fFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGlmICghaXRlcmF0b3IgfHwgdHlwZW9mIGl0ZXJhdG9yLm5leHQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGBQcml2YXRlIHBhZ2luYXRlZCBxdWVyeSBvbiBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gZGlkIG5vdCByZXR1cm4gYSB2YWxpZCBpdGVyYXRvcmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB3aGlsZSAocGFnZWQubGVuZ3RoIDwgcGFnZVNpemUgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlcy52YWx1ZSB8fCAhcmVzLnZhbHVlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBwYWdlZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogcmVzLnZhbHVlLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBGYWJyaWNDb250cmFjdEFkYXB0ZXIudG9CdWZmZXIocmVzLnZhbHVlLnZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IoW1xuICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHdoaWxlIHJlYWRpbmcgcHJpdmF0ZSBNYW5nbyBpdGVyYXRvcmAsXG4gICAgICAgICAgICAgICAgICAgIGBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn1gLFxuICAgICAgICAgICAgICAgICAgICBgcXVlcnk9JHtxdWVyeUpzb259YCxcbiAgICAgICAgICAgICAgICAgICAgYGVycm9yPSR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5zdGFjayB8fCBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCxcbiAgICAgICAgICAgICAgICBdLmpvaW4oXCJcXG5cIikpO1xuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoW1xuICAgICAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCB0byBjbG9zZSBwcml2YXRlIE1hbmdvIGl0ZXJhdG9yYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgYHF1ZXJ5PSR7cXVlcnlKc29ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBgZXJyb3I9JHtlIGluc3RhbmNlb2YgRXJyb3IgPyBlLnN0YWNrIHx8IGUubWVzc2FnZSA6IFN0cmluZyhlKX1gLFxuICAgICAgICAgICAgICAgICAgICBdLmpvaW4oXCJcXG5cIikpO1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWZpbmFsbHlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhZ2VkO1xuICAgIH1cbiAgICBzdGF0aWMgdG9GYWJyaWNQYWdpbmF0aW9uUmVzcG9uc2UoZG9jcywgYm9va21hcmspIHtcbiAgICAgICAgbGV0IGlkeCA9IDA7XG4gICAgICAgIGNvbnN0IGl0ZXJhdG9yID0ge1xuICAgICAgICAgICAgYXN5bmMgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICBpZiAoaWR4IDwgZG9jcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBkb2NzW2lkeCsrXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBkb25lOiB0cnVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgY2xvc2UoKSB7IH0sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVyYXRvcjogaXRlcmF0b3IsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgIGZldGNoZWRSZWNvcmRzQ291bnQ6IGRvY3MubGVuZ3RoLFxuICAgICAgICAgICAgICAgIGJvb2ttYXJrLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIHBhcnNlU3ludGhldGljUHJpdmF0ZUJvb2ttYXJrKGJvb2ttYXJrKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYm9va21hcmsgIT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWJvb2ttYXJrLnN0YXJ0c1dpdGgoRmFicmljQ29udHJhY3RBZGFwdGVyLlBSSVZBVEVfQk9PS01BUktfUFJFRklYKSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHJhdyA9IGJvb2ttYXJrLnNsaWNlKEZhYnJpY0NvbnRyYWN0QWRhcHRlci5QUklWQVRFX0JPT0tNQVJLX1BSRUZJWC5sZW5ndGgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShyYXcsIFwiYmFzZTY0dXJsXCIpLnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZCB8fFxuICAgICAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQgIT09IFwib2JqZWN0XCIgfHxcbiAgICAgICAgICAgICAgICB0eXBlb2YgcGFyc2VkLnNvcnRGaWVsZCAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAgICAgICAgIHR5cGVvZiBwYXJzZWQuZGlyZWN0aW9uICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5pZEZpZWxkICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgICAgICAgdHlwZW9mIHBhcnNlZC5sYXN0SWQgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAgICAgICB0eXBlb2YgcGFyc2VkLnF1ZXJ5SGFzaCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNvcnRGaWVsZDogcGFyc2VkLnNvcnRGaWVsZCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHBhcnNlZC5kaXJlY3Rpb24gPT09IFwiZGVzY1wiID8gXCJkZXNjXCIgOiBcImFzY1wiLFxuICAgICAgICAgICAgICAgIGlkRmllbGQ6IHBhcnNlZC5pZEZpZWxkLFxuICAgICAgICAgICAgICAgIGxhc3RWYWx1ZTogcGFyc2VkLmxhc3RWYWx1ZSxcbiAgICAgICAgICAgICAgICBsYXN0SWQ6IHBhcnNlZC5sYXN0SWQsXG4gICAgICAgICAgICAgICAgcXVlcnlIYXNoOiBwYXJzZWQucXVlcnlIYXNoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBidWlsZFN5bnRoZXRpY1ByaXZhdGVCb29rbWFyayhjdXJzb3IpIHtcbiAgICAgICAgcmV0dXJuIGAke0ZhYnJpY0NvbnRyYWN0QWRhcHRlci5QUklWQVRFX0JPT0tNQVJLX1BSRUZJWH0ke0J1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGN1cnNvcikpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpfWA7XG4gICAgfVxuICAgIGdldENsaWVudCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJDbGllbnQgaXMgbm90IHN1cHBvcnRlZCBpbiBGYWJyaWMgY29udHJhY3RzXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGJpbmFyeSBkYXRhIHRvIHN0cmluZ3NcbiAgICAgKi9cbiAgICBzdGF0aWMgeyB0aGlzLnRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTsgfVxuICAgIHN0YXRpYyB7IHRoaXMuc2VyaWFsaXplciA9IG5ldyBTaW1wbGVEZXRlcm1pbmlzdGljU2VyaWFsaXplcigpOyB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbnRleHQgY29uc3RydWN0b3IgZm9yIHRoaXMgYWRhcHRlclxuICAgICAqIEBzdW1tYXJ5IE92ZXJyaWRlcyB0aGUgYmFzZSBDb250ZXh0IGNvbnN0cnVjdG9yIHdpdGggRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgICovXG4gICAgZ2V0IENvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDb250cmFjdENvbnRleHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXRzIHRoZSByZXBvc2l0b3J5IGNvbnN0cnVjdG9yIGZvciB0aGlzIGFkYXB0ZXJcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgY29uc3RydWN0b3IgZm9yIGNyZWF0aW5nIHJlcG9zaXRvcmllc1xuICAgICAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAgICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcjxSZXBvc2l0b3J5PE0sIE1hbmdvUXVlcnksIEZhYnJpY0NvbnRyYWN0QWRhcHRlciwgRmFicmljQ29udHJhY3RGbGFncywgRmFicmljQ29udHJhY3RDb250ZXh0Pj59IFRoZSByZXBvc2l0b3J5IGNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgcmVwb3NpdG9yeSgpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTtcbiAgICB9XG4gICAgUGFnaW5hdG9yKHF1ZXJ5LCBzaXplLCBjbGF6eikge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY0NvbnRyYWN0UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gICAgfVxuICAgIGFzeW5jIFNlcXVlbmNlKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdFNlcXVlbmNlKG9wdGlvbnMsIHRoaXMpO1xuICAgIH1cbiAgICBEaXNwYXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdERpc3BhdGNoKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0NvbnRyYWN0QWRhcHRlciBpbnN0YW5jZVxuICAgICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGFuIGFkYXB0ZXIgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7dm9pZH0gc2NvcGUgLSBOb3QgdXNlZCBpbiB0aGlzIGFkYXB0ZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlLCBhbGlhcykge1xuICAgICAgICBzdXBlcihzY29wZSwgRmFicmljRmxhdm91ciwgYWxpYXMpO1xuICAgIH1cbiAgICBmb3IoY29uZmlnLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5mb3IoY29uZmlnLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgZ2V0TW9kZWxEZWZhdWx0cyhjbGF6eikge1xuICAgICAgICBjb25zdCBtID0gbmV3IGNsYXp6KCk7XG4gICAgICAgIHJldHVybiAoTWV0YWRhdGEucHJvcGVydGllcyhjbGF6eikgfHwgW10pLnJlZHVjZSgoYWNjLCBwKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1bcF0gIT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgICAgICAgICAgYWNjW3BdID0gbVtwXTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSByZWNvcmQgaW4gdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgU2VyaWFsaXplcyBhIG1vZGVsIGFuZCBzdG9yZXMgaXQgaW4gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgcmVjb3JkIGRhdGFcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIChub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHRoZSBjaGFpbmNvZGUgc3R1YiBhbmQgbG9nZ2VyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlKGNsYXp6LCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGUpO1xuICAgICAgICB0aGlzLmVuZm9yY2VNaXJyb3JBdXRob3JpemF0aW9uKGNsYXp6LCBjdHgpO1xuICAgICAgICBsb2cuaW5mbyhgaW4gQURBUFRFUiBjcmVhdGUgd2l0aCBhcmdzICR7YXJnc31gKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgY29uc3QgY29tcG9zZWRLZXkgPSBjdHguc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbU3RyaW5nKGlkKV0pO1xuICAgICAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKTtcbiAgICAgICAgY29uc3QgZnVsbHlTZWdyZWdhdGVkID0gY3R4LmlzRnVsbHlTZWdyZWdhdGVkICYmICFtaXJyb3JDb2xsZWN0aW9uO1xuICAgICAgICBpZiAoIW1pcnJvckNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIGxldCBleGlzdGluZztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4LWFzc2lnblxuICAgICAgICAgICAgICAgIGUgPSB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKGByZWNvcmQgd2l0aCBpZCAke2lkfSBpbiB0YWJsZSAke3RhYmxlTmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbG9nLmluZm8oYGFkZGluZyBlbnRyeSB0byAke3RhYmxlTmFtZX0gdGFibGUgd2l0aCBwayAke2lkfWApO1xuICAgICAgICAgICAgaWYgKG1pcnJvckNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5wdXRTdGF0ZShjb21wb3NlZEtleSwgbW9kZWwsIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0cyA9IHRoaXMuZ2V0TW9kZWxEZWZhdWx0cyhjbGF6eik7XG4gICAgICAgICAgICAgICAgLy8gaGFuZGxlIHB1YmxpYyBkYXRhIGlmIG5vdCBmdWxseSBzZWdyZWdhdGVkXG4gICAgICAgICAgICAgICAgaWYgKCFmdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKG1vZGVsKS5maWx0ZXIoKGspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCS2V5cy5UQUJMRSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIShkZWZhdWx0cyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGsgaW4gZGVmYXVsdHMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0c1trXSA9PT0gbW9kZWxba10pO1xuICAgICAgICAgICAgICAgICAgICB9KS5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMucHV0U3RhdGUoY29tcG9zZWRLZXksIG1vZGVsLCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgc2VncmVnYXRlZCB3cml0ZXNcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gY3R4LmdldEZyb21DaGlsZHJlbihcInNlZ3JlZ2F0ZWREYXRhXCIpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG1vZGVsLCBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sbGVjdGlvbikucHV0U3RhdGUoY29tcG9zZWRLZXksIGRhdGFbY29sbGVjdGlvbl1baWRdLCBjdHgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQWxsKHRhYmxlTmFtZSwgaWQsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmIChpZC5sZW5ndGggIT09IG1vZGVsLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsKTtcbiAgICAgICAgY29uc3QgdGFibGVMYWJlbCA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgICAgICBsb2cuZGVidWcoYENyZWF0aW5nICR7aWQubGVuZ3RofSBlbnRyaWVzICR7dGFibGVMYWJlbH0gdGFibGVgKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGlkLm1hcCgoaSwgY291bnQpID0+IHRoaXMuY3JlYXRlKHRhYmxlTmFtZSwgaSwgbW9kZWxbY291bnRdLCAuLi5jdHhBcmdzKSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgYSByZWNvcmQgZnJvbSB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYW5kIGRlc2VyaWFsaXplcyBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMsIGluY2x1ZGluZyB0aGUgY2hhaW5jb2RlIHN0dWIgYW5kIGxvZ2dlclxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgcmVhZChjbGF6eiwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkKTtcbiAgICAgICAgbG9nLmluZm8oYGluIEFEQVBURVIgcmVhZCB3aXRoIGFyZ3MgJHthcmdzfWApO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoaWQpXSk7XG4gICAgICAgIGNvbnN0IG1pcnJvckNvbGxlY3Rpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JDb2xsZWN0aW9uXCIpO1xuICAgICAgICBjb25zdCBpc01pcnJvciA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvclwiKTtcbiAgICAgICAgaWYgKGlzTWlycm9yICYmIG1pcnJvckNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGN0eC5wdXQoXCJtaXJyb3JcIiwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICBjdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxldCBtb2RlbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIG1vZGVsID0gY3R4LmlzRnVsbHlTZWdyZWdhdGVkXG4gICAgICAgICAgICAgICAgPyB7fVxuICAgICAgICAgICAgICAgIDogYXdhaXQgdGhpcy5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWFkQ29sbGVjdGlvbnMgPSBuZXcgU2V0KFtcbiAgICAgICAgICAgIC4uLihjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCkgfHwgW10pLFxuICAgICAgICAgICAgLi4uKGN0eC5jb25zdW1lUmVhZENvbGxlY3Rpb25zKCkgfHwgW10pLFxuICAgICAgICBdKTtcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgcmVhZENvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2wpLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgdGhyb3cgcGFyc2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYHJlY29yZCB3aXRoIGlkICR7aWR9IGluIHRhYmxlICR7dGFibGVOYW1lfSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyBtdWx0aXBsZSByZWNvcmRzIGZyb20gdGhlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgRmV0Y2hlcyBtdWx0aXBsZSByZWNvcmRzIHdpdGggdGhlIGdpdmVuIElEcyBmcm9tIHRoZSBzcGVjaWZpZWQgdGFibGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIHJlYWQgZnJvbVxuICAgICAqIEBwYXJhbSBpZCAtIFRoZSBpZGVudGlmaWVycyBvZiB0aGUgcmVjb3JkcyB0byByZXRyaWV2ZVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyBzcGVjaWZpYyB0byB0aGUgYWRhcHRlciBpbXBsZW1lbnRhdGlvblxuICAgICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgcmV0cmlldmVkIHJlY29yZHNcbiAgICAgKi9cbiAgICBhc3luYyByZWFkQWxsKGNsYXp6LCBpZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWRBbGwpO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBsb2cuZGVidWcoYFJlYWRpbmcgJHtpZC5sZW5ndGh9IGVudHJpZXMgJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgICAgIGNvbnN0IGJyZWFrT25TaW5nbGVGYWlsdXJlID0gY3R4LmdldChcImJyZWFrT25TaW5nbGVGYWlsdXJlSW5CdWxrXCIpID8/IHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRpbnVlT25FcnJvciA9ICFicmVha09uU2luZ2xlRmFpbHVyZTtcbiAgICAgICAgY29uc3QgbWlycm9yQ29sbGVjdGlvbiA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvckNvbGxlY3Rpb25cIik7XG4gICAgICAgIGNvbnN0IGlzTWlycm9yID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yXCIpO1xuICAgICAgICBjb25zdCByZWFkTWlycm9yID0gYXN5bmMgKGNsYXp6LCBpZCwgLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgaWYgKCFtaXJyb3JDb2xsZWN0aW9uKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IoXCJNaXNzaW5nIG1pcnJvciBjb2xsZWN0aW9uIGZvciBtaXJyb3IgcmVhZFwiKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjdHgsIGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgcmVhZE1pcnJvcik7XG4gICAgICAgICAgICAgICAgbG9nLmluZm8oYGluIEFEQVBURVIgcmVhZCB3aXRoIGFyZ3MgJHthcmdzfWApO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9zZWRLZXkgPSBjdHguc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbXG4gICAgICAgICAgICAgICAgICAgIFN0cmluZyhpZCksXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHRhc2tzID0gaWQubWFwKChpKSA9PiAoKSA9PiBpc01pcnJvciAmJiBtaXJyb3JDb2xsZWN0aW9uXG4gICAgICAgICAgICAgICAgPyByZWFkTWlycm9yKGNsYXp6LCBpLCAuLi5hcmdzLCBjdHgub3ZlcnJpZGUoeyBub0VtaXRTaW5nbGU6IHRydWUgfSkpXG4gICAgICAgICAgICAgICAgOiB0aGlzLnJlYWQoY2xhenosIGksIC4uLmFyZ3MsIGN0eC5vdmVycmlkZSh7IG5vRW1pdFNpbmdsZTogdHJ1ZSB9KSkpO1xuICAgICAgICAgICAgY29uc3QgcmF3UmVzdWx0ID0gY29udGludWVPbkVycm9yXG4gICAgICAgICAgICAgICAgPyBhd2FpdCBwcm9taXNlU2VxdWVuY2UodGFza3MsIHRydWUpXG4gICAgICAgICAgICAgICAgOiBhd2FpdCBwcm9taXNlU2VxdWVuY2UodGFza3MpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVCdWxrU2VxdWVuY2VSZXN1bHQocmF3UmVzdWx0LCBjb250aW51ZU9uRXJyb3IsIGxvZywgQnVsa0NydWRPcGVyYXRpb25LZXlzLlJFQURfQUxMKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgY3R4LnB1dChcIm1pcnJvclwiLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgY3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHJlY29yZCBpbiB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBTZXJpYWxpemVzIGEgbW9kZWwgYW5kIHVwZGF0ZXMgaXQgaW4gdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgKG5vdCB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24pXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdXBkYXRlZCByZWNvcmRcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGUoY2xhenosIGlkLCBtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZSk7XG4gICAgICAgIHRoaXMuZW5mb3JjZU1pcnJvckF1dGhvcml6YXRpb24oY2xhenosIGN0eCk7XG4gICAgICAgIGxvZy5pbmZvKGBpbiBBREFQVEVSIHVwZGF0ZSB3aXRoIGFyZ3MgJHthcmdzfWApO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoaWQpXSk7XG4gICAgICAgIGNvbnN0IG1pcnJvckNvbGxlY3Rpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJtaXJyb3JDb2xsZWN0aW9uXCIpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbG9nLmluZm8oYHVwZGF0aW5nIGVudHJ5IGluICR7dGFibGVOYW1lfSB0YWJsZSB3aXRoIHBrICR7aWR9YCk7XG4gICAgICAgICAgICBpZiAobWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIG1vZGVsID0gYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLnB1dFN0YXRlKGNvbXBvc2VkS2V5LCBtb2RlbCwgY3R4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5nZXRNb2RlbERlZmF1bHRzKGNsYXp6KTtcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgcHVibGljIGRhdGFcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMobW9kZWwpLmZpbHRlcigoaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQktleXMuVEFCTEUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhKGRlZmF1bHRzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBrIGluIGRlZmF1bHRzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0c1trXSA9PT0gbW9kZWxba10pO1xuICAgICAgICAgICAgICAgIH0pLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgbW9kZWwgPSBhd2FpdCB0aGlzLnB1dFN0YXRlKGNvbXBvc2VkS2V5LCBtb2RlbCwgY3R4KTtcbiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgc2VncmVnYXRlZCB3cml0ZXNcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gY3R4LmdldEZyb21DaGlsZHJlbihcInNlZ3JlZ2F0ZWREYXRhXCIpO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG1vZGVsLCBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sbGVjdGlvbikucHV0U3RhdGUoY29tcG9zZWRLZXksIGRhdGFbY29sbGVjdGlvbl1baWRdLCBjdHgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSByZWNvcmQgZnJvbSB0aGUgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSByZWNvcmQgYW5kIHRoZW4gcmVtb3ZlcyBpdCBmcm9tIHRoZSBGYWJyaWMgc3RhdGUgZGF0YWJhc2VcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXIgdG8gZGVsZXRlXG4gICAgICogQHBhcmFtIHsuLi5hbnlbXX0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzLCBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBzdHViIGFuZCBsb2dnZXJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgZGVsZXRlZCByZWNvcmRcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGUoY2xhenosIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZGVsZXRlKTtcbiAgICAgICAgdGhpcy5lbmZvcmNlTWlycm9yQXV0aG9yaXphdGlvbihjbGF6eiwgY3R4KTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgY29uc3QgY29tcG9zZWRLZXkgPSBjdHguc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkodGFibGVOYW1lLCBbU3RyaW5nKGlkKV0pO1xuICAgICAgICBjb25zdCBtaXJyb3JDb2xsZWN0aW9uID0gY3R4LmdldE9yVW5kZWZpbmVkKFwibWlycm9yQ29sbGVjdGlvblwiKTtcbiAgICAgICAgbGV0IG1vZGVsO1xuICAgICAgICBpZiAobWlycm9yQ29sbGVjdGlvbikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBtb2RlbCA9IGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShtaXJyb3JDb2xsZWN0aW9uKS5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5mb3JQcml2YXRlKG1pcnJvckNvbGxlY3Rpb24pLmRlbGV0ZVN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG1vZGVsID0gY3R4LmlzRnVsbHlTZWdyZWdhdGVkXG4gICAgICAgICAgICAgICAgICAgID8ge31cbiAgICAgICAgICAgICAgICAgICAgOiBhd2FpdCB0aGlzLnJlYWRTdGF0ZShjb21wb3NlZEtleSwgY3R4KTtcbiAgICAgICAgICAgICAgICBpZiAoIWN0eC5pc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYERlbGV0aW5nIGVudHJ5ICR7Y29tcG9zZWRLZXl9IGZyb20gcHVibGljIGxlZGdlcmApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZVN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCk7XG4gICAgICAgICAgICBpZiAoY29sbGVjdGlvbnMgJiYgY29sbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgY29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBlbnN1cmluZyBjb2xsZWN0aW9uICR7Y29sfSBoYXMgZW50cnkgZm9yIGlkICR7Y29tcG9zZWRLZXl9IGJlZm9yZSBkZWxldGluZ2ApO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG1vZGVsLCBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sKS5yZWFkU3RhdGUoY29tcG9zZWRLZXksIGN0eCkpO1xuICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYERlbGV0aW5nIHByaXZhdGUgY29sbGVjdGlvbiAke2NvbH0gZW50cnkgZm9yIGlkICR7Y29tcG9zZWRLZXl9YCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yUHJpdmF0ZShjb2wpLmRlbGV0ZVN0YXRlKGNvbXBvc2VkS2V5LCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZVN0YXRlKGlkLCBjb250ZXh0KSB7XG4gICAgICAgIGF3YWl0IGNvbnRleHQuc3R1Yi5kZWxldGVTdGF0ZShpZCk7XG4gICAgfVxuICAgIGZvclByaXZhdGUoY29sbGVjdGlvbikge1xuICAgICAgICBjb25zdCB0b092ZXJyaWRlID0gW1xuICAgICAgICAgICAgdGhpcy5wdXRTdGF0ZSxcbiAgICAgICAgICAgIHRoaXMucmVhZFN0YXRlLFxuICAgICAgICAgICAgdGhpcy5kZWxldGVTdGF0ZSxcbiAgICAgICAgICAgIHRoaXMucXVlcnlSZXN1bHQsXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5UmVzdWx0UGFnaW5hdGVkLFxuICAgICAgICBdLm1hcCgoZm4pID0+IGZuLm5hbWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRoaXMsIHtcbiAgICAgICAgICAgIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0b092ZXJyaWRlLmluY2x1ZGVzKHByb3ApKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm94eSh0YXJnZXRbcHJvcF0sIHtcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgYXBwbHkoZm4sIHRoaXNBcmcsIGFyZ3NMaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwicHV0U3RhdGVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwdXRTdGF0ZSBzaWduYXR1cmU6IChpZDogc3RyaW5nLCBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PiwgY3R4OiBGYWJyaWNDb250cmFjdENvbnRleHQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtpZCwgbW9kZWwsIGN0eF0gPSBhcmdzTGlzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9nID0gY3R4LmxvZ2dlci5mb3IocHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUHJpdmF0ZSB3cml0ZSB0byAke2NvbGxlY3Rpb259IGZvciAke2lkLnRvU3RyaW5nKCl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBCdWZmZXIuZnJvbShGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGZhbHNlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGN0eC5zdHViLnB1dFByaXZhdGVEYXRhKGNvbGxlY3Rpb24sIGlkLnRvU3RyaW5nKCksIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJkZWxldGVTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbGV0ZVN0YXRlIHNpZ25hdHVyZTogKGlkOiBzdHJpbmcsIGNvbnRleHQ6IEZhYnJpY0NvbnRyYWN0Q29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2lkLCBjdHhdID0gYXJnc0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFByaXZhdGUgZGVsZXRlIG9uICR7Y29sbGVjdGlvbn0gZm9yICR7aWQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY3R4LnN0dWIuZGVsZXRlUHJpdmF0ZURhdGEoY29sbGVjdGlvbiwgaWQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInJlYWRTdGF0ZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWRTdGF0ZSBzaWduYXR1cmU6IChpZDogc3RyaW5nLCBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2lkLCBjdHhdID0gYXJnc0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFByaXZhdGUgcmVhZCBmcm9tICR7Y29sbGVjdGlvbn0gZm9yICR7aWQudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGN0eC5zdHViLmdldFByaXZhdGVEYXRhKGNvbGxlY3Rpb24sIGlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhLnRvU3RyaW5nKCkubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5zZXJpYWxpemVyLmRlc2VyaWFsaXplKGRhdGEudG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInF1ZXJ5UmVzdWx0XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N0dWIsIHJhd0lucHV0LCAuLi5hcmdzXSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGxvZyB9ID0gdGhpc0FyZ1tcImxvZ0N0eFwiXShhcmdzLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZElucHV0ID0gRmFicmljQ29udHJhY3RBZGFwdGVyLm5vcm1hbGl6ZU1hbmdvUXVlcnlGb3JFeGVjdXRpb24ocmF3SW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeUpzb24gPSBKU09OLnN0cmluZ2lmeShub3JtYWxpemVkSW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFF1ZXJ5aW5nIHByaXZhdGUgY29sbGVjdGlvbiAke2NvbGxlY3Rpb259IHdpdGggTWFuZ28gcXVlcnk6ICR7cXVlcnlKc29ufWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgc3R1Yi5nZXRQcml2YXRlRGF0YVF1ZXJ5UmVzdWx0KGNvbGxlY3Rpb24sIHF1ZXJ5SnNvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVyYXRvciA9IHJlcy5pdGVyYXRvciB8fCByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdG9yIHx8IHR5cGVvZiBpdGVyYXRvci5uZXh0ICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihgUHJpdmF0ZSBxdWVyeSBvbiBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn0gZGlkIG5vdCByZXR1cm4gYSB2YWxpZCBpdGVyYXRvcmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBQcml2YXRlIE1hbmdvIHF1ZXJ5IGZhaWxlZGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGNvbGxlY3Rpb249JHtjb2xsZWN0aW9ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHF1ZXJ5PSR7cXVlcnlKc29ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGVycm9yPSR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5zdGFjayB8fCBlLm1lc3NhZ2UgOiBTdHJpbmcoZSl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0uam9pbihcIlxcblwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyB0aGlzQXJnLnBhcnNlRXJyb3IgPyB0aGlzQXJnLnBhcnNlRXJyb3IoZSkgOiBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJxdWVyeVJlc3VsdFBhZ2luYXRlZFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFtzdHViLCByYXdJbnB1dCwgbGltaXQsIHNraXAsIGJvb2ttYXJrLCAuLi5hcmdzXSA9IGFyZ3NMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKGFyZ3MsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2tpcCAhPT0gdW5kZWZpbmVkICYmIHNraXAgIT09IG51bGwgJiYgTnVtYmVyKHNraXApID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhZ2luZ0Vycm9yKFwiUHJpdmF0ZSBNYW5nbyBwYWdpbmF0aW9uIGRvZXMgbm90IHN1cHBvcnQgc2tpcC9vZmZzZXQgcGFnaW5hdGlvbi4gVXNlIHRoZSByZXR1cm5lZCBzeW50aGV0aWMgYm9va21hcmsgaW5zdGVhZC5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZVNpemUgPSBNYXRoLm1heCgxLCBOdW1iZXIobGltaXQpIHx8IDI1MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0geyAuLi5yYXdJbnB1dCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeUlucHV0ID0gcXVlcnk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGtGaWVsZCA9IHR5cGVvZiBxdWVyeUlucHV0W1wiX19wa0ZpZWxkXCJdID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeUlucHV0W1wiX19wa0ZpZWxkXCJdLnRyaW0oKS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gU3RyaW5nKHF1ZXJ5SW5wdXRbXCJfX3BrRmllbGRcIl0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZyhjdHg/LmdldE9yVW5kZWZpbmVkKFwicHJpdmF0ZVBhZ2luYXRpb25UaWVCcmVha2VyXCIpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5SW5wdXRbXCJfX3BrRmllbGRcIl07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN5bnRoZXRpY0N1cnNvciA9IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5wYXJzZVN5bnRoZXRpY1ByaXZhdGVCb29rbWFyayhib29rbWFyayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib29rbWFyayAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29rbWFyayAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9va21hcmsgIT09IFwiXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzeW50aGV0aWNDdXJzb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYWdpbmdFcnJvcihcIlByaXZhdGUgTWFuZ28gcGFnaW5hdGlvbiBvbmx5IHN1cHBvcnRzIGFkYXB0ZXItZ2VuZXJhdGVkIHN5bnRoZXRpYyBib29rbWFya3MuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShxdWVyeS5zb3J0KSB8fCAhcXVlcnkuc29ydC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYWdpbmdFcnJvcihcIlByaXZhdGUgTWFuZ28gcGFnaW5hdGlvbiByZXF1aXJlcyBhbiBleHBsaWNpdCBzb3J0LiBBZGQgb3JkZXJCeSguLi4pIHNvIGEgc3RhYmxlIGdlbmVyYXRlZCBpbmRleCBjYW4gYmUgc2VsZWN0ZWQuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgc29ydEZpZWxkLCBkaXJlY3Rpb246IHNvcnREaXJlY3Rpb24sIGlkRmllbGQsIH0gPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIuZW5zdXJlRGV0ZXJtaW5pc3RpY1ByaXZhdGVTb3J0KHF1ZXJ5LCBxdWVyeVBrRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuU2NhblByb25lTWFuZ29PcGVyYXRvcnMocXVlcnkuc2VsZWN0b3IgfHwge30sIGxvZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRRdWVyeSA9IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5ub3JtYWxpemVNYW5nb1F1ZXJ5Rm9yRXhlY3V0aW9uKHF1ZXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLmF0dGFjaEdlbmVyYXRlZFByaXZhdGVVc2VJbmRleChub3JtYWxpemVkUXVlcnksIGxvZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUHJpdmF0ZSBwYWdpbmF0ZWQgcXVlcnkgaW5wdXQgY29sbGVjdGlvbj0ke2NvbGxlY3Rpb259IGxpbWl0PSR7bGltaXR9IHNraXA9JHtza2lwfSBib29rbWFyaz0ke2Jvb2ttYXJrfSBzb3J0RmllbGQ9JHtzb3J0RmllbGR9IGRpcmVjdGlvbj0ke3NvcnREaXJlY3Rpb259IHN5bnRoZXRpYz0ke0Jvb2xlYW4oc3ludGhldGljQ3Vyc29yKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZFF1ZXJ5LmxpbWl0ID0gcGFnZVNpemUgKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBxdWVyeUhhc2ggPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIucHJpdmF0ZVF1ZXJ5SGFzaChub3JtYWxpemVkUXVlcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ludGhldGljQ3Vyc29yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ludGhldGljQ3Vyc29yLnF1ZXJ5SGFzaCAhPT0gcXVlcnlIYXNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhZ2luZ0Vycm9yKFwiUHJpdmF0ZSBNYW5nbyBib29rbWFyayBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVudCBxdWVyeS5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlcmllcyA9IHN5bnRoZXRpY0N1cnNvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYnVpbGRPcmxlc3NLZXlzZXRDb250aW51YXRpb25RdWVyaWVzKG5vcm1hbGl6ZWRRdWVyeSwgc3ludGhldGljQ3Vyc29yLCBwYWdlU2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW3sgLi4ubm9ybWFsaXplZFF1ZXJ5LCBsaW1pdDogcGFnZVNpemUgKyAxIH1dO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYWdlZCA9IGF3YWl0IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5leGVjdXRlUHJpdmF0ZU1hbmdvUGFnZVF1ZXJpZXMoc3R1YiwgY29sbGVjdGlvbiwgcXVlcmllcywgcGFnZVNpemUsIGxvZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc01vcmUgPSBwYWdlZC5sZW5ndGggPiBwYWdlU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9jcyA9IGhhc01vcmUgPyBwYWdlZC5zbGljZSgwLCBwYWdlU2l6ZSkgOiBwYWdlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5leHRCb29rbWFyayA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNNb3JlICYmIGRvY3MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gZG9jc1tkb2NzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdERvYyA9IEZhYnJpY0NvbnRyYWN0QWRhcHRlci5wYXJzZVByaXZhdGVSZXN1bHRWYWx1ZShsYXN0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKHNvcnRGaWVsZCBpbiBsYXN0RG9jKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBQYWdpbmdFcnJvcihgQ2Fubm90IGJ1aWxkIHByaXZhdGUgcGFnaW5hdGlvbiBib29rbWFyazogc29ydGVkIGZpZWxkIFwiJHtzb3J0RmllbGR9XCIgaXMgbWlzc2luZyBmcm9tIHRoZSBsYXN0IHJlc3VsdGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdElkVmFsdWUgPSBsYXN0RG9jW2lkRmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJZFZhbHVlID09PSB1bmRlZmluZWQgfHwgbGFzdElkVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFnaW5nRXJyb3IoYENhbm5vdCBidWlsZCBwcml2YXRlIHBhZ2luYXRpb24gYm9va21hcms6IGlkIGZpZWxkIFwiJHtpZEZpZWxkfVwiIGlzIG1pc3NpbmcgZnJvbSB0aGUgbGFzdCByZXN1bHRgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRCb29rbWFyayA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLmJ1aWxkU3ludGhldGljUHJpdmF0ZUJvb2ttYXJrKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IHNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RWYWx1ZTogbGFzdERvY1tzb3J0RmllbGRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0SWQ6IFN0cmluZyhsYXN0SWRWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5SGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnRvRmFicmljUGFnaW5hdGlvblJlc3BvbnNlKGRvY3MsIG5leHRCb29rbWFyayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBVbnN1cHBvcnRlZCBtZXRob2Qgb3ZlcnJpZGUgJHtTdHJpbmcocHJvcCl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgcHV0U3RhdGUoaWQsIG1vZGVsLCBjdHgpIHtcbiAgICAgICAgbGV0IGRhdGE7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkYXRhID0gQnVmZmVyLmZyb20oRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsLCBmYWxzZSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBGYWlsZWQgdG8gc2VyaWFsaXplIHJlY29yZCB3aXRoIGlkICR7aWR9OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY3R4LnN0dWIucHV0U3RhdGUoaWQudG9TdHJpbmcoKSwgZGF0YSk7XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgYXN5bmMgcmVhZFN0YXRlKGlkLCBjdHgpIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KFtjdHhdLCB0aGlzLnJlYWRTdGF0ZSk7XG4gICAgICAgIGNvbnN0IHJlcyA9IChhd2FpdCBjdHguc3R1Yi5nZXRTdGF0ZShpZC50b1N0cmluZygpKSkudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKCFyZXMpXG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgUmVjb3JkIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kYCk7XG4gICAgICAgIGxvZy5zaWxseShgc3RhdGUgcmV0cmlldmVkIHVuZGVyIGlkICR7aWR9YCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIuc2VyaWFsaXplci5kZXNlcmlhbGl6ZShyZXMudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoYEZhaWxlZCB0byBwYXJzZSByZWNvcmQ6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBhc3luYyBxdWVyeVJlc3VsdChzdHViLCByYXdJbnB1dCwgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZElucHV0ID0gRmFicmljQ29udHJhY3RBZGFwdGVyLm5vcm1hbGl6ZU1hbmdvUXVlcnlGb3JFeGVjdXRpb24ocmF3SW5wdXQpO1xuICAgICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXIuYXR0YWNoR2VuZXJhdGVkUHJpdmF0ZVVzZUluZGV4KG5vcm1hbGl6ZWRJbnB1dCk7XG4gICAgICAgIHJldHVybiBzdHViLmdldFF1ZXJ5UmVzdWx0KEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRJbnB1dCkpO1xuICAgIH1cbiAgICBhc3luYyBxdWVyeVJlc3VsdFBhZ2luYXRlZChzdHViLCByYXdJbnB1dCwgbGltaXQgPSAyNTAsIHBhZ2UsIGJvb2ttYXJrLCBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgLi4uYXJncykge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkSW5wdXQgPSBGYWJyaWNDb250cmFjdEFkYXB0ZXIubm9ybWFsaXplTWFuZ29RdWVyeUZvckV4ZWN1dGlvbihyYXdJbnB1dCk7XG4gICAgICAgIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5hdHRhY2hHZW5lcmF0ZWRQcml2YXRlVXNlSW5kZXgobm9ybWFsaXplZElucHV0KTtcbiAgICAgICAgcmV0dXJuIHN0dWIuZ2V0UXVlcnlSZXN1bHRXaXRoUGFnaW5hdGlvbihKU09OLnN0cmluZ2lmeShub3JtYWxpemVkSW5wdXQpLCBsaW1pdCwgYm9va21hcms/LnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVjb2RlcyBiaW5hcnkgZGF0YSB0byBzdHJpbmdcbiAgICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIFVpbnQ4QXJyYXkgdG8gYSBzdHJpbmcgdXNpbmcgVVRGLTggZW5jb2RpbmdcbiAgICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ1ZmZlciAtIFRoZSBiaW5hcnkgZGF0YSB0byBkZWNvZGVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBkZWNvZGVkIHN0cmluZ1xuICAgICAqL1xuICAgIGRlY29kZShidWZmZXIpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0QWRhcHRlci50ZXh0RGVjb2Rlci5kZWNvZGUoYnVmZmVyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgb3BlcmF0aW9uIGZsYWdzIGZvciBGYWJyaWMgY29udHJhY3Qgb3BlcmF0aW9uc1xuICAgICAqIEBzdW1tYXJ5IE1lcmdlcyBkZWZhdWx0IGZsYWdzIHdpdGggRmFicmljLXNwZWNpZmljIGNvbnRleHQgaW5mb3JtYXRpb25cbiAgICAgKiBAdGVtcGxhdGUgTSAtIFR5cGUgZXh0ZW5kaW5nIE1vZGVsXG4gICAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfSBvcGVyYXRpb24gLSBUaGUgb3BlcmF0aW9uIGJlaW5nIHBlcmZvcm1lZFxuICAgICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IG1vZGVsIC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+fSBmbGFncyAtIFBhcnRpYWwgZmxhZ3MgdG8gbWVyZ2Ugd2l0aCBkZWZhdWx0c1xuICAgICAqIEBwYXJhbSB7Q3R4fSBjdHggLSBUaGUgRmFicmljIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHJldHVybiB7RmFicmljQ29udHJhY3RGbGFnc30gVGhlIG1lcmdlZCBmbGFnc1xuICAgICAqL1xuICAgIGFzeW5jIGZsYWdzKG9wZXJhdGlvbiwgbW9kZWwsIGZsYWdzKSB7XG4gICAgICAgIGxldCBiYXNlRmxhZ3MgPSB7XG4gICAgICAgICAgICBzZWdyZWdhdGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGZ1bGx5U2VncmVnYXRlZDogZmFsc2UsXG4gICAgICAgICAgICBzdHJpY3RQcml2YXRlTWFuZ29QYWdpbmF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgcHJpdmF0ZVBhZ2luYXRpb25UaWVCcmVha2VyOiBcImlkXCIsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChmbGFncyBpbnN0YW5jZW9mIEZhYnJpY0NvbnRyYWN0Q29udGV4dCB8fCBmbGFncyBpbnN0YW5jZW9mIENvbnRleHQpIHtcbiAgICAgICAgICAgIGZsYWdzID0gZmxhZ3MudG9PdmVycmlkZXMoKTtcbiAgICAgICAgfVxuICAgICAgICBiYXNlRmxhZ3MgPSBPYmplY3QuYXNzaWduKGJhc2VGbGFncywgZmxhZ3MpO1xuICAgICAgICBjb25zdCBzdHViRnJvbUZsYWdzID0gZmxhZ3Muc3R1YiB8fCBmbGFncy5zdHViO1xuICAgICAgICBjb25zdCBpZGVudGl0eUZyb21GbGFncyA9IGZsYWdzLmlkZW50aXR5IHx8XG4gICAgICAgICAgICBmbGFncy5jbGllbnRJZGVudGl0eTtcbiAgICAgICAgaWYgKHN0dWJGcm9tRmxhZ3MgJiYgaWRlbnRpdHlGcm9tRmxhZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHR4SWQgPSBzdHViRnJvbUZsYWdzLmdldFR4SUQoKTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYmFzZUZsYWdzLCB7XG4gICAgICAgICAgICAgICAgc3R1Yjogc3R1YkZyb21GbGFncyxcbiAgICAgICAgICAgICAgICBpZGVudGl0eTogaWRlbnRpdHlGcm9tRmxhZ3MsXG4gICAgICAgICAgICAgICAgY2VydDogaWRlbnRpdHlGcm9tRmxhZ3MuZ2V0SURCeXRlcygpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgcm9sZXM6IGlkZW50aXR5RnJvbUZsYWdzLmdldEF0dHJpYnV0ZVZhbHVlKFwicm9sZXNcIiksXG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBMb2dnaW5nLmZvcihvcGVyYXRpb24sIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nTGV2ZWw6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb3JyZWxhdGlvbklkOiB0eElkLFxuICAgICAgICAgICAgICAgIH0sIGZsYWdzKSxcbiAgICAgICAgICAgICAgICBjb3JyZWxhdGlvbklkOiB0eElkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBiYXNlRmxhZ3MgPSBPYmplY3QuYXNzaWduKGJhc2VGbGFncywgZmxhZ3MgfHwge30pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoYXdhaXQgc3VwZXIuZmxhZ3Mob3BlcmF0aW9uLCBtb2RlbCwgYmFzZUZsYWdzKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGluZGV4IGZvciBhIG1vZGVsXG4gICAgICogQHN1bW1hcnkgVGhpcyBtZXRob2QgaXMgbm90IGltcGxlbWVudGVkIGZvciBGYWJyaWMgY29udHJhY3RzIGFuZCByZXR1cm5zIGEgcmVzb2x2ZWQgcHJvbWlzZVxuICAgICAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAgICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbHMgLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgaW1tZWRpYXRlbHlcbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgaW5kZXgobW9kZWxzKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyByZXN1bHRzIGZyb20gYSBzdGF0ZSBxdWVyeSBpdGVyYXRvclxuICAgICAqIEBzdW1tYXJ5IEl0ZXJhdGVzIHRocm91Z2ggcXVlcnkgcmVzdWx0cyBhbmQgY29udmVydHMgdGhlbSB0byBhIHN0cnVjdHVyZWQgZm9ybWF0XG4gICAgICogQHBhcmFtIHtMb2dnZXJ9IGxvZyAtIExvZ2dlciBpbnN0YW5jZSBmb3IgZGVidWdnaW5nXG4gICAgICogQHBhcmFtIHtJdGVyYXRvcnMuU3RhdGVRdWVyeUl0ZXJhdG9yfSBpdGVyYXRvciAtIFRoZSBzdGF0ZSBxdWVyeSBpdGVyYXRvclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzSGlzdG9yeT1mYWxzZV0gLSBXaGV0aGVyIHRoaXMgaXMgYSBoaXN0b3J5IHF1ZXJ5XG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnlbXT59IFByb21pc2UgcmVzb2x2aW5nIHRvIGFuIGFycmF5IG9mIHByb2Nlc3NlZCByZXN1bHRzXG4gICAgICogQG1lcm1haWRcbiAgICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICAgKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICAgICAqICAgcGFydGljaXBhbnQgUmVzdWx0SXRlcmF0b3JcbiAgICAgKiAgIHBhcnRpY2lwYW50IEl0ZXJhdG9yXG4gICAgICpcbiAgICAgKiAgIENhbGxlci0+PlJlc3VsdEl0ZXJhdG9yOiByZXN1bHRJdGVyYXRvcihsb2csIGl0ZXJhdG9yLCBpc0hpc3RvcnkpXG4gICAgICogICBsb29wIFVudGlsIGRvbmVcbiAgICAgKiAgICAgUmVzdWx0SXRlcmF0b3ItPj5JdGVyYXRvcjogbmV4dCgpXG4gICAgICogICAgIEl0ZXJhdG9yLS0+PlJlc3VsdEl0ZXJhdG9yOiB7IHZhbHVlLCBkb25lIH1cbiAgICAgKiAgICAgYWx0IEhhcyB2YWx1ZVxuICAgICAqICAgICAgIFJlc3VsdEl0ZXJhdG9yLT4+UmVzdWx0SXRlcmF0b3I6IFByb2Nlc3MgdmFsdWUgYmFzZWQgb24gaXNIaXN0b3J5XG4gICAgICogICAgICAgUmVzdWx0SXRlcmF0b3ItPj5SZXN1bHRJdGVyYXRvcjogQWRkIHRvIHJlc3VsdHMgYXJyYXlcbiAgICAgKiAgICAgZW5kXG4gICAgICogICBlbmRcbiAgICAgKiAgIFJlc3VsdEl0ZXJhdG9yLT4+SXRlcmF0b3I6IGNsb3NlKClcbiAgICAgKiAgIFJlc3VsdEl0ZXJhdG9yLS0+PkNhbGxlcjogYWxsUmVzdWx0c1xuICAgICAqL1xuICAgIGFzeW5jIHJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IsIGlzSGlzdG9yeSA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IGFsbFJlc3VsdHMgPSBbXTtcbiAgICAgICAgbGV0IHJlcyA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgd2hpbGUgKCFyZXMuZG9uZSkge1xuICAgICAgICAgICAgaWYgKHJlcy52YWx1ZSAmJiByZXMudmFsdWUudmFsdWUudG9TdHJpbmcoKSkge1xuICAgICAgICAgICAgICAgIGxldCBqc29uUmVzID0ge307XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICAgICAgICAgIGlmIChpc0hpc3RvcnkgLyogJiYgaXNIaXN0b3J5ID09PSB0cnVlKi8pIHtcbiAgICAgICAgICAgICAgICAgICAganNvblJlcy5UeElkID0gcmVzLnZhbHVlLnR4SWQ7XG4gICAgICAgICAgICAgICAgICAgIGpzb25SZXMuVGltZXN0YW1wID0gcmVzLnZhbHVlLnRpbWVzdGFtcDtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb25SZXMuVmFsdWUgPSBKU09OLnBhcnNlKHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAganNvblJlcy5WYWx1ZSA9IHJlcy52YWx1ZS52YWx1ZS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqc29uUmVzID0gSlNPTi5wYXJzZShyZXMudmFsdWUudmFsdWUudG9TdHJpbmcoXCJ1dGY4XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpzb25SZXMgPSByZXMudmFsdWUudmFsdWUudG9TdHJpbmcoXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFsbFJlc3VsdHMucHVzaChqc29uUmVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcyA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgICBsb2cuZGVidWcoYENsb3NpbmcgaXRlcmF0b3IgYWZ0ZXIgJHthbGxSZXN1bHRzLmxlbmd0aH0gcmVzdWx0c2ApO1xuICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICByZXR1cm4gYWxsUmVzdWx0cztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIHN0YXRlIGRhdGFiYXNlXG4gICAgICogQHN1bW1hcnkgUGVyZm9ybXMgYSByaWNoIHF1ZXJ5IHVzaW5nIENvdWNoREIgc3ludGF4IGFnYWluc3QgdGhlIEZhYnJpYyBzdGF0ZSBkYXRhYmFzZVxuICAgICAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHJldHVybiB0eXBlXG4gICAgICogQHBhcmFtIHtNYW5nb1F1ZXJ5fSByYXdJbnB1dCAtIFRoZSBNYW5nbyBRdWVyeSB0byBleGVjdXRlXG4gICAgICogQHBhcmFtIHtib29sZWFufSBkb2NzT25seSAtIFdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgZG9jdW1lbnRzIChub3QgdXNlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICAgICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cywgaW5jbHVkaW5nIHRoZSBjaGFpbmNvZGUgc3R1YiBhbmQgbG9nZ2VyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHF1ZXJ5IHJlc3VsdHNcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbiAgICAgKiAgIHBhcnRpY2lwYW50IFN0dWJcbiAgICAgKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbiAgICAgKlxuICAgICAqICAgQ2FsbGVyLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiByYXcocmF3SW5wdXQsIGRvY3NPbmx5LCBjdHgpXG4gICAgICogICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5GYWJyaWNDb250cmFjdEFkYXB0ZXI6IEV4dHJhY3QgbGltaXQgYW5kIHNraXBcbiAgICAgKiAgIGFsdCBXaXRoIHBhZ2luYXRpb25cbiAgICAgKiAgICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+U3R1YjogZ2V0UXVlcnlSZXN1bHRXaXRoUGFnaW5hdGlvbihxdWVyeSwgbGltaXQsIHNraXApXG4gICAgICogICBlbHNlIFdpdGhvdXQgcGFnaW5hdGlvblxuICAgICAqICAgICBGYWJyaWNDb250cmFjdEFkYXB0ZXItPj5TdHViOiBnZXRRdWVyeVJlc3VsdChxdWVyeSlcbiAgICAgKiAgIGVuZFxuICAgICAqICAgU3R1Yi0+PlN0YXRlREI6IEV4ZWN1dGUgcXVlcnlcbiAgICAgKiAgIFN0YXRlREItLT4+U3R1YjogSXRlcmF0b3JcbiAgICAgKiAgIFN0dWItLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiBJdGVyYXRvclxuICAgICAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLT4+RmFicmljQ29udHJhY3RBZGFwdGVyOiByZXN1bHRJdGVyYXRvcihsb2csIGl0ZXJhdG9yKVxuICAgICAqICAgRmFicmljQ29udHJhY3RBZGFwdGVyLS0+PkNhbGxlcjogcmVzdWx0c1xuICAgICAqL1xuICAgIGFzeW5jIHJhdyhyYXdJbnB1dCwgZG9jc09ubHkgPSB0cnVlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmF3KTtcbiAgICAgICAgY29uc3QgZW5hYmxlU2VncmVnYXRlcyA9ICFhcmdzLmxlbmd0aCB8fCBhcmdzWzBdICE9PSB0cnVlO1xuICAgICAgICBjb25zdCBmdWxseVNlZ3JlZ2F0ZWQgPSBlbmFibGVTZWdyZWdhdGVzICYmIGN0eC5pc0Z1bGx5U2VncmVnYXRlZDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxJbnB1dCA9IHsgLi4ucmF3SW5wdXQgfTtcbiAgICAgICAgY29uc3QgeyBza2lwLCBsaW1pdCB9ID0gb3JpZ2luYWxJbnB1dDtcbiAgICAgICAgY29uc3QgYm9va21hcmsgPSBvcmlnaW5hbElucHV0W1wiYm9va21hcmtcIl07XG4gICAgICAgIGNvbnN0IGhhc1NvcnQgPSBBcnJheS5pc0FycmF5KG9yaWdpbmFsSW5wdXQuc29ydCkgJiZcbiAgICAgICAgICAgIG9yaWdpbmFsSW5wdXQuc29ydC5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBwa0ZpZWxkID0gdHlwZW9mIG9yaWdpbmFsSW5wdXRbXCJfX3BrRmllbGRcIl0gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIG9yaWdpbmFsSW5wdXRbXCJfX3BrRmllbGRcIl0udHJpbSgpLmxlbmd0aFxuICAgICAgICAgICAgPyBTdHJpbmcob3JpZ2luYWxJbnB1dFtcIl9fcGtGaWVsZFwiXSlcbiAgICAgICAgICAgIDogU3RyaW5nKGN0eD8uZ2V0T3JVbmRlZmluZWQoXCJwcml2YXRlUGFnaW5hdGlvblRpZUJyZWFrZXJcIikgfHwgXCJpZFwiKTtcbiAgICAgICAgY29uc3QgaGFzU2tpcCA9IHNraXAgIT09IHVuZGVmaW5lZCAmJiBza2lwICE9PSBudWxsICYmIE51bWJlcihza2lwKSA+IDA7XG4gICAgICAgIGNvbnN0IGhhc0Jvb2ttYXJrID0gYm9va21hcmsgIT09IHVuZGVmaW5lZCAmJiBib29rbWFyayAhPT0gbnVsbCAmJiBib29rbWFyayAhPT0gXCJcIjtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbkFjdGl2ZSA9IEJvb2xlYW4obGltaXQgfHwgaGFzU2tpcCB8fCBoYXNCb29rbWFyayk7XG4gICAgICAgIGNvbnN0IHNob3VsZFBhZ2luYXRlID0gQm9vbGVhbihwYWdpbmF0aW9uQWN0aXZlICYmXG4gICAgICAgICAgICAoZW5hYmxlU2VncmVnYXRlcyB8fCBoYXNTa2lwIHx8IGhhc0Jvb2ttYXJrIHx8IGhhc1NvcnQpKTtcbiAgICAgICAgY29uc3QgYmFzZUlucHV0ID0geyAuLi5vcmlnaW5hbElucHV0IH07XG4gICAgICAgIGRlbGV0ZSBiYXNlSW5wdXRbXCJza2lwXCJdO1xuICAgICAgICBkZWxldGUgYmFzZUlucHV0W1wiYm9va21hcmtcIl07XG4gICAgICAgIGRlbGV0ZSBiYXNlSW5wdXRbXCJfX3BrRmllbGRcIl07XG4gICAgICAgIGxldCByZXNwID0geyBkb2NzOiBbXSwgYm9va21hcms6IHVuZGVmaW5lZCB9O1xuICAgICAgICBsb2cuZGVidWcoYHJhdyBxdWVyeSBzdGFydCBmdWxseVNlZ3JlZ2F0ZWQ9JHtmdWxseVNlZ3JlZ2F0ZWR9IGVuYWJsZVNlZ3JlZ2F0ZXM9JHtlbmFibGVTZWdyZWdhdGVzfSBwYWdpbmF0aW9uQWN0aXZlPSR7cGFnaW5hdGlvbkFjdGl2ZX0gbGltaXQ9JHtsaW1pdH0gc2tpcD0ke3NraXB9IGJvb2ttYXJrPSR7Ym9va21hcmt9IHBrRmllbGQ9JHtwa0ZpZWxkfSBxdWVyeT0ke0pTT04uc3RyaW5naWZ5KG9yaWdpbmFsSW5wdXQpfWApO1xuICAgICAgICAvLyBRdWVyeSBwdWJsaWMgc3RhdGUgb25seSB3aGVuIHRoZSBtb2RlbCBpcyBOT1QgZnVsbHkgc2VncmVnYXRlZFxuICAgICAgICBpZiAoIWZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgbGV0IGl0ZXJhdG9yO1xuICAgICAgICAgICAgaWYgKHNob3VsZFBhZ2luYXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFnaW5hdGVkSW5wdXQgPSB7IC4uLmJhc2VJbnB1dCB9O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYWdpbmF0ZWRJbnB1dFtcImxpbWl0XCJdO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUmV0cmlldmluZyBwdWJsaWMgcGFnaW5hdGVkIGl0ZXJhdG9yOiBsaW1pdDogJHtsaW1pdH0vIHNraXA6ICR7c2tpcH0gYm9va21hcms9JHtib29rbWFya31gKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCB0aGlzLnF1ZXJ5UmVzdWx0UGFnaW5hdGVkKGN0eC5zdHViLCBwYWdpbmF0ZWRJbnB1dCwgbGltaXQgfHwgMjUwLCBza2lwPy50b1N0cmluZygpLCBib29rbWFyaywgLi4uW2N0eF0pKTtcbiAgICAgICAgICAgICAgICByZXNwLmJvb2ttYXJrID0gcmVzcG9uc2UubWV0YWRhdGEuYm9va21hcms7XG4gICAgICAgICAgICAgICAgaXRlcmF0b3IgPSByZXNwb25zZS5pdGVyYXRvcjtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoYFJldHJpZXZlZCBwdWJsaWMgcGFnaW5nIGl0ZXJhdG9yYCk7XG4gICAgICAgICAgICAgICAgbG9nLmRlYnVnKGBwdWJsaWMgcGFnaW5hdGVkIHJlc3BvbnNlIGJvb2ttYXJrPSR7cmVzcC5ib29rbWFya30gcXVlcnk9JHtKU09OLnN0cmluZ2lmeShwYWdpbmF0ZWRJbnB1dCl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoXCJSZXRyaWV2aW5nIGxpc3RpbmcgcHVibGljIGl0ZXJhdG9yXCIpO1xuICAgICAgICAgICAgICAgIGl0ZXJhdG9yID0gKGF3YWl0IHRoaXMucXVlcnlSZXN1bHQoY3R4LnN0dWIsIHsgLi4uYmFzZUlucHV0IH0sIGN0eCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9nLmRlYnVnKGBSZXRyaWV2ZWQgcHVibGljIGxpc3RpbmcgaXRlcmF0b3JgKTtcbiAgICAgICAgICAgIHJlc3AuZG9jcyA9IChhd2FpdCB0aGlzLnJlc3VsdEl0ZXJhdG9yKGxvZywgaXRlcmF0b3IpKTtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgcmV0dXJuaW5nICR7QXJyYXkuaXNBcnJheShyZXNwLmRvY3MpID8gcmVzcC5kb2NzLmxlbmd0aCA6IDF9IHJlc3VsdHNgKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcIlNraXBwaW5nIHB1YmxpYyBzdGF0ZSBxdWVyeSAoZnVsbHkgc2VncmVnYXRlZCBtb2RlbClcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBlbmFibGVTZWdyZWdhdGVzID8gY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpIDogdW5kZWZpbmVkO1xuICAgICAgICBsb2cuZGVidWcoYHJlYWQgY29sbGVjdGlvbnMgZm9yIHJhdyBxdWVyeTogJHtKU09OLnN0cmluZ2lmeShjb2xsZWN0aW9ucyB8fCBbXSl9YCk7XG4gICAgICAgIGlmIChjb2xsZWN0aW9ucyAmJiBjb2xsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIEJ1aWxkIGEgZnJlc2ggaW5wdXQgd2l0aCBsaW1pdC9za2lwL2Jvb2ttYXJrIHJlc3RvcmVkXG4gICAgICAgICAgICBjb25zdCBzZWdyZWdhdGVkSW5wdXQgPSB7IC4uLmJhc2VJbnB1dCB9O1xuICAgICAgICAgICAgaWYgKGxpbWl0KVxuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRJbnB1dC5saW1pdCA9IGxpbWl0O1xuICAgICAgICAgICAgaWYgKHNraXApXG4gICAgICAgICAgICAgICAgc2VncmVnYXRlZElucHV0LnNraXAgPSBza2lwO1xuICAgICAgICAgICAgaWYgKGJvb2ttYXJrKVxuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRJbnB1dFtcImJvb2ttYXJrXCJdID0gYm9va21hcms7XG4gICAgICAgICAgICBsb2cuZGVidWcoYHNlZ3JlZ2F0ZWQgaW5wdXQgcHJlcGFyZWQ6ICR7SlNPTi5zdHJpbmdpZnkoc2VncmVnYXRlZElucHV0KX1gKTtcbiAgICAgICAgICAgIGNvbnN0IHNlZ3JlZ2F0ZWQgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUXVlcnlpbmcgZnJvbSAke2NvbGxlY3Rpb259YCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZnJvbUNvbHMgPSBhd2FpdCB0aGlzLmZvclByaXZhdGUoY29sbGVjdGlvbikucmF3KHsgLi4uc2VncmVnYXRlZElucHV0IH0sIGZhbHNlLCB0cnVlLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgICAgICAgICBsb2cudmVyYm9zZShgcmVjZWl2ZWQgJHtmcm9tQ29scy5sZW5ndGh9IGZyb20gJHtjb2xsZWN0aW9ufWApO1xuICAgICAgICAgICAgICAgIHNlZ3JlZ2F0ZWQucHVzaChmcm9tQ29scyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBQcmVmZXIgdGhlIHJlc3BvbnNlIHdpdGggdGhlIG1vc3QgcmVzdWx0cyBzbyBtaXhlZCBhbmQgZnVsbHkgc2VncmVnYXRlZFxuICAgICAgICAgICAgLy8gcmVhZHMgcmV0dXJuIHRoZSBjb2xsZWN0aW9uIHRoYXQgYWN0dWFsbHkgbWF0Y2hlZCB0aGUgcXVlcnkuXG4gICAgICAgICAgICByZXNwID0gc2VncmVnYXRlZC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghYWNjKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycjtcbiAgICAgICAgICAgICAgICBpZiAoY3Vyci5kb2NzICYmIGN1cnIuZG9jcy5sZW5ndGggPj0gYWNjPy5kb2NzLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIHJlc3ApO1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBzZWdyZWdhdGVkIHF1ZXJ5IHJlc29sdmVkIGRvY3M9JHtBcnJheS5pc0FycmF5KHJlc3AuZG9jcykgPyByZXNwLmRvY3MubGVuZ3RoIDogMH0gYm9va21hcms9JHtyZXNwLmJvb2ttYXJrfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2NzT25seSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGByYXcgcXVlcnkgcmV0dXJuaW5nIGRvY3NPbmx5PSR7ZG9jc09ubHl9IGRvY3M9JHtBcnJheS5pc0FycmF5KHJlc3AuZG9jcykgPyByZXNwLmRvY3MubGVuZ3RoIDogMH1gKTtcbiAgICAgICAgICAgIHJldHVybiByZXNwLmRvY3M7XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmRlYnVnKGByYXcgcXVlcnkgcmV0dXJuaW5nIGRvY3MvYm9va21hcmsgZG9jcz0ke0FycmF5LmlzQXJyYXkocmVzcC5kb2NzKSA/IHJlc3AuZG9jcy5sZW5ndGggOiAwfSBib29rbWFyaz0ke3Jlc3AuYm9va21hcmt9YCk7XG4gICAgICAgIHJldHVybiByZXNwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgYWxsIHJlY29yZHMgb2YgYSBtb2RlbCB1c2luZyByYW5nZSBxdWVyaWVzIChkZXRlcm1pbmlzdGljLCB3cml0ZS1zYWZlKVxuICAgICAqIEBzdW1tYXJ5IEl0ZXJhdGVzIHJlY29yZHMgdmlhIGBnZXRTdGF0ZUJ5UGFydGlhbENvbXBvc2l0ZUtleWAgKHB1YmxpYykgYW5kXG4gICAgICogYGdldFByaXZhdGVEYXRhQnlQYXJ0aWFsQ29tcG9zaXRlS2V5YCAocHJpdmF0ZS9zaGFyZWQpLCBmb2xsb3dpbmcgdGhlIHNhbWUgY29sbGVjdGlvbi1yb3V0aW5nXG4gICAgICogbG9naWMgYXMgYHJhdygpYCBidXQgdXNpbmcgRmFicmljIHJhbmdlIHF1ZXJpZXMgaW5zdGVhZCBvZiBNYW5nbyBzZWxlY3RvcnMuXG4gICAgICogVW5saWtlIGByYXcoKWAsIHRoaXMgbWV0aG9kIGlzIHNhZmUgdG8gdXNlIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uIGFzIHdyaXRlcyBiZWNhdXNlXG4gICAgICogcmFuZ2UgcXVlcmllcyBhcmUgZGV0ZXJtaW5pc3RpYyBhbmQgZG8gbm90IGJsb2NrIHN1YnNlcXVlbnQgYHB1dFN0YXRlYC9gcHV0UHJpdmF0ZURhdGFgIGNhbGxzLlxuICAgICAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAgICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBjbGF6eiAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSB7c3RyaW5nW119IFthdHRyaWJ1dGVzPVtdXSAtIFBhcnRpYWwgY29tcG9zaXRlIGtleSBhdHRyaWJ1dGVzIHRvIGZpbHRlciBieSAoZW1wdHkgPSBhbGwgcmVjb3JkcylcbiAgICAgKiBAcGFyYW0gey4uLkNvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD59IGFyZ3MgLSBDb250ZXh0dWFsIGFyZ3VtZW50cyBpbmNsdWRpbmcgdGhlIGNoYWluY29kZSBjb250ZXh0XG4gICAgICogQHJldHVybiB7UHJvbWlzZTxNW10+fSBQcm9taXNlIHJlc29sdmluZyB0byBhbiBhcnJheSBvZiByZWNvbnN0cnVjdGVkIG1vZGVsIGluc3RhbmNlc1xuICAgICAqL1xuICAgIGFzeW5jIHJhbmdlTGlzdChjbGF6eiwgYXR0cmlidXRlcyA9IFtdLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmFuZ2VMaXN0KTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgY29uc3QgZnVsbHlTZWdyZWdhdGVkID0gY3R4LmlzRnVsbHlTZWdyZWdhdGVkO1xuICAgICAgICBjb25zdCBkZXNlcmlhbGl6ZUVudHJ5ID0gKHJhdykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gQnVmZmVyLmZyb20ocmF3KS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgICAgICAgICBpZiAoIXN0cilcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRmFicmljQ29udHJhY3RBZGFwdGVyLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoc3RyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdHIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICAvLyBDb2xsZWN0IHJhdyBkYXRhIGtleWVkIGJ5IGNvbXBvc2l0ZSBrZXksIG1lcmdpbmcgcHVibGljICsgcHJpdmF0ZSBpbiBvcmRlciAoc2FtZSBhcyByZWFkKCkpXG4gICAgICAgIGNvbnN0IHJhd0J5S2V5ID0gbmV3IE1hcCgpO1xuICAgICAgICBpZiAoIWZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGByYW5nZUxpc3QgcHVibGljOiBvYmplY3RUeXBlPSR7dGFibGVOYW1lfSBhdHRyaWJ1dGVzPSR7SlNPTi5zdHJpbmdpZnkoYXR0cmlidXRlcyl9YCk7XG4gICAgICAgICAgICBjb25zdCBpdGVyYXRvciA9IGF3YWl0IGN0eC5zdHViLmdldFN0YXRlQnlQYXJ0aWFsQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBsZXQgbmV4dCA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgIHdoaWxlICghbmV4dC5kb25lKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHQudmFsdWU/LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBkZXNlcmlhbGl6ZUVudHJ5KG5leHQudmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJhd0J5S2V5LnNldChuZXh0LnZhbHVlLmtleSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5leHQgPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCBpdGVyYXRvci5jbG9zZSgpO1xuICAgICAgICAgICAgbG9nLmRlYnVnKGByYW5nZUxpc3QgcHVibGljOiAke3Jhd0J5S2V5LnNpemV9IGVudHJpZXNgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGN0eC5nZXRSZWFkQ29sbGVjdGlvbnMoKTtcbiAgICAgICAgaWYgKGNvbGxlY3Rpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBvZiBjb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgcmFuZ2VMaXN0IHByaXZhdGU6IGNvbGxlY3Rpb249JHtjb2xsZWN0aW9ufSBvYmplY3RUeXBlPSR7dGFibGVOYW1lfSBhdHRyaWJ1dGVzPSR7SlNPTi5zdHJpbmdpZnkoYXR0cmlidXRlcyl9YCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBhd2FpdCBjdHguc3R1Yi5nZXRQcml2YXRlRGF0YUJ5UGFydGlhbENvbXBvc2l0ZUtleShjb2xsZWN0aW9uLCB0YWJsZU5hbWUsIGF0dHJpYnV0ZXMpO1xuICAgICAgICAgICAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgbGV0IG5leHQgPSBhd2FpdCBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgd2hpbGUgKCFuZXh0LmRvbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQudmFsdWU/LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGVzZXJpYWxpemVFbnRyeShuZXh0LnZhbHVlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSByYXdCeUtleS5nZXQobmV4dC52YWx1ZS5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd0J5S2V5LnNldChuZXh0LnZhbHVlLmtleSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICBsb2cuZGVidWcoYHJhbmdlTGlzdCBwcml2YXRlOiBjb2xsZWN0aW9uPSR7Y29sbGVjdGlvbn0gJHtjb3VudH0gZW50cmllc2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBbY29tcG9zaXRlS2V5LCBkYXRhXSBvZiByYXdCeUtleSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGF0dHJpYnV0ZXM6IGtleVBhcnRzIH0gPSBjdHguc3R1Yi5zcGxpdENvbXBvc2l0ZUtleShjb21wb3NpdGVLZXkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0ga2V5UGFydHNbMF07XG4gICAgICAgICAgICAgICAgaWYgKCFpZClcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHRoaXMucmV2ZXJ0KGRhdGEsIGNsYXp6LCBpZCwgdW5kZWZpbmVkLCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgbG9nLndhcm4oYHJhbmdlTGlzdDogc2tpcHBpbmcgZW50cnkgJHtjb21wb3NpdGVLZXl9OiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmRlYnVnKGByYW5nZUxpc3Q6IHJldHVybmluZyAke3Jlc3VsdHMubGVuZ3RofSAke2NsYXp6Lm5hbWV9IGluc3RhbmNlc2ApO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gICAgYXN5bmMgdmlldyhcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZGRvYywgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHZpZXdOYW1lLCBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgb3B0aW9ucywgXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIC4uLl9hcmdzKSB7XG4gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiRmFicmljIGNvbnRyYWN0cyBkbyBub3Qgc3VwcG9ydCBDb3VjaERCIHZpZXdzLlwiKTtcbiAgICB9XG4gICAgU3RhdGVtZW50KG92ZXJyaWRlcykge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY1N0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVBbGwodGFibGVOYW1lLCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkLmxlbmd0aCAhPT0gbW9kZWwubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVBbGwpO1xuICAgICAgICBjb25zdCB0YWJsZUxhYmVsID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgVXBkYXRpbmcgJHtpZC5sZW5ndGh9IGVudHJpZXMgJHt0YWJsZUxhYmVsfSB0YWJsZWApO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoaWQubWFwKChpLCBjb3VudCkgPT4gdGhpcy51cGRhdGUodGFibGVOYW1lLCBpLCBtb2RlbFtjb3VudF0sIC4uLmN0eEFyZ3MpKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG1vZGVsXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBrXG4gICAgICogQHBhcmFtIGFyZ3NcbiAgICAgKi9cbiAgICBwcmVwYXJlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucHJlcGFyZSk7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gTW9kZWwuc2VncmVnYXRlKG1vZGVsKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKG1vZGVsLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgY29uc3QgcGsgPSBNb2RlbC5wayhtb2RlbC5jb25zdHJ1Y3Rvcik7XG4gICAgICAgIGNvbnN0IGlkID0gbW9kZWxbcGtdO1xuICAgICAgICBjb25zdCBpc01pcnJvciA9IGN0eC5nZXRPclVuZGVmaW5lZChcIm1pcnJvclwiKTtcbiAgICAgICAgY29uc3QgbWFwVG9SZWNvcmQgPSBmdW5jdGlvbiAob2JqLCBrZXlzT3ZlcnJpZGUpIHtcbiAgICAgICAgICAgIGlmIChrZXlzT3ZlcnJpZGUpXG4gICAgICAgICAgICAgICAga2V5c092ZXJyaWRlID0gWy4uLm5ldyBTZXQoWy4uLmtleXNPdmVycmlkZSwgcGtdKV07XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhvYmopLnJlZHVjZSgoYWNjdW0sIFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICAgIGlmIChrZXlzT3ZlcnJpZGUgJiYgIWtleXNPdmVycmlkZS5pbmNsdWRlcyhrZXkpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICAgICAgY29uc3QgbWFwcGVkUHJvcCA9IE1vZGVsLmNvbHVtbk5hbWUobW9kZWwsIGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNSZXNlcnZlZChtYXBwZWRQcm9wKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFByb3BlcnR5IG5hbWUgJHttYXBwZWRQcm9wfSBpcyByZXNlcnZlZGApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCBpbnN0YW5jZW9mIERhdGUgPyBuZXcgRGF0ZSh2YWwpIDogdmFsO1xuICAgICAgICAgICAgICAgIGFjY3VtW21hcHBlZFByb3BdID0gdmFsO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgICAgIH0sIHt9KTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhyZXN1bHQpLmZpbHRlcigoaykgPT4gQm9vbGVhbihyZXN1bHRba10pKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAvLyBBZGQgdGFibGUgaWRlbnRpZmllclxuICAgICAgICAgICAgICAgIHJlc3VsdFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9LmJpbmQodGhpcyk7XG4gICAgICAgIGxvZy5zaWxseShgUHJlcGFyaW5nIHJlY29yZCBmb3IgJHt0YWJsZU5hbWV9IHRhYmxlIHdpdGggcGsgJHttb2RlbFtwa119YCk7XG4gICAgICAgIGNvbnN0IHNlZ3JlZ2F0ZWRXcml0ZUtleXMgPSBjdHguZ2V0U2VncmVnYXRlZFdyaXRlcygpO1xuICAgICAgICBjb25zdCBzZWdyZWdhdGVkV3JpdGVzID0ge307XG4gICAgICAgIC8vIE9ubHkgYXBwbHkgc2VncmVnYXRlZCB3cml0ZXMgd2hlbiB0aGUgY3VycmVudCBtb2RlbCBhY3R1YWxseSBoYXMgYSB0cmFuc2llbnQgc3BsaXQuXG4gICAgICAgIC8vIFRoZSBzYW1lIEZhYnJpY0NvbnRyYWN0Q29udGV4dCBjYW4gYmUgcmV1c2VkIGFjcm9zcyBuZXN0ZWQgb3BlcmF0aW9ucyAoZm9yIGV4YW1wbGVcbiAgICAgICAgLy8gc2VxdWVuY2UgdXBzZXJ0cyBkdXJpbmcgcGVyc2lzdGVudCB2ZXJzaW9uIGdlbmVyYXRpb24pLiBJbiB0aG9zZSBjYXNlcywgd2UgbXVzdCBub3RcbiAgICAgICAgLy8gYXR0ZW1wdCB0byBhcHBseSBwYXJlbnQtbW9kZWwgc2VncmVnYXRlZCB3cml0ZSBrZXlzIHRvIHVucmVsYXRlZCBtb2RlbHMuXG4gICAgICAgIGlmIChzZWdyZWdhdGVkV3JpdGVLZXlzICYmXG4gICAgICAgICAgICBzcGxpdC50cmFuc2llbnQgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzcGxpdC50cmFuc2llbnQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sbGVjdGlvbiBpbiBzZWdyZWdhdGVkV3JpdGVLZXlzKSB7XG4gICAgICAgICAgICAgICAgc2VncmVnYXRlZFdyaXRlc1tjb2xsZWN0aW9uXSA9IHNlZ3JlZ2F0ZWRXcml0ZXNbY29sbGVjdGlvbl0gfHwge307XG4gICAgICAgICAgICAgICAgc2VncmVnYXRlZFdyaXRlc1tjb2xsZWN0aW9uXVtpZF0gPSBtYXBUb1JlY29yZChjdHguZ2V0T3JVbmRlZmluZWQoXCJmb3JjZVNlZ3JlZ2F0ZVdyaXRlXCIpXG4gICAgICAgICAgICAgICAgICAgID8gc3BsaXQubW9kZWxcbiAgICAgICAgICAgICAgICAgICAgOiBzcGxpdC50cmFuc2llbnQgfHwge30sIHNlZ3JlZ2F0ZWRXcml0ZUtleXNbY29sbGVjdGlvbl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEluIG1pcnJvciBtb2RlLCB0aGUgcmVjb3JkIHNob3VsZCBjb250YWluIEFMTCBtb2RlbCBwcm9wZXJ0aWVzIChmdWxsIGNvcHkpXG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGlzTWlycm9yID8gbWFwVG9SZWNvcmQobW9kZWwpIDogbWFwVG9SZWNvcmQoc3BsaXQubW9kZWwpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgaWQ6IG1vZGVsW3BrXSxcbiAgICAgICAgICAgIHRyYW5zaWVudDogIWlzTWlycm9yICYmIHNwbGl0LnRyYW5zaWVudCAmJiBPYmplY3Qua2V5cyhzcGxpdC50cmFuc2llbnQpLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gbWFwVG9SZWNvcmQoc3BsaXQudHJhbnNpZW50KVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2VncmVnYXRlZDogaXNNaXJyb3IgPyB1bmRlZmluZWQgOiBzZWdyZWdhdGVkV3JpdGVzLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXZlcnQob2JqLCBjbGF6eiwgaWQsIHRyYW5zaWVudCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJldmVydCk7XG4gICAgICAgIGNvbnN0IG9iID0ge307XG4gICAgICAgIGNvbnN0IHBrID0gTW9kZWwucGsoY2xhenopO1xuICAgICAgICBjb25zdCBwa1Byb3BzID0gTW9kZWwucGtQcm9wcyhjbGF6eik7XG4gICAgICAgIGlmIChwa1Byb3BzPy50eXBlID09PSBOdW1iZXIgJiYgdHlwZW9mIGlkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZCA9IE51bWJlcihpZCk7XG4gICAgICAgIH1cbiAgICAgICAgb2JbcGtdID0gaWQ7XG4gICAgICAgIGxvZy5zaWxseShgUmVidWlsZGluZyBtb2RlbCAke2NsYXp6Lm5hbWV9IGlkICR7aWR9YCk7XG4gICAgICAgIGZ1bmN0aW9uIG1hcFRvTW9kZWwocikge1xuICAgICAgICAgICAgY29uc3QgbSA9ICh0eXBlb2YgY2xhenogPT09IFwic3RyaW5nXCIgPyBNb2RlbC5idWlsZChvYiwgY2xhenopIDogbmV3IGNsYXp6KG9iKSk7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gTW9kZWwuZ2V0QXR0cmlidXRlcyhjbGF6eik7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gYXR0cmlidXRlcy5sZW5ndGggPyBhdHRyaWJ1dGVzIDogT2JqZWN0LmtleXMobSk7XG4gICAgICAgICAgICByZXR1cm4ga2V5c1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsgIT09IHBrKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBhY2N1bVtrZXldID1cbiAgICAgICAgICAgICAgICAgICAgcltNb2RlbC5jb2x1bW5OYW1lKGFjY3VtLCBrZXkpXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICB9LCBtKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzdWx0ID0gbWFwVG9Nb2RlbChvYmopO1xuICAgICAgICBpZiAodHJhbnNpZW50ICYmICF0aGlzLnNob3VsZFJlYnVpbGRXaXRoVHJhbnNpZW50KGN0eCkpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgZmlsdGVyaW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzOiAke09iamVjdC5rZXlzKHRyYW5zaWVudCkuam9pbihcIiwgXCIpfWApO1xuICAgICAgICAgICAgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKGFjYywgW2tleSwgdl0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBwayB8fCAhKGtleSBpbiB0cmFuc2llbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjY1trZXldID0gdjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIG5ldyBjbGF6eigpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBzaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChjdHgpIHtcbiAgICAgICAgaWYgKCFjdHgpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJyZWJ1aWxkV2l0aFRyYW5zaWVudFwiKSlcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBvcGVyYXRpb24gPSBjdHguZ2V0T3JVbmRlZmluZWQoXCJvcGVyYXRpb25cIik7XG4gICAgICAgIGlmICghb3BlcmF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IG9wID0gb3BlcmF0aW9uLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuICFUcmFuc2FjdGlvbk9wZXJhdGlvbktleXMubWFwKChrKSA9PiBrLnRvTG93ZXJDYXNlKCkpLmluY2x1ZGVzKG9wKTtcbiAgICB9XG4gICAgZ2V0Q29udGV4dE1zcChjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGlkZW50aXR5ID0gY29udGV4dC5nZXQoXCJpZGVudGl0eVwiKTtcbiAgICAgICAgaWYgKCFpZGVudGl0eSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0eXBlb2YgaWRlbnRpdHkgPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICByZXR1cm4gaWRlbnRpdHk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gaWRlbnRpdHkuZ2V0TVNQSUQoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVuZm9yY2VNaXJyb3JBdXRob3JpemF0aW9uKGNsYXp6LCBjdHgpIHtcbiAgICAgICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQoY2xhenopO1xuICAgICAgICBpZiAoIW1pcnJvck1ldGEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1zcCA9IHRoaXMuZ2V0Q29udGV4dE1zcChjdHgpO1xuICAgICAgICBpZiAoIW1zcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKG1zcCA9PT0gbWlycm9yTWV0YS5tc3BJZCB8fFxuICAgICAgICAgICAgKG1pcnJvck1ldGEuY29uZGl0aW9uICYmIG1pcnJvck1ldGEuY29uZGl0aW9uKG1zcCkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBPcmdhbml6YXRpb24gJHttc3B9IGlzIG5vdCBhdXRob3JpemVkIHRvIG1vZGlmeSBtaXJyb3JlZCBkYXRhYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY3JlYXRlUHJlZml4KHRhYmxlTmFtZSwgaWQsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVQcmVmaXgpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB7fTtcbiAgICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgICAgICByZXR1cm4gW3RhYmxlTmFtZSwgaWQsIHJlY29yZCwgLi4uY3R4QXJnc107XG4gICAgfVxuICAgIHVwZGF0ZVByZWZpeCh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlUHJlZml4KTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSBNb2RlbC50YWJsZU5hbWUodGFibGVOYW1lKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcbiAgICAgICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3NdO1xuICAgIH1cbiAgICBjcmVhdGVBbGxQcmVmaXgodGFibGVOYW1lLCBpZHMsIG1vZGVscywgLi4uYXJncykge1xuICAgICAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICAgICAgY29uc3QgY3R4ID0gYXJncy5wb3AoKTtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRhYmxlTmFtZSk7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWxzW2NvdW50XSk7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFt0YWJsZU5hbWUsIGlkcywgcmVjb3JkcywgY3R4XTtcbiAgICB9XG4gICAgdXBkYXRlQWxsUHJlZml4KHRhYmxlTmFtZSwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIGNvbnN0IGN0eCA9IGFyZ3MucG9wKCk7XG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSBpZHMubWFwKChpZCwgY291bnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHt9O1xuICAgICAgICAgICAgcmVjb3JkW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0YWJsZU5hbWUpO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsc1tjb3VudF0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBbdGFibGVOYW1lLCBpZHMsIHJlY29yZHMsIGN0eF07XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyLCByZWFzb24pIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NvbnRyYWN0QWRhcHRlci5wYXJzZUVycm9yKHJlYXNvbiB8fCBlcnIpO1xuICAgIH1cbiAgICBsb2dDdHgoYXJncywgb3BlcmF0aW9uLCBhbGxvd0NyZWF0ZSA9IGZhbHNlLCBvdmVycmlkZXMpIHtcbiAgICAgICAgY29uc3QgY3R4ID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdO1xuICAgICAgICBsZXQgbWVyZ2VkT3ZlcnJpZGVzID0gb3ZlcnJpZGVzO1xuICAgICAgICBpZiAoY3R4IGluc3RhbmNlb2YgRmFicmljQ29udHJhY3RDb250ZXh0ICYmXG4gICAgICAgICAgICBjdHguZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0NvbnRleHRUcmFuc2llbnRNYXBcIikgJiZcbiAgICAgICAgICAgIGN0eC5nZXRPclVuZGVmaW5lZChcInN0dWJcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE92ZXJyaWRlcyA9IHRoaXMucmVhZFRyYW5zaWVudE92ZXJyaWRlcyhjdHgpO1xuICAgICAgICAgICAgaWYgKHRyYW5zaWVudE92ZXJyaWRlcykge1xuICAgICAgICAgICAgICAgIG1lcmdlZE92ZXJyaWRlcyA9IE9iamVjdC5hc3NpZ24oe30sIG92ZXJyaWRlcyB8fCB7fSwgdHJhbnNpZW50T3ZlcnJpZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFsbG93Q3JlYXRlKVxuICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmxvZ0N0eChhcmdzLCBvcGVyYXRpb24sIGFsbG93Q3JlYXRlLCBtZXJnZWRPdmVycmlkZXMpO1xuICAgICAgICByZXR1cm4gc3VwZXIubG9nQ3R4XG4gICAgICAgICAgICAuY2FsbCh0aGlzLCBhcmdzLCBvcGVyYXRpb24sIGFsbG93Q3JlYXRlLCBtZXJnZWRPdmVycmlkZXMpXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIShyZXMuY3R4IGluc3RhbmNlb2YgRmFicmljQ29udHJhY3RDb250ZXh0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgSW52YWxpZCBjb250ZXh0IGJpbmRpbmdgKTtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJlcywge1xuICAgICAgICAgICAgICAgIC4uLihyZXMuY3R4LmdldE9yVW5kZWZpbmVkKFwic3R1YlwiKVxuICAgICAgICAgICAgICAgICAgICA/IHsgc3R1YjogcmVzLmN0eC5nZXRPclVuZGVmaW5lZChcInN0dWJcIikgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4ocmVzLmN0eC5nZXRPclVuZGVmaW5lZChcImlkZW50aXR5XCIpXG4gICAgICAgICAgICAgICAgICAgID8geyBpZGVudGl0eTogcmVzLmN0eC5nZXRPclVuZGVmaW5lZChcImlkZW50aXR5XCIpIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlYWRUcmFuc2llbnRPdmVycmlkZXMoY3R4KSB7XG4gICAgICAgIGlmICghY3R4LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dDb250ZXh0VHJhbnNpZW50TWFwXCIpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBzdHViID0gY3R4LmdldE9yVW5kZWZpbmVkKFwic3R1YlwiKTtcbiAgICAgICAgaWYgKCFzdHViKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgdHJhbnNpZW50TWFwID0gc3R1Yi5nZXRUcmFuc2llbnQoKTtcbiAgICAgICAgaWYgKCF0cmFuc2llbnRNYXAuaGFzKEZhYnJpY01vZGVsS2V5cy5PVkVSUklERVMpKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgcmF3ID0gdHJhbnNpZW50TWFwLmdldChGYWJyaWNNb2RlbEtleXMuT1ZFUlJJREVTKTtcbiAgICAgICAgaWYgKCFyYXcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShyYXcpLnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIGlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICghdGhpcy5vYnNlcnZlckhhbmRsZXIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk9ic2VydmVySGFuZGxlciBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgcmVnaXN0ZXIgYW55IG9ic2VydmFibGVzP1wiKTtcbiAgICAgICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlT2JzZXJ2ZXJzKTtcbiAgICAgICAgaWYgKGN0eC5pc0Z1bGx5U2VncmVnYXRlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm5vRW1pdFwiKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFjdHguc3R1YilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNCdWxrID0gQXJyYXkuaXNBcnJheShpZCk7XG4gICAgICAgIGNvbnN0IGVtaXRTaW5nbGUgPSAhY3R4LmdldE9yVW5kZWZpbmVkKFwibm9FbWl0U2luZ2xlXCIpO1xuICAgICAgICBjb25zdCBlbWl0QnVsayA9ICFjdHguZ2V0T3JVbmRlZmluZWQoXCJub0VtaXRCdWxrXCIpO1xuICAgICAgICBpZiAoKGlzQnVsayAmJiBlbWl0QnVsaykgfHwgKCFpc0J1bGsgJiYgZW1pdFNpbmdsZSkpIHtcbiAgICAgICAgICAgIC8vIFBhc3MgdGhlIE1TUCBvd25lciBmcm9tIHN0dWIgYW5kIHRoZSByZXN1bHQgcGF5bG9hZCAoaWYgYW55KSBpbiB0aGVcbiAgICAgICAgICAgIC8vIHBvc2l0aW9ucyB0aGUgaGFuZGxlciBleHBlY3RzOiAodGFibGUsIGV2ZW50LCBpZCwgb3duZXI/LCBwYXlsb2FkPywgY3R4KVxuICAgICAgICAgICAgY29uc3QgbXNwSWQgPSBjdHguc3R1Yi5nZXRNc3BJRCA/IGN0eC5zdHViLmdldE1zcElEKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBub25DdHhBcmdzID0gY3R4QXJncy5zbGljZSgwLCAtMSk7IC8vIGV2ZXJ5dGhpbmcgYmVmb3JlIGN0eFxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IG5vbkN0eEFyZ3MubGVuZ3RoID4gMCA/IG5vbkN0eEFyZ3NbMF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9ic2VydmVySGFuZGxlci51cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZCwgbXNwSWQsIHBheWxvYWQsIGN0eCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHBhcnNlRXJyb3IoZXJyKSB7XG4gICAgICAgIC8vIGlmIChcbiAgICAgICAgLy8gICBNSVNTSU5HX1BSSVZBVEVfREFUQV9SRUdFWC50ZXN0KFxuICAgICAgICAvLyAgICAgdHlwZW9mIGVyciA9PT0gXCJzdHJpbmdcIiA/IGVyciA6IGVyci5tZXNzYWdlXG4gICAgICAgIC8vICAgKVxuICAgICAgICAvLyApXG4gICAgICAgIC8vICAgcmV0dXJuIG5ldyBVbmF1dGhvcml6ZWRQcml2YXRlRGF0YUFjY2VzcyhlcnIpIGFzIEU7XG4gICAgICAgIGNvbnN0IG1zZyA9IHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhOb3RGb3VuZEVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQ29uZmxpY3RFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKEJhZFJlcXVlc3RFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoUXVlcnlFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgUXVlcnlFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFBhZ2luZ0Vycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQYWdpbmdFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFVuc3VwcG9ydGVkRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFVuc3VwcG9ydGVkRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhNaWdyYXRpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWlncmF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhPYnNlcnZlckVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZlckVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQXV0aG9yaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBdXRob3JpemF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhGb3JiaWRkZW5FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgRm9yYmlkZGVuRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhDb25uZWN0aW9uRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbm5lY3Rpb25FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFNlcmlhbGl6YXRpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoXCJubyBsZWRnZXIgY29udGV4dFwiKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWlzc2luZ0NvbnRleHRFcnJvcihgTm8gY29udGV4dCBmb3VuZC4gdGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGRlYnVnZ2luZzogJHttc2d9YCk7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3RhdGljIG1ldGhvZCBmb3IgZGVjb3JhdGlvbiBvdmVycmlkZXNcbiAgICAgKiBAc3VtbWFyeSBPdmVycmlkZXMvZXh0ZW5kcyBkZWNhZiBkZWNvcmF0aW9uIHdpdGggRmFicmljLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHlcbiAgICAgKiBAc3RhdGljXG4gICAgICogQG92ZXJyaWRlXG4gICAgICogQHJldHVybiB7dm9pZH1cbiAgICAgKi9cbiAgICBzdGF0aWMgZGVjb3JhdGlvbigpIHtcbiAgICAgICAgc3VwZXIuZGVjb3JhdGlvbigpO1xuICAgICAgICBEZWNvcmF0aW9uLmZsYXZvdXJlZEFzKEZhYnJpY0ZsYXZvdXIpXG4gICAgICAgICAgICAuZm9yKFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKVxuICAgICAgICAgICAgLmRlZmluZSh7XG4gICAgICAgICAgICBkZWNvcmF0b3I6IGZ1bmN0aW9uIGNyZWF0ZWRCeSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwbHkob25DcmVhdGUoY3JlYXRlZEJ5T25GYWJyaWNDcmVhdGVVcGRhdGUpLCBwcm9wTWV0YWRhdGEoUGVyc2lzdGVuY2VLZXlzLkNSRUFURURfQlksIHt9KSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAgICAgLmFwcGx5KCk7XG4gICAgICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgICAgICAgIC5mb3IoUGVyc2lzdGVuY2VLZXlzLlVQREFURURfQlkpXG4gICAgICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgICAgIGRlY29yYXRvcjogZnVuY3Rpb24gY3JlYXRlZEJ5KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHBseShvbkNyZWF0ZVVwZGF0ZShjcmVhdGVkQnlPbkZhYnJpY0NyZWF0ZVVwZGF0ZSksIHByb3BNZXRhZGF0YShQZXJzaXN0ZW5jZUtleXMuVVBEQVRFRF9CWSwge30pKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgICAuYXBwbHkoKTtcbiAgICAgICAgRGVjb3JhdGlvbi5mbGF2b3VyZWRBcyhGYWJyaWNGbGF2b3VyKVxuICAgICAgICAgICAgLmZvcihQZXJzaXN0ZW5jZUtleXMuQ09MVU1OKVxuICAgICAgICAgICAgLmV4dGVuZChGYWJyaWNQcm9wZXJ0eSgpKVxuICAgICAgICAgICAgLmFwcGx5KCk7XG4gICAgICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoRmFicmljRmxhdm91cilcbiAgICAgICAgICAgIC5mb3IoVmFsaWRhdGlvbktleXMuREFURSlcbiAgICAgICAgICAgIC5leHRlbmQoZnVuY3Rpb24gZmFicmljUHJvcGVydHkoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRhcmdldCwgcHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIFByb3BlcnR5KHByb3AsIFwic3RyaW5nOmRhdGVcIikodGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBEZWNvcmF0aW9uLmZsYXZvdXJlZEFzKEZhYnJpY0ZsYXZvdXIpXG4gICAgICAgICAgICAuZm9yKFBlcnNpc3RlbmNlS2V5cy5UQUJMRSlcbiAgICAgICAgICAgIC5leHRlbmQoZnVuY3Rpb24gdGFibGUob2JqKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFpbiA9IFtdO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IE1ldGFkYXRhLmNvbnN0cihvYmopXG4gICAgICAgICAgICAgICAgOiBNZXRhZGF0YS5jb25zdHIob2JqLmNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IE9iamVjdCAmJiBjdXJyZW50LnByb3RvdHlwZSkge1xuICAgICAgICAgICAgICAgIGNoYWluLnB1c2goY3VycmVudCk7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWluLm1hcCgoYykgPT4gYy5uYW1lIHx8IGMpKTtcbiAgICAgICAgICAgIC8vIEFwcGx5IGZyb20gdGhlIGJhc2UgY2xhc3MgZG93biB0byB0aGUgZGVjb3JhdGVkIGNsYXNzXG4gICAgICAgICAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gY2hhaW4ucG9wKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYENhbGxpbmcgb24gJHtjb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgICAgICAgICAgICAgIEZhYnJpY09iamVjdCgpKGNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBGYWJyaWNPYmplY3QoKShvYmopO1xuICAgICAgICB9KVxuICAgICAgICAgICAgLmFwcGx5KCk7XG4gICAgfVxufVxuRmFicmljQ29udHJhY3RBZGFwdGVyLmRlY29yYXRpb24oKTtcbkFkYXB0ZXIuc2V0Q3VycmVudChGYWJyaWNGbGF2b3VyKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVEyOXVkSEpoWTNSQlpHRndkR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZjM0pqTDJOdmJuUnlZV04wY3k5RGIyNTBjbUZqZEVGa1lYQjBaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVTk1MR05CUVdNc1JVRkRaQ3hYUVVGWExFVkJSMWdzZDBKQlFYZENMRVZCUTNoQ0xIVkNRVUYxUWl4SlFVRkpMRFJDUVVFMFFpeEZRVU4yUkN4blFrRkJaMElzUlVGRGFFSXNZVUZCWVN4RlFVTmlMREpDUVVFeVFpeEhRVU0xUWl4TlFVRk5MSFZDUVVGMVFpeERRVUZETzBGQlF5OUNMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzWTBGQll5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRGRrVXNUMEZCVHl4RlFVRkZMRlZCUVZVc1JVRkJSU3hOUVVGTkxGRkJRVkVzUTBGQlF6dEJRVVZ3UXl4UFFVRlBMRVZCUVVVc2NVSkJRWEZDTEVWQlFVVXNOa0pCUVRCQ08wRkJRekZFTEU5QlFVOHNSVUZEVEN4bFFVRmxMRVZCUldZc2NVSkJRWEZDTEVWQlEzSkNMR0ZCUVdFc1JVRkRZaXhoUVVGaExFVkJRMklzWVVGQllTeEZRVU5pTEZGQlFWRXNSVUZEVWl4alFVRmpMRVZCUjJRc2EwSkJRV3RDTEVkQlEyNUNMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZEYWtNc1QwRkJUeXhGUVVWTUxFMUJRVTBzU1VGQlNTeFpRVUZaTEVWQlEzUkNMRkZCUVZFc1JVRkRVaXhSUVVGUkxFbEJRVWtzWTBGQll5eEhRVU16UWl4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlF6ZENMRTlCUVU4c1JVRkJWU3hQUVVGUExFVkJRVVVzVFVGQlRTeHRRa0ZCYlVJc1EwRkJRenRCUVVOd1JDeFBRVUZQTEVWQlEwd3NaVUZCWlN4RlFVbG1MR2RDUVVGblFpeEZRVU5vUWl4UFFVRlBMRVZCU1ZBc1ZVRkJWU3hGUVVOV0xGZEJRVmNzUlVGRFdDeGpRVUZqTEVWQlEyUXNZVUZCWVN4RlFVTmlMR3RDUVVGclFpeEZRVU5zUWl4alFVRmpMRVZCUTJRc1pVRkJaU3hGUVVWbUxFOUJRVThzUlVGVFVDeGpRVUZqTEVWQlEyUXNkMEpCUVhkQ0xFVkJSM2hDTEdWQlFXVXNSVUZEWml4NVFrRkJlVUlzUjBGRE1VSXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc2QwSkJRWGRDTEVWQlFVVXNjME5CUVcxRE8wRkJUM1JGTEU5QlFVOHNSVUZCUlN4bFFVRmxMRVZCUVVVc2NVTkJRV3RETzBGQlF6VkVMRTlCUVU4c1JVRkJSU3h6UWtGQmMwSXNSVUZCUlN4dlEwRkJhVU03UVVGRGJFVXNUMEZCVHl4RlFVRkZMR0ZCUVdFc1JVRkJSU3hsUVVGbExFVkJRVVVzYVVOQlFUUkNPMEZCUTNKRkxFOUJRVThzUlVGQlJTdzJRa0ZCTmtJc1JVRkJSU3h4UkVGQlowUTdRVUZEZUVZc1QwRkJUeXhGUVVOTUxFdEJRVXNzUlVGRlRDeFZRVUZWTEVWQlExWXNVVUZCVVN4RlFVTlNMRmxCUVZrc1IwRkRZaXhOUVVGTkxITkNRVUZ6UWl4RFFVRkRPMEZCUXpsQ0xFOUJRVThzUlVGQlJTeDFRa0ZCZFVJc1JVRkJSU3h4UTBGQmEwTTdRVUZEY0VVc1QwRkJUeXhGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMRGhDUVVGNVFqdEJRVVYyUkN4UFFVRlBMRVZCUVVVc2MwSkJRWE5DTEVWQlFVVXNiME5CUVdsRE8wRkJiVUpzUlRzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVhsQ1J6dEJRVU5JTEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc05rSkJRVFpDTEVOQlRXcEVMRTlCUVhGQ0xFVkJRM0pDTEVsQlFVOHNSVUZEVUN4SFFVRlpMRVZCUTFvc1MwRkJVVHRKUVVWU0xFbEJRVWtzUTBGQlF6dFJRVU5JTEUxQlFVMHNTVUZCU1N4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZ0UWl4RFFVRkRPMUZCUTNaRUxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGdFFpeERRVUZETzFGQlF6TkRMRFpFUVVFMlJEdEpRVU12UkN4RFFVRkRPMGxCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU53UWl4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlEzaENMR2RGUVVGblJTeERRVU5xUlN4RFFVRkRPMGxCUTBvc1EwRkJRenRCUVVOSUxFTkJRVU03UVVGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJiME5ITzBGQlEwZ3NUVUZCVFN4UFFVRlBMSEZDUVVGelFpeFRRVUZSTEdOQlNURkRPMkZCUTNsQ0xEUkNRVUYxUWl4SFFVRkhMR1ZCUVdVc1EwRkJRenRKUVVVeFJDeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRXRCUVdNN1VVRkRNME1zU1VGQlNTeExRVUZMTEV0QlFVc3NTVUZCU1N4SlFVRkpMRTlCUVU4c1MwRkJTeXhMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyaEVMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTXZRaXhEUVVGRE8xRkJSVVFzU1VGQlNTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGVrSXNUMEZCVHl4SlFVRkpMRXRCUVVzN2FVSkJRMklzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YVVKQlEzQkVMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETzFGQlEyeENMRU5CUVVNN1VVRkZSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eExRVUZuUXl4RFFVRkRPMUZCUXpkRExFOUJRVThzU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJRenRoUVVONFFpeEpRVUZKTEVWQlFVVTdZVUZEVGl4SFFVRkhMRU5CUTBZc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVU5PTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeHhRa0ZCY1VJc1EwRkJReXhsUVVGbExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkRPVVU3WVVGRFFTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVOHNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGak8xRkJRM0JETEVsQlFVa3NUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlF6TkNMRTlCUVU4c1MwRkJTeXhEUVVGRE8xRkJRMllzUTBGQlF6dFJRVVZFTEVsQlFVa3NTMEZCU3l4WlFVRlpMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRMmhETEU5QlFVOHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU0xUWl4RFFVRkRPMUZCUlVRc1NVRkJTU3hQUVVGUExFdEJRVXNzUzBGQlN5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTTVRaXhQUVVGUExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4SlFVRkpMRXRCUVVzc1dVRkJXU3hYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU5xUXl4UFFVRlBMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETlVJc1EwRkJRenRSUVVWRUxFbEJRMFVzUzBGQlN6dFpRVU5NTEU5QlFVOHNTMEZCU3l4TFFVRkxMRkZCUVZFN1dVRkRla0lzVVVGQlVTeEpRVUZKTEV0QlFVczdXVUZEYUVJc1MwRkJZU3hEUVVGRExFMUJRVTBzV1VGQldTeFhRVUZYTEVWQlF6VkRMRU5CUVVNN1dVRkRSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eExRVWxpTEVOQlFVTTdXVUZGUml4UFFVRlBMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkROVVVzUTBGQlF6dFJRVVZFTEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGRE1VSXNhVVJCUVdsRUxFMUJRVTBzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkROMFVzUzBGQlN5eERRVU5PTEVWQlFVVXNRMEZEU2l4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhMUVVFd1FqdFJRVU40UkN4TlFVRk5MRkZCUVZFc1IwRkJSenRaUVVObUxGRkJRVkVzUlVGQlJTeExRVUZMTEVOQlFVTXNVVUZCVVN4SlFVRkpMRVZCUVVVN1dVRkRPVUlzU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkJSVHRaUVVOMFFpeE5RVUZOTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hUUVVGVE8xbEJRMnBETEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1UwRkJVeXhKUVVGSkxGTkJRVk03VTBGRGVFTXNRMEZCUXp0UlFVVkdMRTlCUVU4c1ZVRkJWU3hEUVVGRExGRkJRVkVzUTBGQlF6dGhRVU40UWl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yRkJRM1pFTEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRKUVVONlFpeERRVUZETzBsQlJVOHNUVUZCVFN4RFFVRkRMRGhDUVVFNFFpeERRVU16UXl4TFFVRnBRaXhGUVVOcVFpeEhRVUZaTzFGQlJWb3NUVUZCVFN4UlFVRlJMRWRCUVVjc1MwRkJTeXhEUVVGRExGRkJRVEpETEVOQlFVTTdVVUZEYmtVc1RVRkJUU3hUUVVGVExFZEJRVWNzVVVGQlVTeEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMmhFTEVsQlFVa3NUMEZCVHl4VFFVRlRMRXRCUVVzc1VVRkJVU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUTNaRUxFOUJRVTg3VVVGRFZDeERRVUZETzFGQlJVUXNTVUZCU1N4TFFVRnhReXhEUVVGRE8xRkJRekZETEVsQlFVa3NRMEZCUXp0WlFVTklMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCZFVJc1EwRkJRenRSUVVNelJDeERRVUZETzFGQlFVTXNUVUZCVFN4RFFVRkRPMWxCUTFBc1QwRkJUenRSUVVOVUxFTkJRVU03VVVGRlJDeDNRa0ZCZDBJc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlR0WlFVTXhReXh0UWtGQmJVSXNSVUZCUlN4SlFVRkpPMU5CUXpGQ0xFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTTdTVUZGVHl4TlFVRk5MRU5CUVVNc05rSkJRVFpDTEVOQlF6RkRMRkZCUVdsQ0xFVkJRMnBDTEZOQlFUaENMRWxCUVVrc1IwRkJSeXhGUVVGclFqdFJRVVYyUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFOUJRVThzVVVGQlVTeExRVUZMTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUXpsRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNMVFpeExRVUZMTEUxQlFVMHNTMEZCU3l4SlFVRkpMRkZCUVZFc1JVRkJSU3hEUVVGRE8yZENRVU0zUWl4eFFrRkJjVUlzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdXVUZEY2tVc1EwRkJRenRaUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNN1VVRkZSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNTMEZCU3l4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGRGRrTXNVVUZCSzBJc1EwRkRhRU1zUlVGQlJTeERRVUZETzFsQlEwWXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZETTBNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRemxETEVOQlFVTTdXVUZGUkN4SlFVRkpMRXRCUVVzc1NVRkJTU3hQUVVGUExFdEJRVXNzUzBGQlN5eFJRVUZSTEVWQlFVVXNRMEZCUXp0blFrRkRka01zY1VKQlFYRkNMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRM0pGTEVOQlFVTTdVVUZEU0N4RFFVRkRPMUZCUlVRc1QwRkJUeXhOUVVGTkxFTkJRVU03U1VGRGFFSXNRMEZCUXp0SlFVVlBMRTFCUVUwc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4TFFVRmpPMUZCUTJ4RUxFbEJRVWtzUTBGQlF5eExRVUZMTEVsQlFVa3NUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOb1JTeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVTm1MRU5CUVVNN1VVRkZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVRSQ0xFTkJRVU1zUTBGQlF6dFJRVU0zUkN4SlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEZWtJc1QwRkJUeXhMUVVGTExFTkJRVU03VVVGRFppeERRVUZETzFGQlJVUXNUVUZCVFN4RFFVRkRMRkZCUVZFc1JVRkJSU3hMUVVGTExFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja01zVDBGQlR5eERRVUZETEZGQlFWRXNTMEZCU3l4TFFVRkxMRWxCUVVrc1VVRkJVU3hMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEV0QlFVc3NTMEZCU3l4SlFVRkpMRU5CUVVNN1NVRkRka1VzUTBGQlF6dEpRVVZQTEUxQlFVMHNRMEZCUXl3clFrRkJLMElzUTBGRE5VTXNTMEZCYVVJN1VVRkZha0lzVFVGQlRTeFZRVUZWTEVkQlFXVTdXVUZETjBJc1IwRkJSeXhMUVVGTE8xbEJRMUlzVVVGQlVTeEZRVU5PTEV0QlFVc3NRMEZCUXl4UlFVRlJMRWxCUVVrc1QwRkJUeXhMUVVGTExFTkJRVU1zVVVGQlVTeExRVUZMTEZGQlFWRTdaMEpCUTJ4RUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVkQlFVa3NTMEZCU3l4RFFVRkRMRkZCUVdkRExFVkJRVVU3WjBKQlEyaEVMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVUdFRRVU55UWl4RFFVRkRPMUZCUlVZc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFJRVUZSTEVsQlFVa3NUMEZCVHl4VlFVRlZMRU5CUVVNc1VVRkJVU3hMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzQkZMRTlCUVU4c1ZVRkJWU3hEUVVGRE8xRkJRM0JDTEVOQlFVTTdVVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXh4UWtGQmNVSXNRMEZCUXl3MlFrRkJOa0lzUTBGRGFFVXNWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkRjRUlzUTBGQlF6dFJRVVZHTEV0QlFVc3NUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVTjZReXhWUVVGVkxFTkJRVU1zVVVGQkswSXNRMEZETTBNc1JVRkJSU3hEUVVGRE8xbEJRMFlzU1VGRFJTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRGNFUXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkROMElzUTBGQlF6dG5Ra0ZEUkN4VFFVRlRPMWxCUTFnc1EwRkJRenRaUVVWRUxFOUJRVkVzVlVGQlZTeERRVUZETEZGQlFXZERMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE4wUXNRMEZCUXp0UlFVVkVMRTlCUVU4c1ZVRkJWU3hEUVVGRE8wbEJRM0JDTEVOQlFVTTdTVUZGVHl4TlFVRk5MRU5CUVVNc1owTkJRV2RETEVOQlF6ZERMRkZCUVRaQ0xFVkJRemRDTEZOQlFXbENMRVZCUTJwQ0xGTkJRWGxDTEVWQlEzcENMRTlCUVdVc1JVRkRaaXhUUVVGakxFVkJRMlFzVFVGQll5eEZRVU5rTEU5QlFYZENPMUZCUlhoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEZOQlFWTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTJwRUxFMUJRVTBzUzBGQlN5eEhRVUZITEZOQlFWTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUlc1RUxFbEJRVWtzVDBGQlR5eExRVUZMTEZOQlFWTXNSVUZCUlN4RFFVRkRPMWxCUXpGQ0xFMUJRVTBzV1VGQldTeEhRVUZITzJkQ1FVTnVRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTzI5Q1FVTllMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzVTBGQlV6dHBRa0ZEYWtJN1lVRkRSaXhEUVVGRE8xbEJSVVlzU1VGQlNTeERRVUZETEZGQlFWRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1owSkJReTlETEU5QlFVOHNXVUZCV1N4RFFVRkRPMWxCUTNSQ0xFTkJRVU03V1VGRlJDeFBRVUZQTzJkQ1FVTk1MRWxCUVVrc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeFpRVUZaTEVOQlFVTTdZVUZETDBJc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeE5RVUZOTEU5QlFVOHNSMEZEV0N4UFFVRlBMRXRCUVVzc1RVRkJUVHRaUVVOb1FpeERRVUZETEVOQlFVTTdaMEpCUTBVN2IwSkJRMFVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSVUZCUlR0M1FrRkRXQ3hIUVVGSExFVkJRVVVzVTBGQlV6dHhRa0ZEWmp0cFFrRkRSanRuUWtGRFJEdHZRa0ZEUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRk8zZENRVU5VTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1RVRkJUVHR4UWtGRGFFSTdhVUpCUTBZN1lVRkRSanRaUVVOSUxFTkJRVU1zUTBGQlF6dG5Ra0ZEUlR0dlFrRkRSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTzNkQ1FVTllMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzVTBGQlV6dHhRa0ZEYWtJN2FVSkJRMFk3WVVGRFJpeERRVUZETzFGQlJWSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGREwwTXNUMEZCVHl4UFFVRlBMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU03WjBKQlEzcENMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTmFMRU5CUVVNc1EwRkJRenR2UWtGRFJTeEpRVUZKTEVWQlFVVXNUMEZCVHp0cFFrRkRaQ3hEUVVGRE8xRkJRMUlzUTBGQlF6dFJRVVZFTEU5QlFVODdXVUZEVEN4SlFVRkpMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdVMEZETjBJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlR5eE5RVUZOTEVOQlFVTXNiME5CUVc5RExFTkJRMnBFTEV0QlFXbENMRVZCUTJwQ0xFMUJRV2RETEVWQlEyaERMRkZCUVdkQ08xRkJSV2hDTEUxQlFVMHNVMEZCVXl4SFFVRjNRaXhGUVVGRkxFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEY0VRc1QwRkJUeXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETzFGQlEzUkNMRTlCUVU4c1UwRkJVeXhEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU14UWl4UFFVRlBMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU03VVVGRmRrSXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhMUVVGTExFMUJRVTBzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0WlFVTjRReXhOUVVGTkxFMUJRVTBzUjBGQlpUdG5Ra0ZEZWtJc1IwRkJSeXhUUVVGVE8yZENRVU5hTEZGQlFWRXNSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eG5RMEZCWjBNc1EwRkRPVVFzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4SlFVRkpMRVZCUVVVc1EwRkJkMElzUlVGRGFrUXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkRhRUlzVFVGQlRTeERRVUZETEZOQlFWTXNSVUZEYUVJc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGRFpDeE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVTm9RaXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVU5pTEUxQlFVMHNRMEZEUVR0blFrRkRVaXhMUVVGTExFVkJRVVVzVVVGQlVTeEhRVUZITEVOQlFVTTdZVUZEY0VJc1EwRkJRenRaUVVWR0xFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTnNRaXhEUVVGRE8xRkJSVVFzVFVGQlRTeExRVUZMTEVkQlFXVTdXVUZEZUVJc1IwRkJSeXhUUVVGVE8xbEJRMW9zVVVGQlVTeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExHZERRVUZuUXl4RFFVTTVSQ3hEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVsQlFVa3NSVUZCUlN4RFFVRjNRaXhGUVVOcVJDeE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVTm9RaXhOUVVGTkxFTkJRVU1zVTBGQlV5eEZRVU5vUWl4TlFVRk5MRU5CUVVNc1QwRkJUeXhGUVVOa0xFMUJRVTBzUTBGQlF5eFRRVUZUTEVWQlEyaENMRTFCUVUwc1EwRkJReXhOUVVGTkxFVkJRMklzVFVGQlRTeERRVU5CTzFsQlExSXNTMEZCU3l4RlFVRkZMRkZCUVZFc1IwRkJSeXhEUVVGRE8xTkJRM0JDTEVOQlFVTTdVVUZGUml4TlFVRk5MRTFCUVUwc1IwRkJaVHRaUVVONlFpeEhRVUZITEZOQlFWTTdXVUZEV2l4UlFVRlJMRVZCUVVVc2NVSkJRWEZDTEVOQlFVTXNaME5CUVdkRExFTkJRemxFTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1NVRkJTU3hGUVVGRkxFTkJRWGRDTEVWQlEycEVMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRMmhDTEUxQlFVMHNRMEZCUXl4VFFVRlRMRVZCUTJoQ0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVWQlEyUXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkRhRUlzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZEWWl4TlFVRk5MRU5CUTBFN1dVRkRVaXhMUVVGTExFVkJRVVVzVVVGQlVTeEhRVUZITEVOQlFVTTdVMEZEY0VJc1EwRkJRenRSUVVWR0xFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRla0lzUTBGQlF6dEpRVVZQTEUxQlFVMHNRMEZCUXl3NFFrRkJPRUlzUTBGRE0wTXNTMEZCYVVJc1JVRkRha0lzVlVGQmEwSTdVVUZOYkVJc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOeVJDeE5RVUZOTEVsQlFVa3NWMEZCVnl4RFFVTnVRaXh0U0VGQmJVZ3NRMEZEY0Vnc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEV0QlFVc3NRMEZCUXp0WlFVTjRReXhqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZ0UWl4RFFVRkRPMUZCUTNoRExEUkNRVUUwUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZGTTBRc1RVRkJUU3hWUVVGVkxFZEJRVWNzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNoRExFMUJRVTBzVTBGQlV5eEhRVUZITEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOb1F5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxFbEJRVWtzVjBGQlZ5eERRVU51UWl3MlJFRkJOa1FzUTBGRE9VUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRM0pETEUxQlFVMHNTVUZCU1N4WFFVRlhMRU5CUTI1Q0xEWkVRVUUyUkN4VlFVRlZMRWxCUVVrc1EwRkROVVVzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4UFFVRlBPMWxCUTB3c1UwRkJVenRaUVVOVUxGTkJRVk1zUlVGQlJTeFRRVUV5UWp0WlFVTjBReXhQUVVGUExFVkJRVVVzVlVGQlZUdFRRVU53UWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWUExFMUJRVTBzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhMUVVGaE8xRkJRMnhFTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlJXeEVMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzVDBGQlR5eE5RVUZOTEV0QlFVc3NVVUZCVVN4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXp0blFrRkRia1VzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl3eVEwRkJNa01zUTBGQlF5eERRVUZETzFsQlF5OUVMRU5CUVVNN1dVRkZSQ3hQUVVGUExFMUJRVFpDTEVOQlFVTTdVVUZEZGtNc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEV0N4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMR2xGUVVGcFJTeERRVUZETEVWQlFVVXNRMEZEY2tVc1EwRkJRenRSUVVOS0xFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVOHNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXc0UWtGQk9FSXNRMEZEYWtRc1NVRkJiVUlzUlVGRGJrSXNWVUZCYTBJc1JVRkRiRUlzVDBGQmNVSXNSVUZEY2tJc1VVRkJaMElzUlVGRGFFSXNSMEZCVnp0UlFVVllMRTFCUVUwc1MwRkJTeXhIUVVFd1F5eEZRVUZGTEVOQlFVTTdVVUZGZUVRc1MwRkJTeXhOUVVGTkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTjRRaXhKUVVGSkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVsQlFVa3NVVUZCVVN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU5xUXl4TlFVRk5PMWxCUTFJc1EwRkJRenRaUVVWRUxFMUJRVTBzVTBGQlV5eEhRVUZITEZGQlFWRXNSMEZCUnl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dFpRVVU1UXl4TlFVRk5MR2xDUVVGcFFpeEhRVUZsTzJkQ1FVTndReXhIUVVGSExFTkJRVU03WjBKQlEwb3NTMEZCU3l4RlFVRkZMRk5CUVZNN1lVRkRha0lzUTBGQlF6dFpRVVZHTEU5QlFVOHNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeERRVUZETzFsQlF6bENMRTlCUVU4c2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RFFVRkRPMWxCUld4RExFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0WlFVVndSQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTEN0Q1FVRXJRaXhWUVVGVkxITkNRVUZ6UWl4VFFVRlRMRVZCUVVVc1EwRkRNMFVzUTBGQlF6dFpRVVZHTEVsQlFVa3NVVUZCYVVJc1EwRkJRenRaUVVWMFFpeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEhsQ1FVRjVRaXhEUVVGRExGVkJRVlVzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0WlFVTjZSU3hEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUR0dlFrRkRSU3h6UTBGQmMwTTdiMEpCUTNSRExHTkJRV01zVlVGQlZTeEZRVUZGTzI5Q1FVTXhRaXhUUVVGVExGTkJRVk1zUlVGQlJUdHZRa0ZEY0VJc1UwRkJVeXhEUVVGRExGbEJRVmtzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdHBRa0ZEYWtVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlEySXNRMEZCUXp0blFrRkZSaXhOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU5XTEVOQlFVTTdXVUZGUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRkxGRkJRV2RDTEVOQlFVTXNVVUZCVVR0blFrRkRNVU1zVVVGQlVTeERRVUZwUXl4RFFVRkRPMWxCUlRWRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVa3NUMEZCVHl4UlFVRlJMRU5CUVVNc1NVRkJTU3hMUVVGTExGVkJRVlVzUlVGQlJTeERRVUZETzJkQ1FVTnlSQ3hOUVVGTkxFbEJRVWtzVlVGQlZTeERRVU5zUWl4NVEwRkJlVU1zVlVGQlZTeHJRMEZCYTBNc1EwRkRkRVlzUTBGQlF6dFpRVU5LTEVOQlFVTTdXVUZGUkN4SlFVRkpMRU5CUVVNN1owSkJRMGdzVDBGQlR5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dHZRa0ZEYmtNc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN2IwSkJSV3hETEVsQlFVa3NSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8zZENRVU5pTEUxQlFVMDdiMEpCUTFJc1EwRkJRenR2UWtGRlJDeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN2QwSkJRMjVETEZOQlFWTTdiMEpCUTFnc1EwRkJRenR2UWtGRlJDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRPM2RDUVVOVUxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVdFN2QwSkJRelZDTEV0QlFVc3NSVUZCUlN4eFFrRkJjVUlzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03Y1VKQlEzWkVMRU5CUVVNc1EwRkJRenRuUWtGRFRDeERRVUZETzFsQlEwZ3NRMEZCUXp0WlFVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03WjBKQlEzQkNMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUE3YjBKQlEwVXNOa05CUVRaRE8yOUNRVU0zUXl4alFVRmpMRlZCUVZVc1JVRkJSVHR2UWtGRE1VSXNVMEZCVXl4VFFVRlRMRVZCUVVVN2IwSkJRM0JDTEZOQlFWTXNRMEZCUXl4WlFVRlpMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN2FVSkJRMnBGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVOaUxFTkJRVU03WjBKQlJVWXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRWaXhEUVVGRE8yOUNRVUZUTEVOQlFVTTdaMEpCUTFRc1NVRkJTU3hEUVVGRE8yOUNRVU5JTEUxQlFVMHNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8yZENRVU42UWl4RFFVRkRPMmRDUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdiMEpCUTNCQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlExQTdkMEpCUTBVc2QwTkJRWGRETzNkQ1FVTjRReXhqUVVGakxGVkJRVlVzUlVGQlJUdDNRa0ZETVVJc1UwRkJVeXhUUVVGVExFVkJRVVU3ZDBKQlEzQkNMRk5CUVZNc1EwRkJReXhaUVVGWkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3Y1VKQlEycEZMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVU5pTEVOQlFVTTdiMEpCUlVZc05rTkJRVFpETzI5Q1FVTTNReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZEVml4RFFVRkRPMWxCUTBnc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeFBRVUZQTEV0QlFVc3NRMEZCUXp0SlFVTm1MRU5CUVVNN1NVRkZUeXhOUVVGTkxFTkJRVU1zTUVKQlFUQkNMRU5CUTNaRExFbEJRVEpETEVWQlF6TkRMRkZCUVdkQ08xRkJVV2hDTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVWYUxFMUJRVTBzVVVGQlVTeEhRVUZITzFsQlEyWXNTMEZCU3l4RFFVRkRMRWxCUVVrN1owSkJRMUlzU1VGQlNTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8yOUNRVU4wUWl4UFFVRlBPM2RDUVVOTUxFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN2QwSkJRMnhDTEVsQlFVa3NSVUZCUlN4TFFVRkxPM0ZDUVVOYUxFTkJRVU03WjBKQlEwb3NRMEZCUXp0blFrRkZSQ3hQUVVGUE8yOUNRVU5NTEV0QlFVc3NSVUZCUlN4VFFVRm5RanR2UWtGRGRrSXNTVUZCU1N4RlFVRkZMRWxCUVVrN2FVSkJRMWdzUTBGQlF6dFpRVU5LTEVOQlFVTTdXVUZEUkN4TFFVRkxMRU5CUVVNc1MwRkJTeXhMUVVGSkxFTkJRVU03VTBGRGFrSXNRMEZCUXp0UlFVVkdMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzVVVGQmJVUTdXVUZETjBRc1VVRkJVU3hGUVVGRk8yZENRVU5TTEcxQ1FVRnRRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTzJkQ1FVTm9ReXhSUVVGUk8yRkJRMVE3VTBGRFJpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVlBMRTFCUVUwc1EwRkJReXcyUWtGQk5rSXNRMEZETVVNc1VVRkJhVUk3VVVGRmFrSXNTVUZCU1N4UFFVRlBMRkZCUVZFc1MwRkJTeXhSUVVGUk8xbEJRVVVzVDBGQlR5eFRRVUZUTEVOQlFVTTdVVUZEYmtRc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFZRVUZWTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNN1dVRkRja1VzVDBGQlR5eFRRVUZUTEVOQlFVTTdVVUZEYmtJc1RVRkJUU3hIUVVGSExFZEJRVWNzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZEZUVJc2NVSkJRWEZDTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zVFVGQlRTeERRVU55UkN4RFFVRkRPMUZCUTBZc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSU3hKUVVORkxFTkJRVU1zVFVGQlRUdG5Ra0ZEVUN4UFFVRlBMRTFCUVUwc1MwRkJTeXhSUVVGUk8yZENRVU14UWl4UFFVRlBMRTFCUVUwc1EwRkJReXhUUVVGVExFdEJRVXNzVVVGQlVUdG5Ra0ZEY0VNc1QwRkJUeXhOUVVGTkxFTkJRVU1zVTBGQlV5eExRVUZMTEZGQlFWRTdaMEpCUTNCRExFOUJRVThzVFVGQlRTeERRVUZETEU5QlFVOHNTMEZCU3l4UlFVRlJPMmRDUVVOc1F5eFBRVUZQTEUxQlFVMHNRMEZCUXl4TlFVRk5MRXRCUVVzc1VVRkJVVHRuUWtGRGFrTXNUMEZCVHl4TlFVRk5MRU5CUVVNc1UwRkJVeXhMUVVGTExGRkJRVkVzUlVGRGNFTXNRMEZCUXp0blFrRkRSQ3hQUVVGUExGTkJRVk1zUTBGQlF6dFpRVU51UWl4RFFVRkRPMWxCUTBRc1QwRkJUenRuUWtGRFRDeFRRVUZUTEVWQlFVVXNUVUZCVFN4RFFVRkRMRk5CUVZNN1owSkJRek5DTEZOQlFWTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1UwRkJVeXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTE8yZENRVU4yUkN4UFFVRlBMRVZCUVVVc1RVRkJUU3hEUVVGRExFOUJRVTg3WjBKQlEzWkNMRk5CUVZNc1JVRkJSeXhOUVVGakxFTkJRVU1zVTBGQlV6dG5Ra0ZEY0VNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eE5RVUZOTzJkQ1FVTnlRaXhUUVVGVExFVkJRVVVzVFVGQlRTeERRVUZETEZOQlFWTTdZVUZETlVJc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGQlF5eE5RVUZOTEVOQlFVTTdXVUZEVUN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVOdVFpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRTFCUVUwc1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4TlFVODFRenRSUVVORExFOUJRVThzUjBGQlJ5eHhRa0ZCY1VJc1EwRkJReXgxUWtGQmRVSXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVOdVJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVOMlFpeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRelZDTEVOQlFVTTdTVUZGYTBJc1UwRkJVenRSUVVNeFFpeE5RVUZOTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU1zTmtOQlFUWkRMRU5CUVVNc1EwRkJRenRKUVVNMVJTeERRVUZETzBsQlEwUTdPMDlCUlVjN1lVRkRXU3huUWtGQlZ5eEhRVUZITEVsQlFVa3NWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8yRkJSVE5DTEdWQlFWVXNSMEZCUnl4SlFVRkpMRFpDUVVFMlFpeEZRVUZGTEVOQlFVTTdTVUZGTTBVN096dFBRVWRITzBsQlEwZ3NTVUZCZFVJc1QwRkJUenRSUVVNMVFpeFBRVUZQTEhGQ1FVRnhRaXhEUVVGRE8wbEJReTlDTEVOQlFVTTdTVUZEUkRzN096czdUMEZMUnp0SlFVTk5MRlZCUVZVN1VVRk5ha0lzVDBGQlR5eDNRa0ZCY1VRc1EwRkJRenRKUVVNdlJDeERRVUZETzBsQlJWRXNVMEZCVXl4RFFVTm9RaXhMUVVGcFFpeEZRVU5xUWl4SlFVRlpMRVZCUTFvc1MwRkJjVUk3VVVGRmNrSXNUMEZCVHl4SlFVRkpMSFZDUVVGMVFpeERRVUZETEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF5OUVMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFYZENPMUZCUXpsRExFOUJRVThzU1VGQlNTeHpRa0ZCYzBJc1EwRkJReXhQUVVGUExFVkJRVVVzU1VGQlZ5eERRVUZETEVOQlFVTTdTVUZETVVRc1EwRkJRenRKUVVWclFpeFJRVUZSTzFGQlEzcENMRTlCUVU4c1NVRkJTU3h6UWtGQmMwSXNSVUZCUlN4RFFVRkRPMGxCUTNSRExFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5JTEZsQlFWa3NTMEZCVnl4RlFVRkZMRXRCUVdNN1VVRkRja01zUzBGQlN5eERRVUZETEV0QlFVc3NSVUZCUlN4aFFVRmhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVlJMRWRCUVVjc1EwRkJReXhOUVVGdlFpeEZRVUZGTEVkQlFVY3NTVUZCVXp0UlFVTTNReXhQUVVGUExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNFTXNRMEZCUXp0SlFVVlRMR2RDUVVGblFpeERRVUZyUWl4TFFVRnhRanRSUVVNdlJDeE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRM1JDTEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkRPVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRWQ3hKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFWa3NRMEZCUXl4TFFVRkxMRmRCUVZjN1owSkJRM2hETEVkQlFVY3NRMEZCUXl4RFFVRlpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQldTeERRVUZETEVOQlFVTTdXVUZEZEVNc1QwRkJUeXhIUVVGSExFTkJRVU03VVVGRFlpeERRVUZETEVWQlEwUXNSVUZCTUVJc1EwRkRNMElzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkRzN096czdPenM3TzA5QlUwYzdTVUZEVFN4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVOdVFpeExRVUZ4UWl4RlFVTnlRaXhGUVVGclFpeEZRVU5zUWl4TFFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFXdEVPMUZCUlhKRUxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3clFrRkJLMElzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTm9SQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM3BETEUxQlFVMHNWMEZCVnl4SFFVRkhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONlJTeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNhMEpCUVd0Q0xFTkJSV3BFTEVOQlFVTTdVVUZEWkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhIUVVGSExFTkJRVU1zYVVKQlFXbENMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVVnVSU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenRaUVVOMFFpeEpRVUZKTEZGQlFXRXNRMEZCUXp0WlFVTnNRaXhKUVVGSkxFTkJRVU03WjBKQlEwZ3NVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRjRVFzUTBGQlF6dFpRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEhkRFFVRjNRenRuUWtGRGVFTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlZTeERRVUZETEVOQlFVTTdaMEpCUTJoRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4aFFVRmhMRU5CUVVNN2IwSkJRVVVzVFVGQlRTeERRVUZETEVOQlFVTTdXVUZETjBNc1EwRkJRenRaUVVORUxFbEJRVWtzVVVGQlVUdG5Ra0ZEVml4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpeHJRa0ZCYTBJc1JVRkJSU3hoUVVGaExGTkJRVk1zYVVKQlFXbENMRU5CUXpWRUxFTkJRVU03VVVGRFRpeERRVUZETzFGQlJVUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1UwRkJVeXhyUWtGQmEwSXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVVM1JDeEpRVUZKTEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03WjBKQlEzSkNMRXRCUVVzc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlEzUkVMRmRCUVZjc1JVRkRXQ3hMUVVGTExFVkJRMHdzUjBGQlJ5eERRVU5LTEVOQlFVTTdXVUZEU2l4RFFVRkRPMmxDUVVGTkxFTkJRVU03WjBKQlEwNHNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU01UXl3MlEwRkJOa003WjBKQlF6ZERMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dHZRa0ZEY2tJc1NVRkRSU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTzNkQ1FVTTVRaXhKUVVGSkxFTkJRVU1zUzBGQlN5eFhRVUZYTEVOQlFVTXNTMEZCU3pzMFFrRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF6dDNRa0ZETVVNc1QwRkJUeXhEUVVGRExFTkJRMDRzVVVGQlVUczBRa0ZEVWl4RFFVRkRMRWxCUVVrc1VVRkJVVHMwUWtGRFlpeFJRVUZSTEVOQlFVTXNRMEZCV1N4RFFVRkRMRXRCUVVzc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVU53UXl4RFFVRkRPMjlDUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMDdkMEpCUlZRc1MwRkJTeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTjZSQ3hEUVVGRE8yZENRVVZFTERKQ1FVRXlRanRuUWtGRE0wSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8yZENRVU51UkN4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8yOUNRVU5VTEV0QlFVc3NUVUZCVFN4VlFVRlZMRWxCUVVrc1NVRkJTU3hGUVVGRkxFTkJRVU03ZDBKQlF6bENMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRMWdzUzBGQlN5eEZRVU5NTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlEzaERMRmRCUVZjc1JVRkRXQ3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNSVUZCVXl4RFFVRkRMRVZCUXpOQ0xFZEJRVWNzUTBGRFNpeERRVU5HTEVOQlFVTTdiMEpCUTBvc1EwRkJRenRuUWtGRFNDeERRVUZETzFsQlEwZ3NRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkNMRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEWml4RFFVRkRPMGxCUlZFc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGRGRFSXNVMEZCZVVJc1JVRkRla0lzUlVGQmIwSXNSVUZEY0VJc1MwRkJORUlzUlVGRE5VSXNSMEZCUnl4SlFVRXlRenRSUVVVNVF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TlFVRk5MRXRCUVVzc1MwRkJTeXhEUVVGRExFMUJRVTA3V1VGRE5VSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXd3UTBGQk1FTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRek5FTEUxQlFVMHNWVUZCVlN4SFFVRkhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZET1VNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXl4TlFVRk5MRmxCUVZrc1ZVRkJWU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU12UkN4UFFVRlBMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRMmhDTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZETVVVc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTAwc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGRGFrSXNTMEZCY1VJc1JVRkRja0lzUlVGQmEwSXNSVUZEYkVJc1IwRkJSeXhKUVVGclJEdFJRVVZ5UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETERaQ1FVRTJRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6bERMRTFCUVUwc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkZla01zVFVGQlRTeFhRVUZYTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNwRkxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eHJRa0ZCYTBJc1EwRkZha1FzUTBGQlF6dFJRVU5rTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zVVVGQlVTeERRVUYzUWl4RFFVRkRPMUZCUTNKRkxFbEJRVWtzVVVGQlVTeEpRVUZKTEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03V1VGRGFrTXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFOUJRVThzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVTjBSQ3hYUVVGWExFVkJRMWdzUjBGQlJ5eERRVU5LTEVOQlFVTTdXVUZEU2l4RFFVRkRPMWxCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dG5Ra0ZEY0VJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFWVXNRMEZCUXl4RFFVRkRPMWxCUTNCRExFTkJRVU03YjBKQlFWTXNRMEZCUXp0blFrRkRWQ3hIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFXVXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRGNFTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhyUWtGQmVVSXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRaUVVOb1JDeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVVkVMRWxCUVVrc1MwRkJNRUlzUTBGQlF6dFJRVVV2UWl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hMUVVGTExFZEJRVWNzUjBGQlJ5eERRVUZETEdsQ1FVRnBRanRuUWtGRE0wSXNRMEZCUXl4RFFVRkRMRVZCUVVVN1owSkJRMG9zUTBGQlF5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETjBNc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdXVUZEY0VJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFWVXNRMEZCUXl4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJVenRaUVVOMFF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUTI1RExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNjMEpCUVhOQ0xFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTTdVMEZEZUVNc1EwRkJReXhEUVVGRE8xRkJRMGdzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4bFFVRmxMRVZCUVVVc1EwRkJRenRaUVVOc1F5eEpRVUZKTEVOQlFVTTdaMEpCUTBnc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGRFdDeExRVUZMTEVWQlEwd3NUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRM1pFTEVOQlFVTTdXVUZEU2l4RFFVRkRPMWxCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dG5Ra0ZEY0VJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRlZMRU5CUVVNc1EwRkJRenRuUWtGRE0wTXNTVUZCU1N4TlFVRk5MRmxCUVZrc1lVRkJZVHR2UWtGQlJTeFRRVUZUTzJkQ1FVTTVReXhOUVVGTkxFMUJRVTBzUTBGQlF6dFpRVU5tTEVOQlFVTTdVVUZEU0N4RFFVRkRPMUZCUTBRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGREwwSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzYTBKQlFXdENMRVZCUVVVc1lVRkJZU3hUUVVGVExHbENRVUZwUWl4RFFVTTFSQ3hEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVU5FTEU5QlFVOHNTMEZCU3l4RFFVRkRPMGxCUTJZc1EwRkJRenRKUVVWRU96czdPenM3TzA5QlQwYzdTVUZEVFN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVOd1FpeExRVUZ4UWl4RlFVTnlRaXhGUVVGdlFpeEZRVU53UWl4SFFVRkhMRWxCUVd0RU8xRkJSWEpFTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzSkVMRTFCUVUwc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRla01zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhOUVVGTkxGbEJRVmtzVTBGQlV5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zTkVKQlFUUkNMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU03VVVGRE0wVXNUVUZCVFN4bFFVRmxMRWRCUVVjc1EwRkJReXh2UWtGQmIwSXNRMEZCUXp0UlFVVTVReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zYTBKQlFXdENMRU5CUldwRUxFTkJRVU03VVVGRFpDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExGRkJRVkVzUTBGQmQwSXNRMEZCUXp0UlFVVnlSU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eExRVUZMTEVWQlEzUkNMRXRCUVhGQ0xFVkJRM0pDTEVWQlFXdENMRVZCUTJ4Q0xFZEJRVWNzU1VGQmEwUXNSVUZEY2tRc1JVRkJSVHRaUVVOR0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJN1owSkJRMjVDTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc01rTkJRVEpETEVOQlFVTXNRMEZCUXp0WlFVTjZSU3hKUVVGSkxFTkJRVU03WjBKQlEwZ3NUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYmtRc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5dzJRa0ZCTmtJc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZET1VNc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRmVrTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFVkJRVVU3YjBKQlEzcEVMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU03YVVKQlExZ3NRMEZCUXl4RFFVRkRPMmRDUVVWSUxFOUJRVThzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNVMEZCVXl4RFFVTjBSQ3hYUVVGWExFVkJRMWdzUjBGQlJ5eERRVU5LTEVOQlFVTTdXVUZEU2l4RFFVRkRPMWxCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dG5Ra0ZEY0VJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFWVXNRMEZCUXl4RFFVRkRPMWxCUTNCRExFTkJRVU03VVVGRFNDeERRVUZETEVOQlFVTTdVVUZGUml4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVTnNRaXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUTFZc1VVRkJVU3hKUVVGSkxHZENRVUZuUWp0blFrRkRNVUlzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZEVWl4TFFVRkxMRVZCUTB3c1EwRkJReXhGUVVORUxFZEJRVWNzU1VGQlNTeEZRVU5PTEVkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3haUVVGWkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZET1VNN1owSkJRMGdzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUTFBc1MwRkJTeXhGUVVOTUxFTkJRVU1zUlVGRFJDeEhRVUZITEVsQlFVa3NSVUZEVGl4SFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUXpsRExFTkJRMUlzUTBGQlF6dFpRVVZHTEUxQlFVMHNVMEZCVXl4SFFVRkhMR1ZCUVdVN1owSkJReTlDTEVOQlFVTXNRMEZCUXl4TlFVRk5MR1ZCUVdVc1EwRkJReXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETzJkQ1FVTndReXhEUVVGRExFTkJRVU1zVFVGQlRTeGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkRha01zVDBGQlR5eDVRa0ZCZVVJc1EwRkRPVUlzVTBGQlV5eEZRVU5VTEdWQlFXVXNSVUZEWml4SFFVRkhMRVZCUTBnc2NVSkJRWEZDTEVOQlFVTXNVVUZCVVN4RFFVTXZRaXhEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRXQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dG5Ra0ZCVXl4RFFVRkRPMWxCUTFRc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZsTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1dVRkRjRU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4clFrRkJlVUlzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTm9SQ3hEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdPenM3VDBGVFJ6dEpRVU5OTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUTI1Q0xFdEJRWEZDTEVWQlEzSkNMRVZCUVd0Q0xFVkJRMnhDTEV0QlFUQkNMRVZCUXpGQ0xFZEJRVWNzU1VGQmEwUTdVVUZGY2tRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZjRVFzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTFReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEN0Q1FVRXJRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEyaEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRla01zVFVGQlRTeFhRVUZYTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNwRkxFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eHJRa0ZCYTBJc1EwRkZha1FzUTBGQlF6dFJRVVZrTEVsQlFVa3NRMEZCUXp0WlFVTklMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRk5CUVZNc2EwSkJRV3RDTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkZMMFFzU1VGQlNTeG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE8yZENRVU55UWl4TFFVRkxMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVU4wUkN4WFFVRlhMRVZCUTFnc1MwRkJTeXhGUVVOTUxFZEJRVWNzUTBGRFNpeERRVUZETzFsQlEwb3NRMEZCUXp0cFFrRkJUU3hEUVVGRE8yZENRVU5PTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRE9VTXNjVUpCUVhGQ08yZENRVU55UWl4SlFVTkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVU3YjBKQlF6bENMRWxCUVVrc1EwRkJReXhMUVVGTExGZEJRVmNzUTBGQlF5eExRVUZMTzNkQ1FVRkZMRTlCUVU4c1MwRkJTeXhEUVVGRE8yOUNRVU14UXl4UFFVRlBMRU5CUVVNc1EwRkRUaXhSUVVGUk8zZENRVU5TTEVOQlFVTXNTVUZCU1N4UlFVRlJPM2RDUVVOaUxGRkJRVkVzUTBGQlF5eERRVUZaTEVOQlFVTXNTMEZCU3l4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRM0JETEVOQlFVTTdaMEpCUTBvc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRUdHZRa0ZGVkN4TFFVRkxMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NSVUZCUlN4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03WjBKQlJYWkVMREpDUVVFeVFqdG5Ra0ZETTBJc1RVRkJUU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzJkQ1FVTnVSQ3hKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETzI5Q1FVTlVMRXRCUVVzc1RVRkJUU3hWUVVGVkxFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTTdkMEpCUXpsQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlExZ3NTMEZCU3l4RlFVTk1MRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUTNoRExGZEJRVmNzUlVGRFdDeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1JVRkJVeXhEUVVGRExFVkJRek5DTEVkQlFVY3NRMEZEU2l4RFFVTkdMRU5CUVVNN2IwSkJRMG9zUTBGQlF6dG5Ra0ZEU0N4RFFVRkRPMWxCUTBnc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFMUJRVTBzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRlZMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSVVE3T3pzN096czdUMEZQUnp0SlFVTklMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMVlzUzBGQmNVSXNSVUZEY2tJc1JVRkJhMElzUlVGRGJFSXNSMEZCUnl4SlFVRnJSRHRSUVVWeVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVZ3UkN4SlFVRkpMRU5CUVVNc01FSkJRVEJDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRelZETEUxQlFVMHNVMEZCVXl4SFFVRkhMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZGZWtNc1RVRkJUU3hYUVVGWExFZEJRVWNzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzcEZMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhyUWtGQmEwSXNRMEZGYWtRc1EwRkJRenRSUVVOa0xFbEJRVWtzUzBGQk1FSXNRMEZCUXp0UlFVVXZRaXhKUVVGSkxHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1dVRkRja0lzU1VGQlNTeERRVUZETzJkQ1FVTklMRXRCUVVzc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlEzWkVMRmRCUVZjc1JVRkRXQ3hIUVVGSExFTkJRMG9zUTBGQlF6dG5Ra0ZEUml4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNoRkxFTkJRVU03V1VGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMmRDUVVOd1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJWU3hEUVVGRExFTkJRVU03V1VGRGNFTXNRMEZCUXp0UlFVTklMRU5CUVVNN1lVRkJUU3hEUVVGRE8xbEJRMDRzU1VGQlNTeERRVUZETzJkQ1FVTklMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zYVVKQlFXbENPMjlDUVVNelFpeERRVUZETEVOQlFVTXNSVUZCUlR0dlFrRkRTaXhEUVVGRExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hEUVVGRE8yOUNRVU16UWl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4WFFVRlhMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdiMEpCUXpsRUxFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03WjBKQlF6TkRMRU5CUVVNN1dVRkRTQ3hEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xbEJRM0JETEVOQlFVTTdXVUZGUkN4TlFVRk5MRmRCUVZjc1IwRkJSeXhIUVVGSExFTkJRVU1zYTBKQlFXdENMRVZCUVVVc1EwRkJRenRaUVVNM1F5eEpRVUZKTEZkQlFWY3NTVUZCU1N4WFFVRlhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03WjBKQlEzUkRMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTEVOQlFVTTdiMEpCUXpsQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlExQXNkVUpCUVhWQ0xFZEJRVWNzY1VKQlFYRkNMRmRCUVZjc2EwSkJRV3RDTEVOQlF6ZEZMRU5CUVVNN2IwSkJRMFlzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZEV0N4TFFVRkxMRVZCUTB3c1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlEzWkVMRU5CUVVNN2IwSkJRMFlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN3clFrRkJLMElzUjBGQlJ5eHBRa0ZCYVVJc1YwRkJWeXhGUVVGRkxFTkJRMnBGTEVOQlFVTTdiMEpCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUXpORUxFTkJRVU03V1VGRFNDeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVTkVMRTlCUVU4c1MwRkJTeXhEUVVGRE8wbEJRMllzUTBGQlF6dEpRVVZUTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJWU3hGUVVGRkxFOUJRVGhDTzFGQlEzQkZMRTFCUVUwc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRja01zUTBGQlF6dEpRVVZFTEZWQlFWVXNRMEZCUXl4VlFVRnJRanRSUVVNelFpeE5RVUZOTEZWQlFWVXNSMEZCUnp0WlFVTnFRaXhKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVU5pTEVsQlFVa3NRMEZCUXl4VFFVRlRPMWxCUTJRc1NVRkJTU3hEUVVGRExGZEJRVmM3V1VGRGFFSXNTVUZCU1N4RFFVRkRMRmRCUVZjN1dVRkRhRUlzU1VGQlNTeERRVUZETEc5Q1FVRnZRanRUUVVNeFFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNaQ0xFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZPMWxCUTNKQ0xFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRkZCUVZFN1owSkJRM2hDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRV01zUTBGQlF6dHZRa0ZEZEVNc1QwRkJUeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03WjBKQlF6ZERMRTlCUVU4c1NVRkJTU3hMUVVGTExFTkJRVVVzVFVGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZPMjlDUVVOMFF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVUdDNRa0ZETDBJc1VVRkJVU3hKUVVGSkxFVkJRVVVzUTBGQlF6czBRa0ZEWWl4TFFVRkxMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03WjBOQlEyaENMREpHUVVFeVJqdG5RMEZETTBZc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1VVRkJVU3hEUVVGRE8yZERRVU5zUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUTBGRGFrTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3h2UWtGQmIwSXNWVUZCVlN4UlFVRlJMRVZCUVVVc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGQlJTeERRVU4wUkN4RFFVRkRPMmREUVVOR0xFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUTNSQ0xIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRM2hETEV0QlFXTXNSVUZEWkN4TFFVRkxMRU5CUTA0c1EwRkRSaXhEUVVGRE8yZERRVU5HTEUxQlFVMHNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dG5RMEZETDBRc1QwRkJUeXhMUVVGTExFTkJRVU03TkVKQlEyWXNRMEZCUXpzMFFrRkRSQ3hMUVVGTExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTTdaME5CUTI1Q0xITkZRVUZ6UlR0blEwRkRkRVVzVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU03WjBOQlF6TkNMRTFCUVUwc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yZERRVU5xUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxIRkNRVUZ4UWl4VlFVRlZMRkZCUVZFc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVOQlEzWkVMRU5CUVVNN1owTkJRMFlzVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF6dG5RMEZETlVRc1QwRkJUenMwUWtGRFZDeERRVUZET3pSQ1FVTkVMRXRCUVVzc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dG5RMEZEYWtJc1owVkJRV2RGTzJkRFFVTm9SU3hOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJRenRuUTBGRE0wSXNUVUZCVFN4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owTkJRMnBETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUTFBc2NVSkJRWEZDTEZWQlFWVXNVVUZCVVN4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRkxFVkJRVVVzUTBGRGRrUXNRMEZCUXp0blEwRkRSaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blEwRkRNMFFzU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eE5RVUZOTzI5RFFVTnNReXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETzJkRFFVTTFSQ3hKUVVGSkxFTkJRVU03YjBOQlEwZ3NUMEZCVHl4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTEVOQlFVTXNWMEZCVnl4RFFVTnFSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVTjBRaXhEUVVGRE8yZERRVU5LTEVOQlFVTTdaME5CUVVNc1RVRkJUU3hEUVVGRE8yOURRVU5RTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5RMEZETDBJc1EwRkJRenMwUWtGRFNDeERRVUZET3pSQ1FVTkVMRXRCUVVzc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5RMEZEYmtJc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU03WjBOQlF6TkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzJkRFFVVTVReXhOUVVGTkxHVkJRV1VzUjBGRGJrSXNjVUpCUVhGQ0xFTkJRVU1zSzBKQlFTdENMRU5CUTI1RUxGRkJRVkVzUTBGRFZDeERRVUZETzJkRFFVVktMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1owTkJSV3hFTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUTFBc0swSkJRU3RDTEZWQlFWVXNjMEpCUVhOQ0xGTkJRVk1zUlVGQlJTeERRVU16UlN4RFFVRkRPMmREUVVWR0xFbEJRVWtzUTBGQlF6dHZRMEZEU0N4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVOV0xFbEJRMFFzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhWUVVGVkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdiME5CUlc1RUxFMUJRVTBzVVVGQlVTeEhRVUZKTEVkQlFWY3NRMEZCUXl4UlFVRlJMRWxCUVVrc1IwRkJSeXhEUVVGRE8yOURRVVU1UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFOUJRVThzVVVGQlVTeERRVUZETEVsQlFVa3NTMEZCU3l4VlFVRlZMRVZCUVVVc1EwRkJRenQzUTBGRGNrUXNUVUZCVFN4SlFVRkpMRlZCUVZVc1EwRkRiRUlzSzBKQlFTdENMRlZCUVZVc2EwTkJRV3RETEVOQlF6VkZMRU5CUVVNN2IwTkJRMG9zUTBGQlF6dHZRMEZGUkN4UFFVRlBMRkZCUVZFc1EwRkJRenRuUTBGRGJFSXNRMEZCUXp0blEwRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzI5RFFVTndRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTzNkRFFVTkZMRFJDUVVFMFFqdDNRMEZETlVJc1kwRkJZeXhWUVVGVkxFVkJRVVU3ZDBOQlF6RkNMRk5CUVZNc1UwRkJVeXhGUVVGRk8zZERRVU53UWl4VFFVRlRMRU5CUVVNc1dVRkJXU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk8zRkRRVU5xUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGRFlpeERRVUZETzI5RFFVVkdMRTFCUVUwc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmREUVVOb1JTeERRVUZET3pSQ1FVTklMRU5CUVVNN05FSkJRMFFzUzBGQlN5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRExFTkJRVU03WjBOQlF6VkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlEzQkVMRkZCUVZFc1EwRkJRenRuUTBGRFdDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03WjBOQlEyNUVMRWxCUVVrc1NVRkJTU3hMUVVGTExGTkJRVk1zU1VGQlNTeEpRVUZKTEV0QlFVc3NTVUZCU1N4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXp0dlEwRkROVVFzVFVGQlRTeEpRVUZKTEZkQlFWY3NRMEZEYmtJc1owaEJRV2RJTEVOQlEycElMRU5CUVVNN1owTkJRMG9zUTBGQlF6dG5RMEZGUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEVOQlFVTTdaME5CUTI1RUxFMUJRVTBzUzBGQlN5eEhRVUZITEVWQlFVVXNSMEZCUnl4UlFVRlJMRVZCUVdkQ0xFTkJRVU03WjBOQlF6VkRMRTFCUVUwc1ZVRkJWU3hIUVVGSExFdEJRVFJDTEVOQlFVTTdaME5CUTJoRUxFMUJRVTBzV1VGQldTeEhRVU5vUWl4UFFVRlBMRlZCUVZVc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eFJRVUZSTzI5RFFVTXpReXhWUVVGVkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1RVRkJUVHR2UTBGRGJrTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdiME5CUTJwRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlEwb3NSMEZCUnl4RlFVRkZMR05CUVdNc1EwRkJReXcyUWtGQk5rSXNRMEZCUXp0M1EwRkRhRVFzU1VGQlNTeERRVU5RTEVOQlFVTTdaME5CUTFJc1QwRkJUeXhWUVVGVkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdaME5CUlM5Q0xFMUJRVTBzWlVGQlpTeEhRVU51UWl4eFFrRkJjVUlzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dG5RMEZGYUVVc1NVRkRSU3hSUVVGUkxFdEJRVXNzVTBGQlV6dHZRMEZEZEVJc1VVRkJVU3hMUVVGTExFbEJRVWs3YjBOQlEycENMRkZCUVZFc1MwRkJTeXhGUVVGRk8yOURRVU5tTEVOQlFVTXNaVUZCWlN4RlFVTm9RaXhEUVVGRE8yOURRVU5FTEUxQlFVMHNTVUZCU1N4WFFVRlhMRU5CUTI1Q0xDdEZRVUVyUlN4RFFVTm9SaXhEUVVGRE8yZERRVU5LTEVOQlFVTTdaME5CUlVRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenR2UTBGRGNrUXNUVUZCVFN4SlFVRkpMRmRCUVZjc1EwRkRia0lzYlVoQlFXMUlMRU5CUTNCSUxFTkJRVU03WjBOQlEwb3NRMEZCUXp0blEwRkZSQ3hOUVVGTkxFVkJRMG9zVTBGQlV5eEZRVU5VTEZOQlFWTXNSVUZCUlN4aFFVRmhMRVZCUTNoQ0xFOUJRVThzUjBGRFVpeEhRVUZITEhGQ1FVRnhRaXhEUVVGRExEaENRVUU0UWl4RFFVTjBSQ3hMUVVGTExFVkJRMHdzV1VGQldTeERRVU5pTEVOQlFVTTdaME5CUlVZc01rSkJRVEpDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1NVRkJTU3hGUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdaME5CUlhaRUxFMUJRVTBzWlVGQlpTeEhRVU51UWl4eFFrRkJjVUlzUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5RMEZETDBRc2NVSkJRWEZDTEVOQlFVTXNPRUpCUVRoQ0xFTkJRMnhFTEdWQlFXVXNSVUZEWml4SFFVRkhMRU5CUTBvc1EwRkJRenRuUTBGRlJpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMRFJEUVVFMFF5eFZRVUZWTEZWQlFWVXNTMEZCU3l4VFFVRlRMRWxCUVVrc1lVRkJZU3hSUVVGUkxHTkJRV01zVTBGQlV5eGpRVUZqTEdGQlFXRXNZMEZCWXl4UFFVRlBMRU5CUXpWTExHVkJRV1VzUTBGRGFFSXNSVUZCUlN4RFFVTktMRU5CUVVNN1owTkJSVVlzWlVGQlpTeERRVUZETEV0QlFVc3NSMEZCUnl4UlFVRlJMRWRCUVVjc1EwRkJReXhEUVVGRE8yZERRVVZ5UXl4TlFVRk5MRk5CUVZNc1IwRkRZaXh4UWtGQmNVSXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0blEwRkRNVVFzU1VGQlNTeGxRVUZsTEVWQlFVVXNRMEZCUXp0dlEwRkRjRUlzU1VGQlNTeGxRVUZsTEVOQlFVTXNVMEZCVXl4TFFVRkxMRk5CUVZNc1JVRkJSU3hEUVVGRE8zZERRVU0xUXl4TlFVRk5MRWxCUVVrc1YwRkJWeXhEUVVOdVFpd3dSRUZCTUVRc1EwRkRNMFFzUTBGQlF6dHZRMEZEU2l4RFFVRkRPMmREUVVOSUxFTkJRVU03WjBOQlJVUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1pVRkJaVHR2UTBGRE4wSXNRMEZCUXl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEc5RFFVRnZReXhEUVVONFJDeGxRVUZsTEVWQlEyWXNaVUZCWlN4RlFVTm1MRkZCUVZFc1EwRkRWRHR2UTBGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWRCUVVjc1pVRkJaU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRm5RaXhEUVVGRExFTkJRVU03WjBOQlJXaEZMRTFCUVUwc1MwRkJTeXhIUVVOVUxFMUJRVTBzY1VKQlFYRkNMRU5CUVVNc09FSkJRVGhDTEVOQlEzaEVMRWxCUVhGQ0xFVkJRM0pDTEZWQlFWVXNSVUZEVml4UFFVRlBMRVZCUTFBc1VVRkJVU3hGUVVOU0xFZEJRVWNzUTBGRFNpeERRVUZETzJkRFFVVktMRTFCUVUwc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVkQlFVY3NVVUZCVVN4RFFVRkRPMmREUVVONFF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdaME5CUlhoRUxFbEJRVWtzV1VGQldTeEhRVUZITEVWQlFVVXNRMEZCUXp0blEwRkRkRUlzU1VGQlNTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8yOURRVU16UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UTBGRGJrTXNUVUZCVFN4UFFVRlBMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNkVUpCUVhWQ0xFTkJRek5FTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUTFnc1EwRkJRenR2UTBGRlJpeEpRVUZKTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWxCUVVrc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF6dDNRMEZETlVJc1RVRkJUU3hKUVVGSkxGZEJRVmNzUTBGRGJrSXNNa1JCUVRKRUxGTkJRVk1zYlVOQlFXMURMRU5CUTNoSExFTkJRVU03YjBOQlEwb3NRMEZCUXp0dlEwRkZSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN2IwTkJRM0pETEVsQlFVa3NWMEZCVnl4TFFVRkxMRk5CUVZNc1NVRkJTU3hYUVVGWExFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlFVTTdkME5CUTNSRUxFMUJRVTBzU1VGQlNTeFhRVUZYTEVOQlEyNUNMSFZFUVVGMVJDeFBRVUZQTEcxRFFVRnRReXhEUVVOc1J5eERRVUZETzI5RFFVTktMRU5CUVVNN2IwTkJSVVFzV1VGQldUdDNRMEZEVml4eFFrRkJjVUlzUTBGQlF5dzJRa0ZCTmtJc1EwRkJRenMwUTBGRGJFUXNVMEZCVXpzMFEwRkRWQ3hUUVVGVExFVkJRVVVzWVVGQllUczBRMEZEZUVJc1QwRkJUenMwUTBGRFVDeFRRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJRenMwUTBGRE4wSXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU03TkVOQlF6TkNMRk5CUVZNN2VVTkJRMVlzUTBGQlF5eERRVUZETzJkRFFVTlFMRU5CUVVNN1owTkJSVVFzVDBGQlR5eHhRa0ZCY1VJc1EwRkJReXd3UWtGQk1FSXNRMEZEY2tRc1NVRkJTU3hGUVVOS0xGbEJRVmtzUTBGRFlpeERRVUZET3pSQ1FVTktMRU5CUVVNN05FSkJRMFE3WjBOQlEwVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzSzBKQlFTdENMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVU01UXl4RFFVRkRPM2RDUVVOT0xFTkJRVU03YjBKQlEwZ3NRMEZCUXp0cFFrRkRSaXhEUVVGRExFTkJRVU03V1VGRFRDeERRVUZETzFOQlEwWXNRMEZCUXl4RFFVRkRPMGxCUTB3c1EwRkJRenRKUVVWVExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlEzUkNMRVZCUVZVc1JVRkRWaXhMUVVFd1FpeEZRVU14UWl4SFFVRXdRanRSUVVVeFFpeEpRVUZKTEVsQlFWa3NRMEZCUXp0UlFVVnFRaXhKUVVGSkxFTkJRVU03V1VGRFNDeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkRhRUlzY1VKQlFYRkNMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZqTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUTJ4RkxFTkJRVU03VVVGRFNpeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRaUVVOd1FpeE5RVUZOTEVsQlFVa3NhMEpCUVd0Q0xFTkJRekZDTEhORFFVRnpReXhGUVVGRkxFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlEycEVMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRMFFzVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZOME1zVDBGQlR5eExRVUZMTEVOQlFVTTdTVUZEWml4RFFVRkRPMGxCUlZNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZWTEVWQlFVVXNSMEZCTUVJN1VVRkRPVVFzU1VGQlNTeE5RVUZYTEVOQlFVTTdVVUZGYUVJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRia1FzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdVVUZEYUVVc1NVRkJTU3hEUVVGRExFZEJRVWM3V1VGQlJTeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUTNCRkxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNORUpCUVRSQ0xFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETlVNc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeEhRVUZITEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGVFVXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03V1VGRGNFSXNUVUZCVFN4SlFVRkpMR3RDUVVGclFpeERRVUZETERKQ1FVRXlRaXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF5OUVMRU5CUVVNN1VVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlZNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGRGVrSXNTVUZCYlVJc1JVRkRia0lzVVVGQllUdEpRVU5pTERaRVFVRTJSRHRKUVVNM1JDeEhRVUZITEVsQlFUSkRPMUZCUlRsRExFMUJRVTBzWlVGQlpTeEhRVU51UWl4eFFrRkJjVUlzUTBGQlF5d3JRa0ZCSzBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU5zUlN4eFFrRkJjVUlzUTBGQlF5dzRRa0ZCT0VJc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU4wUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRemxFTEVOQlFVTTdTVUZGVXl4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTEVOQlEyeERMRWxCUVcxQ0xFVkJRMjVDTEZGQlFXRXNSVUZEWWl4UlFVRm5RaXhIUVVGSExFVkJRMjVDTEVsQlFXRXNSVUZEWWl4UlFVRXdRanRKUVVNeFFpdzJSRUZCTmtRN1NVRkROMFFzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4bFFVRmxMRWRCUTI1Q0xIRkNRVUZ4UWl4RFFVRkRMQ3RDUVVFclFpeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTJ4RkxIRkNRVUZ4UWl4RFFVRkRMRGhDUVVFNFFpeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFOUJRVThzU1VGQlNTeERRVUZETERSQ1FVRTBRaXhEUVVOMFF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMR1ZCUVdVc1EwRkJReXhGUVVNdlFpeExRVUZMTEVWQlEwd3NVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hEUVVOeVFpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTA4c1RVRkJUU3hEUVVGRExFMUJRV3RDTzFGQlEycERMRTlCUVU4c2NVSkJRWEZDTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU14UkN4RFFVRkRPMGxCUlVRN096czdPenM3T3p0UFFWTkhPMGxCUTJkQ0xFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlF6VkNMRk5CUVRKQ0xFVkJRek5DTEV0QlFXbERMRVZCUTJwRExFdEJRWFZGTzFGQlJYWkZMRWxCUVVrc1UwRkJVeXhIUVVGSE8xbEJRMlFzVlVGQlZTeEZRVUZGTEV0QlFVczdXVUZEYWtJc2IwSkJRVzlDTEVWQlFVVXNTMEZCU3p0WlFVTXpRaXhsUVVGbExFVkJRVVVzUzBGQlN6dFpRVU4wUWl3MFFrRkJORUlzUlVGQlJTeEpRVUZKTzFsQlEyeERMREpDUVVFeVFpeEZRVUZGTEVsQlFVazdVMEZEYkVNc1EwRkJRenRSUVVOR0xFbEJRVWtzUzBGQlN5eFpRVUZaTEhGQ1FVRnhRaXhKUVVGSkxFdEJRVXNzV1VGQldTeFBRVUZQTEVWQlFVVXNRMEZCUXp0WlFVTjJSU3hMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUXpsQ0xFTkJRVU03VVVGRlJDeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETlVNc1RVRkJUU3hoUVVGaExFZEJRMmhDTEV0QlFTdENMRU5CUVVNc1NVRkJTU3hKUVVGTExFdEJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZETDBRc1RVRkJUU3hwUWtGQmFVSXNSMEZEY0VJc1MwRkJLMElzUTBGQlF5eFJRVUZSTzFsQlEzaERMRXRCUVdFc1EwRkJReXhqUVVGakxFTkJRVU03VVVGRGFFTXNTVUZCU1N4aFFVRmhMRWxCUVVrc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXp0WlFVTjJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkRja01zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRVZCUVVVN1owSkJRM1pDTEVsQlFVa3NSVUZCUlN4aFFVRmhPMmRDUVVOdVFpeFJRVUZSTEVWQlFVVXNhVUpCUVdsQ08yZENRVU16UWl4SlFVRkpMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU12UXl4TFFVRkxMRVZCUVVVc2FVSkJRV2xDTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVDBGQlR5eERRVUZETzJkQ1FVTnVSQ3hOUVVGTkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZEYWtJc1UwRkJVeXhGUVVOVU8yOUNRVU5GTEZGQlFWRXNSVUZCUlN4TFFVRkxPMjlDUVVObUxGTkJRVk1zUlVGQlJTeExRVUZMTzI5Q1FVTm9RaXhoUVVGaExFVkJRVVVzU1VGQlNUdHBRa0ZEY0VJc1JVRkRSQ3hMUVVGTExFTkJRMDQ3WjBKQlEwUXNZVUZCWVN4RlFVRkZMRWxCUVVrN1lVRkRjRUlzUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXp0aFFVRk5MRU5CUVVNN1dVRkRUaXhUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRVZCUVVVc1MwRkJTeXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzQkVMRU5CUVVNN1VVRkZSQ3hQUVVGUExFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVTjJRaXhUUVVGVExFVkJRMVFzUzBGQlN5eEZRVU5NTEZOQlFXZENMRU5CUTJwQ0xFTkJRWGRDTEVOQlFVTTdTVUZETlVJc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5JTERaRVFVRTJSRHRKUVVOdVJDeExRVUZMTEVOQlFVa3NUVUZCYzBJN1VVRkRka01zVDBGQlR5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8wbEJRM0JETEVOQlFVTTdTVUZGUkRzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMDlCZDBKSE8wbEJRMDhzUzBGQlN5eERRVUZETEdOQlFXTXNRMEZETlVJc1IwRkJWeXhGUVVOWUxGRkJRWE5ETEVWQlEzUkRMRk5CUVZNc1IwRkJSeXhMUVVGTE8xRkJSV3BDTEUxQlFVMHNWVUZCVlN4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOMFFpeEpRVUZKTEVkQlFVY3NSMEZCYTBNc1RVRkJUU3hSUVVGUkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZETDBRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0WlFVTnFRaXhKUVVGSkxFZEJRVWNzUTBGQlF5eExRVUZMTEVsQlFVa3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXp0blFrRkROVU1zU1VGQlNTeFBRVUZQTEVkQlFWRXNSVUZCUlN4RFFVRkRPMmRDUVVOMFFpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU0xUXl4SlFVRkpMRk5CUVZNc1EwRkJReXd3UWtGQk1FSXNSVUZCUlN4RFFVRkRPMjlDUVVONlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETzI5Q1FVTTVRaXhQUVVGUExFTkJRVU1zVTBGQlV5eEhRVUZITEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRE8yOUNRVU40UXl4SlFVRkpMRU5CUVVNN2QwSkJRMGdzVDBGQlR5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTXZSQ3hEUVVGRE8yOUNRVUZETEU5QlFVOHNSMEZCVVN4RlFVRkZMRU5CUVVNN2QwSkJRMnhDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03ZDBKQlEyWXNUMEZCVHl4RFFVRkRMRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03YjBKQlEyNUVMRU5CUVVNN1owSkJRMGdzUTBGQlF6dHhRa0ZCVFN4RFFVRkRPMjlDUVVOT0xFbEJRVWtzUTBGQlF6dDNRa0ZEU0N4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRla1FzUTBGQlF6dHZRa0ZCUXl4UFFVRlBMRWRCUVZFc1JVRkJSU3hEUVVGRE8zZENRVU5zUWl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzNkQ1FVTm1MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03YjBKQlF6ZERMRU5CUVVNN1owSkJRMGdzUTBGQlF6dG5Ra0ZEUkN4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlF6TkNMRU5CUVVNN1dVRkRSQ3hIUVVGSExFZEJRVWNzVFVGQlRTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkRPVUlzUTBGQlF6dFJRVU5FTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc01FSkJRVEJDTEZWQlFWVXNRMEZCUXl4TlFVRk5MRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRMnBGTEUxQlFVMHNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRM1pDTEU5QlFVOHNWVUZCVlN4RFFVRkRPMGxCUTNCQ0xFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wOUJNa0pITzBsQlEwZ3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkRVQ3hSUVVGdlFpeEZRVU53UWl4WFFVRmpMRWxCUVZNc1JVRkRka0lzUjBGQlJ5eEpRVUV5UXp0UlFVVTVReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRk1VUXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTXhSQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eG5Ra0ZCWjBJc1NVRkJTU3hIUVVGSExFTkJRVU1zYVVKQlFXbENMRU5CUVVNN1VVRkZiRVVzVFVGQlRTeGhRVUZoTEVkQlFVY3NSVUZCUlN4SFFVRkpMRkZCUVdkRExFVkJRVVVzUTBGQlF6dFJRVU12UkN4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEdGQlFXRXNRMEZCUXp0UlFVTjBReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eGhRVUZoTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRNME1zVFVGQlRTeFBRVUZQTEVkQlExZ3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJSU3hoUVVGeFF5eERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTjZSQ3hoUVVGeFF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM3BFTEUxQlFVMHNUMEZCVHl4SFFVTllMRTlCUVU4c1lVRkJZU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEZGQlFWRTdXVUZET1VNc1lVRkJZU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwN1dVRkRkRU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGRGNFTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzWTBGQll5eERRVUZETERaQ1FVRTJRaXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEZWtVc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeExRVUZMTEZOQlFWTXNTVUZCU1N4SlFVRkpMRXRCUVVzc1NVRkJTU3hKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzVFVGQlRTeFhRVUZYTEVkQlEyWXNVVUZCVVN4TFFVRkxMRk5CUVZNc1NVRkJTU3hSUVVGUkxFdEJRVXNzU1VGQlNTeEpRVUZKTEZGQlFWRXNTMEZCU3l4RlFVRkZMRU5CUVVNN1VVRkRha1VzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhQUVVGUExFTkJRVU1zUzBGQlN5eEpRVUZKTEU5QlFVOHNTVUZCU1N4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOc1JTeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUXpWQ0xHZENRVUZuUWp0WlFVTmtMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NUMEZCVHl4SlFVRkpMRmRCUVZjc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGRE1VUXNRMEZCUXp0UlFVTkdMRTFCUVUwc1UwRkJVeXhIUVVGM1FpeEZRVUZGTEVkQlFVY3NZVUZCWVN4RlFVRkZMRU5CUVVNN1VVRkROVVFzVDBGQlR5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRla0lzVDBGQlR5eFRRVUZUTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkROMElzVDBGQlR5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeEpRVUZKTEVkQlFVY3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUVyUWl4RlFVRkZMRU5CUVVNN1VVRkRia1VzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4dFEwRkJiVU1zWlVGQlpTeHhRa0ZCY1VJc1owSkJRV2RDTEhGQ1FVRnhRaXhuUWtGQlowSXNWVUZCVlN4TFFVRkxMRk5CUVZNc1NVRkJTU3hoUVVGaExGRkJRVkVzV1VGQldTeFBRVUZQTEZWQlFWVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRkRTRzWVVGQllTeERRVU5rTEVWQlFVVXNRMEZEU2l4RFFVRkRPMUZCUlVZc2FVVkJRV2xGTzFGQlEycEZMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dFpRVU55UWl4SlFVRkpMRkZCUVhORExFTkJRVU03V1VGRE0wTXNTVUZCU1N4alFVRmpMRVZCUVVVc1EwRkJRenRuUWtGRGJrSXNUVUZCVFN4alFVRmpMRWRCUVhkQ0xFVkJRVVVzUjBGQlJ5eFRRVUZUTEVWQlFVVXNRMEZCUXp0blFrRkROMFFzVDBGQlR5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJReTlDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUTFBc1owUkJRV2RFTEV0QlFVc3NWMEZCVnl4SlFVRkpMR0ZCUVdFc1VVRkJVU3hGUVVGRkxFTkJRelZHTEVOQlFVTTdaMEpCUTBZc1RVRkJUU3hSUVVGUkxFZEJRMW9zUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGRE9VSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkRVaXhqUVVGakxFVkJRMlFzUzBGQlN5eEpRVUZKTEVkQlFVY3NSVUZEV0N4SlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRM3BDTEZGQlFWRXNSVUZEVWl4SFFVRkhMRU5CUVVNc1IwRkJORUlzUTBGQlF5eERRVU5zUXl4RFFVRnhSQ3hEUVVGRE8yZENRVU42UkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVNelF5eFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJRenRuUWtGRE4wSXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhyUTBGQmEwTXNRMEZCUXl4RFFVRkRPMmRDUVVNNVF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMSE5EUVVGelF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4VlFVRlZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRM3BGTEdOQlFXTXNRMEZEWml4RlFVRkZMRU5CUTBvc1EwRkJRenRaUVVOS0xFTkJRVU03YVVKQlFVMHNRMEZCUXp0blFrRkRUaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEc5RFFVRnZReXhEUVVGRExFTkJRVU03WjBKQlEyaEVMRkZCUVZFc1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZEYUVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGRFVpeEZRVUZGTEVkQlFVY3NVMEZCVXl4RlFVRkZMRVZCUTJoQ0xFZEJRVWNzUTBGRFNpeERRVUZwUXl4RFFVRkRPMWxCUTNKRExFTkJRVU03V1VGRFJDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRzFEUVVGdFF5eERRVUZETEVOQlFVTTdXVUZGTDBNc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFWRXNRMEZCUXp0WlFVTTVSQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTEdGQlFXRXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkRka1VzUTBGQlF6dFJRVU5LTEVOQlFVTTdZVUZCVFN4RFFVRkRPMWxCUTA0c1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eHpSRUZCYzBRc1EwRkJReXhEUVVGRE8xRkJRM0JGTEVOQlFVTTdVVUZGUkN4TlFVRk5MRmRCUVZjc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dFJRVU0xUlN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxHMURRVUZ0UXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGZEJRVmNzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVTjJSU3hEUVVGRE8xRkJSVVlzU1VGQlNTeFhRVUZYTEVsQlFVa3NWMEZCVnl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRM1JETEhkRVFVRjNSRHRaUVVONFJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRGVrTXNTVUZCU1N4TFFVRkxPMmRDUVVGRkxHVkJRV1VzUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUTNwRExFbEJRVWtzU1VGQlNUdG5Ra0ZCUlN4bFFVRmxMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU4wUXl4SlFVRkpMRkZCUVZFN1owSkJRVVVzWlVGQlpTeERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRkZCUVZFc1EwRkJRenRaUVVOeVJDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMRGhDUVVFNFFpeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMR1ZCUVdVc1EwRkJReXhGUVVGRkxFTkJRMmhGTEVOQlFVTTdXVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJWU3hGUVVGRkxFTkJRVU03V1VGRE4wSXNTMEZCU3l4TlFVRk5MRlZCUVZVc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dG5Ra0ZEY2tNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1ZVRkJWU3hGUVVGRkxFTkJRVU1zUTBGQlF6dG5Ra0ZEZWtNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGRGNFUXNSVUZCUlN4SFFVRkhMR1ZCUVdVc1JVRkJaMElzUlVGRGNFTXNTMEZCU3l4RlFVTk1MRWxCUVVrc1JVRkRTaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzJkQ1FVTkdMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRMVFzV1VGQllTeFJRVUUyUWl4RFFVRkRMRTFCUVUwc1UwRkJVeXhWUVVGVkxFVkJRVVVzUTBGRGRrVXNRMEZCUXp0blFrRkRSaXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMWxCUXpWQ0xFTkJRVU03V1VGRFJDd3dSVUZCTUVVN1dVRkRNVVVzSzBSQlFTdEVPMWxCUXk5RUxFbEJRVWtzUjBGQlJ5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzJkQ1FVTnlReXhKUVVGSkxFTkJRVU1zUjBGQlJ6dHZRa0ZCUlN4UFFVRlBMRWxCUVVrc1EwRkJRenRuUWtGRGRFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRUdHZRa0ZCUlN4UFFVRlBMRWxCUVVrc1EwRkJRenRuUWtGRGJrVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1dVRkRZaXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZEVkN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxHdERRVUZyUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1lVRkJZU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlF6bEhMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzU1VGQlNTeFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTmlMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzWjBOQlFXZERMRkZCUVZFc1UwRkJVeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVU51Unl4RFFVRkRPMWxCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlZ5eERRVUZETzFGQlF6RkNMRU5CUVVNN1VVRkRSQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTERCRFFVRXdReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zWVVGQllTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUTNSSUxFTkJRVU03VVVGRFJpeFBRVUZQTEVsQlFWY3NRMEZCUXp0SlFVTnlRaXhEUVVGRE8wbEJSVVE3T3pzN096czdPenM3T3p0UFFWbEhPMGxCUTBnc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGRFlpeExRVUZ4UWl4RlFVTnlRaXhoUVVGMVFpeEZRVUZGTEVWQlEzcENMRWRCUVVjc1NVRkJNa003VVVGRk9VTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEZGtRc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlF5eE5RVUZOTEdWQlFXVXNSMEZCUnl4SFFVRkhMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTTdVVUZGT1VNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RFFVRkRMRWRCUVdVc1JVRkJiVU1zUlVGQlJUdFpRVU0xUlN4TlFVRk5MRWRCUVVjc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFpRVU01UXl4SlFVRkpMRU5CUVVNc1IwRkJSenRuUWtGQlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0WlFVTXpRaXhKUVVGSkxFTkJRVU03WjBKQlEwZ3NUMEZCVHl4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJkMElzUTBGQlF6dFpRVU5zUml4RFFVRkRPMWxCUVVNc1RVRkJUU3hEUVVGRE8yZENRVU5RTEVsQlFVa3NRMEZCUXp0dlFrRkRTQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRjNRaXhEUVVGRE8yZENRVU5vUkN4RFFVRkRPMmRDUVVGRExFMUJRVTBzUTBGQlF6dHZRa0ZEVUN4UFFVRlBMRk5CUVZNc1EwRkJRenRuUWtGRGJrSXNRMEZCUXp0WlFVTklMRU5CUVVNN1VVRkRTQ3hEUVVGRExFTkJRVU03VVVGRlJpdzRSa0ZCT0VZN1VVRkRPVVlzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVN0Q0xFTkJRVU03VVVGRmVFUXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xbEJRM0pDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owTkJRV2RETEZOQlFWTXNaVUZCWlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTm9SeXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc05rSkJRVFpDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRM0pHTEVsQlFVa3NTVUZCU1N4SFFVRkhMRTFCUVUwc1VVRkJVU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlEycERMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdaMEpCUTJ4Q0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJRenR2UWtGRGRFSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dHZRa0ZEYUVRc1NVRkJTU3hKUVVGSk8zZENRVUZGTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJReTlETEVOQlFVTTdaMEpCUTBRc1NVRkJTU3hIUVVGSExFMUJRVTBzVVVGQlVTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMWxCUXk5Q0xFTkJRVU03V1VGRFJDeE5RVUZOTEZGQlFWRXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOMlFpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMSEZDUVVGeFFpeFJRVUZSTEVOQlFVTXNTVUZCU1N4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVNeFJDeERRVUZETzFGQlJVUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRU5CUVVNN1VVRkROME1zU1VGQlNTeFhRVUZYTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRlRUlzUzBGQlN5eE5RVUZOTEZWQlFWVXNTVUZCU1N4WFFVRlhMRVZCUVVVc1EwRkJRenRuUWtGRGNrTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhwUTBGQmFVTXNWVUZCVlN4bFFVRmxMRk5CUVZNc1pVRkJaU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZWQlFWVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRE1VZ3NUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEcxRFFVRnRReXhEUVVGRExGVkJRVlVzUlVGQlJTeFRRVUZUTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1owSkJRM1pITEVsQlFVa3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRFpDeEpRVUZKTEVsQlFVa3NSMEZCUnl4TlFVRk5MRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dG5Ra0ZEYWtNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0dlFrRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8zZENRVU4wUWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzNkQ1FVTm9SQ3hKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZET3pSQ1FVTlVMRTFCUVUwc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6czBRa0ZET1VNc1NVRkJTU3hSUVVGUkxFVkJRVVVzUTBGQlF6dG5RMEZEWWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXpzMFFrRkRhRU1zUTBGQlF6dHBRMEZCVFN4RFFVRkRPMmREUVVOT0xGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdORUpCUTNKRExFTkJRVU03TkVKQlEwUXNTMEZCU3l4RlFVRkZMRU5CUVVNN2QwSkJRMVlzUTBGQlF6dHZRa0ZEU0N4RFFVRkRPMjlDUVVORUxFbEJRVWtzUjBGQlJ5eE5RVUZOTEZGQlFWRXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRuUWtGREwwSXNRMEZCUXp0blFrRkRSQ3hOUVVGTkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0blFrRkRka0lzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4cFEwRkJhVU1zVlVGQlZTeEpRVUZKTEV0QlFVc3NWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkROVVVzUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJVU3hGUVVGRkxFTkJRVU03VVVGRGVFSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1dVRkJXU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEpRVUZKTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUXpWRExFbEJRVWtzUTBGQlF6dG5Ra0ZEU0N4TlFVRk5MRVZCUVVVc1ZVRkJWU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEhRVUZITEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1owSkJRekZGTEUxQlFVMHNSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExFVkJRVVU3YjBKQlFVVXNVMEZCVXp0blFrRkRiRUlzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6ZEVMRU5CUVVNN1dVRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzJkQ1FVTndRaXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETERaQ1FVRTJRaXhaUVVGWkxFdEJRVXNzUTBGQlF5eFpRVUZaTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVNdlJpeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVVkVMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zZDBKQlFYZENMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkROVVVzVDBGQlR5eFBRVUZQTEVOQlFVTTdTVUZEYWtJc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eEpRVUZKTzBsQlExSXNOa1JCUVRaRU8wbEJRemRFTEVsQlFWazdTVUZEV2l3MlJFRkJOa1E3U1VGRE4wUXNVVUZCWjBJN1NVRkRhRUlzTmtSQlFUWkVPMGxCUXpkRUxFOUJRVFJDTzBsQlF6VkNMRFpFUVVFMlJEdEpRVU0zUkN4SFFVRkhMRXRCUVRSRE8xRkJSUzlETEUxQlFVMHNTVUZCU1N4blFrRkJaMElzUTBGRGVFSXNaMFJCUVdkRUxFTkJRMnBFTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlZFc1UwRkJVeXhEUVVOb1FpeFRRVUZwUXp0UlFVVnFReXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEVsQlFWY3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVOeVJDeERRVUZETzBsQlJWRXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRkRUlzVTBGQmVVSXNSVUZEZWtJc1JVRkJiMElzUlVGRGNFSXNTMEZCTkVJc1JVRkROVUlzUjBGQlJ5eEpRVUV5UXp0UlFVVTVReXhKUVVGSkxFVkJRVVVzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRTFCUVUwN1dVRkROVUlzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl3d1EwRkJNRU1zUTBGQlF5eERRVUZETzFGQlEzUkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpORUxFMUJRVTBzVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE9VTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF5eE5RVUZOTEZsQlFWa3NWVUZCVlN4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVNdlJDeFBRVUZQTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUTJoQ0xFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGRE1VVXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOTkxFOUJRVThzUTBGRFpDeExRVUZSTEVWQlExSXNSMEZCUnl4SlFVRXlRenRSUVVrNVF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MRXRCUVVzc1IwRkJkVUlzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZyUWl4RFFVRkRMRU5CUVVNN1VVRkROVVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUXpsRExFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRmhMRU5CUVVNc1EwRkJRenRSUVVWb1F5eE5RVUZOTEZGQlFWRXNSMEZCUnl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExGRkJRVkVzUTBGQmQwSXNRMEZCUXp0UlFVVnlSU3hOUVVGTkxGZEJRVmNzUjBGQlJ5eFZRVVZzUWl4SFFVRjNRaXhGUVVONFFpeFpRVUYxUWp0WlFVVjJRaXhKUVVGSkxGbEJRVms3WjBKQlEyUXNXVUZCV1N4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RlFVRkZMRVZCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU12UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkRka01zUTBGQlF5eExRVUV3UWl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTNwRExFbEJRVWtzVDBGQlR5eEhRVUZITEV0QlFVc3NWMEZCVnp0dlFrRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF6dG5Ra0ZETjBNc1NVRkJTU3haUVVGWkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJRenR2UWtGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0blFrRkRPVVFzVFVGQlRTeFZRVUZWTEVkQlFVY3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlZTeERRVUZETEVOQlFVTTdaMEpCUTNaRUxFbEJRVWtzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VlFVRlZMRU5CUVVNN2IwSkJRemRDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2FVSkJRV2xDTEZWQlFWVXNZMEZCWXl4RFFVRkRMRU5CUVVNN1owSkJRM0pGTEVkQlFVY3NSMEZCUnl4SFFVRkhMRmxCUVZrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTm9SQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMmRDUVVONFFpeFBRVUZQTEV0QlFVc3NRMEZCUXp0WlFVTm1MRU5CUVVNc1JVRkRSQ3hGUVVGRkxFTkJRMGdzUTBGQlF6dFpRVU5HTEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzJkQ1FVTnFSU3gxUWtGQmRVSTdaMEpCUTNaQ0xFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRM2hETEVOQlFVTTdXVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRSUVVOb1FpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSV0lzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4M1FrRkJkMElzVTBGQlV5eHJRa0ZCYlVJc1MwRkJZU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlEzaEZMRU5CUVVNN1VVRkZSaXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRWRCUVVjc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUTNSRUxFMUJRVTBzWjBKQlFXZENMRWRCUVhkQ0xFVkJRVVVzUTBGQlF6dFJRVU5xUkN4elJrRkJjMFk3VVVGRGRFWXNjVVpCUVhGR08xRkJRM0pHTEhOR1FVRnpSanRSUVVOMFJpd3lSVUZCTWtVN1VVRkRNMFVzU1VGRFJTeHRRa0ZCYlVJN1dVRkRia0lzUzBGQlN5eERRVUZETEZOQlFWTTdXVUZEWml4UFFVRlBMRXRCUVVzc1EwRkJReXhUUVVGVExFdEJRVXNzVVVGQlVTeEZRVU51UXl4RFFVRkRPMWxCUTBRc1MwRkJTeXhOUVVGTkxGVkJRVlVzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSU3hEUVVGRE8yZENRVU0zUXl4blFrRkJaMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1owSkJRMnhGTEdkQ1FVRm5RaXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVWQlFWTXNRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkRia1FzUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF6dHZRa0ZEZGtNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTzI5Q1FVTmlMRU5CUVVNc1EwRkJSU3hMUVVGTExFTkJRVU1zVTBGQmFVSXNTVUZCU1N4RlFVRkZMRVZCUTJ4RExHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVOb1F5eERRVUZETzFsQlEwb3NRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkZSQ3cyUlVGQk5rVTdVVUZETjBVc1RVRkJUU3hOUVVGTkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmVFVXNUMEZCVHp0WlFVTk1MRTFCUVUwN1dVRkRUaXhGUVVGRkxFVkJRVWNzUzBGQllTeERRVUZETEVWQlFVVXNRMEZCVnp0WlFVTm9ReXhUUVVGVExFVkJRMUFzUTBGQlF5eFJRVUZSTEVsQlFVa3NTMEZCU3l4RFFVRkRMRk5CUVZNc1NVRkJTU3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhOUVVGTk8yZENRVU5xUlN4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTTdaMEpCUXpsQ0xFTkJRVU1zUTBGQlF5eFRRVUZUTzFsQlEyWXNWVUZCVlN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4blFrRkJaMEk3VTBGRGNFUXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZVU3hOUVVGTkxFTkJRMklzUjBGQmQwSXNSVUZEZUVJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzVTBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFeVF6dFJRVVU1UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hOUVVGTkxFVkJRVVVzUjBGQmQwSXNSVUZCUlN4RFFVRkRPMUZCUTI1RExFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE0wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTnlReXhKUVVGSkxFOUJRVThzUlVGQlJTeEpRVUZKTEV0QlFVc3NUVUZCVFN4SlFVRkpMRTlCUVU4c1JVRkJSU3hMUVVGTExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzWkVMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYkVJc1EwRkJRenRSUVVORUxFVkJRVVVzUTBGQlF5eEZRVUZaTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRkRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzUzBGQlN5eERRVUZETEVsQlFVa3NUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWEpFTEZOQlFWTXNWVUZCVlN4RFFVRkRMRU5CUVcxQ08xbEJRM0pETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUTFJc1QwRkJUeXhMUVVGTExFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlF6bEVMRU5CUVVNN1dVRkRVQ3hOUVVGTkxGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRemxETEUxQlFVMHNTVUZCU1N4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTTNSQ3hQUVVGUExFbEJRVWs3YVVKQlExSXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVMHNSVUZCWVN4RFFVRkRPMmxDUVVOdVF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4TFFVRlJMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVU3WjBKQlEzWkNMRXRCUVRaQ0xFTkJRVU1zUjBGQlJ5eERRVUZETzI5Q1FVTnFReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZWtNc1QwRkJUeXhMUVVGTExFTkJRVU03V1VGRFppeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRWaXhEUVVGRE8xRkJSVVFzU1VGQlNTeE5RVUZOTEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVGRDTEVsQlFVa3NVMEZCVXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3h0UTBGQmJVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkRka1VzUTBGQlF6dFpRVU5HTEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOMlJDeEpRVUZKTEVkQlFVY3NTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeFRRVUZUTEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVOMFF5eEhRVUZITEVOQlFVTXNSMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU14UWl4RFFVRkRPMmRDUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETzFsQlEySXNRMEZCUXl4RlFVRkZMRWxCUVVrc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU5zUWl4RFFVRkRPMUZCUlVRc1QwRkJUeXhOUVVGTkxFTkJRVU03U1VGRGFFSXNRMEZCUXp0SlFVVlBMREJDUVVFd1FpeERRVUZETEVkQlFUQkNPMUZCUXpORUxFbEJRVWtzUTBGQlF5eEhRVUZITzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRka0lzU1VGQlNTeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMSE5DUVVGelFpeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhYUVVGWExFTkJRWFZDTEVOQlFVTTdVVUZEZUVVc1NVRkJTU3hEUVVGRExGTkJRVk03V1VGQlJTeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTTFRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRE9VTXNUMEZCVHl4RFFVRkRMSGRDUVVGM1FpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6VkZMRU5CUVVNN1NVRkZUeXhoUVVGaExFTkJRVU1zVDBGQk9FSTdVVUZEYkVRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUnpGQ0xFTkJRVU03VVVGRFpDeEpRVUZKTEVOQlFVTXNVVUZCVVR0WlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRMmhETEVsQlFVa3NUMEZCVHl4UlFVRlJMRXRCUVVzc1VVRkJVVHRaUVVGRkxFOUJRVThzVVVGQlVTeERRVUZETzFGQlEyeEVMRWxCUVVrc1EwRkJRenRaUVVOSUxFOUJRVThzVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUXpkQ0xFTkJRVU03VVVGQlF5eE5RVUZOTEVOQlFVTTdXVUZEVUN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVOdVFpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMREJDUVVFd1FpeERRVU5vUXl4TFFVRnhRaXhGUVVOeVFpeEhRVUV3UWp0UlFVVXhRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRek5ETEVsQlFVa3NRMEZCUXl4VlFVRlZPMWxCUVVVc1QwRkJUenRSUVVONFFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzQkRMRWxCUVVrc1EwRkJReXhIUVVGSE8xbEJRVVVzVDBGQlR6dFJRVU5xUWl4SlFVTkZMRWRCUVVjc1MwRkJTeXhWUVVGVkxFTkJRVU1zUzBGQlN6dFpRVU40UWl4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFbEJRVWtzVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVOdVJDeERRVUZETzFsQlEwUXNUVUZCVFN4SlFVRkpMR3RDUVVGclFpeERRVU14UWl4blFrRkJaMElzUjBGQlJ5dzBRMEZCTkVNc1EwRkRhRVVzUTBGQlF6dFJRVU5LTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlZFc1dVRkJXU3hEUVVOdVFpeFRRVUY1UWl4RlFVTjZRaXhGUVVGclFpeEZRVU5zUWl4TFFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFTdERPMUZCUld4RUxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRla1FzVFVGQlRTeE5RVUZOTEVkQlFYZENMRVZCUVVVc1EwRkJRenRSUVVOMlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRka1FzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRk4wSXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVMTRReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZSTEZsQlFWa3NRMEZEYmtJc1UwRkJlVUlzUlVGRGVrSXNSVUZCYTBJc1JVRkRiRUlzUzBGQk1FSXNSVUZETVVJc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1RVRkJUU3hIUVVGM1FpeEZRVUZGTEVOQlFVTTdVVUZEZGtNc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzWkVMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUlRkQ0xFOUJRVThzUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGTmVFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZhMElzWlVGQlpTeERRVU5vUXl4VFFVRjVRaXhGUVVONlFpeEhRVUZ4UWl4RlFVTnlRaXhOUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVhGRE8xRkJSWGhETEVsQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1MwRkJTeXhOUVVGTkxFTkJRVU1zVFVGQlRUdFpRVU01UWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExEQkRRVUV3UXl4RFFVRkRMRU5CUVVNN1VVRkZkRVVzVFVGQlRTeEhRVUZITEVkQlFUQkNMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVVU1UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xbEJRM0JETEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhGUVVGRkxFTkJRVU03V1VGRGRrTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRM1pFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVlVzUTBGQlF5eERRVUZETzBsQlF5OURMRU5CUVVNN1NVRkZhMElzWlVGQlpTeERRVU5vUXl4VFFVRjVRaXhGUVVONlFpeEhRVUZ4UWl4RlFVTnlRaXhOUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVhGRE8xRkJSWGhETEVsQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1MwRkJTeXhOUVVGTkxFTkJRVU1zVFVGQlRUdFpRVU01UWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExEQkRRVUV3UXl4RFFVRkRMRU5CUVVNN1VVRkZkRVVzVFVGQlRTeEhRVUZITEVkQlFUQkNMRWxCUVVrc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVVU1UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRk8xbEJRM0JETEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhGUVVGRkxFTkJRVU03V1VGRGRrTXNUVUZCVFN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRM1pFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVlVzUTBGQlF5eERRVUZETzBsQlF5OURMRU5CUVVNN1NVRkZVU3hWUVVGVkxFTkJRMnBDTEVkQlFXMUNMRVZCUTI1Q0xFMUJRV1U3VVVGRlppeFBRVUZQTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRla1FzUTBGQlF6dEpRVFJDYTBJc1RVRkJUU3hEUVVsMlFpeEpRVUZ4UkN4RlFVTnlSQ3hUUVVGcFFpeEZRVU5xUWl4alFVRjFRaXhMUVVGTExFVkJRelZDTEZOQlFYbEVPMUZCVFhwRUxFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyeERMRWxCUVVrc1pVRkJaU3hIUVVGSExGTkJSMVFzUTBGQlF6dFJRVVZrTEVsQlEwVXNSMEZCUnl4WlFVRlpMSEZDUVVGeFFqdFpRVU53UXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExEQkNRVUV3UWl4RFFVRkRPMWxCUXpsRExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUXpGQ0xFTkJRVU03V1VGRFJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU0xUkN4SlFVRkpMR3RDUVVGclFpeEZRVUZGTEVOQlFVTTdaMEpCUTNaQ0xHVkJRV1VzUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVTTNRaXhGUVVGRkxFVkJRMFlzVTBGQlV5eEpRVUZKTEVWQlFVVXNSVUZEWml4clFrRkJhMElzUTBGRGJrSXNRMEZCUXp0WlFVTktMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzU1VGQlNTeERRVUZETEZkQlFWYzdXVUZEWkN4UFFVRlBMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRMnBDTEVsQlFVa3NSVUZEU2l4VFFVRm5RaXhGUVVOb1FpeFhRVUZyUWl4RlFVTnNRaXhsUVVGelFpeERRVU5vUWl4RFFVRkRPMUZCUlZnc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRUdGhRVU5vUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFRRVUZuUWl4RlFVRkZMRmRCUVZjc1JVRkJSU3hsUVVGelFpeERRVUZETzJGQlEzWkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTzFsQlExb3NTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzV1VGQldTeHhRa0ZCY1VJc1EwRkJRenRuUWtGRE4wTXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4RFFVRkRPMWxCUTNKRUxFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVN1owSkJRM2hDTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUTJoRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlR0dlFrRkRNVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXp0blFrRkRVQ3hIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yOUNRVU53UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFVkJRVVU3YjBKQlEyeEVMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03WVVGRFVpeERRVUZETEVOQlFVTTdVVUZEVEN4RFFVRkRMRU5CUVZFc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlR5eHpRa0ZCYzBJc1EwRkROVUlzUjBGQk1FSTdVVUZGTVVJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNNRUpCUVRCQ0xFTkJRVU03V1VGQlJTeFBRVUZQTzFGQlF6VkVMRTFCUVUwc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RFFVRTRRaXhEUVVGRE8xRkJRM0pGTEVsQlFVa3NRMEZCUXl4SlFVRkpPMWxCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03VVVGRE5VSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzFGQlEzcERMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4VFFVRlRMRU5CUVVNN1dVRkJSU3hQUVVGUExGTkJRVk1zUTBGQlF6dFJRVU51UlN4TlFVRk5MRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVONFJDeEpRVUZKTEVOQlFVTXNSMEZCUnp0WlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRek5DTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzWkVMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zWlVGQlpTeERRVU0xUWl4TFFVRm5ReXhGUVVOb1F5eExRVUZ4UkN4RlFVTnlSQ3hGUVVGWkxFVkJRMW9zUjBGQlJ5eEpRVUV5UXp0UlFVVTVReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdWQlFXVTdXVUZEZGtJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNiMFZCUVc5RkxFTkJRM0pGTEVOQlFVTTdVVUZEU2l4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxFZEJRVWNzUTBGQlF5eHBRa0ZCYVVJN1dVRkJSU3hQUVVGUE8xRkJRMnhETEVsQlFVa3NSMEZCUnl4RFFVRkRMR05CUVdNc1EwRkJReXhSUVVGUkxFTkJRVU03V1VGQlJTeFBRVUZQTzFGQlEzcERMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNUdFpRVUZGTEU5QlFVODdVVUZEZEVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOcVF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZEZGtRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRMjVFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNTVUZCU1N4VlFVRlZMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRM0JFTEhORlFVRnpSVHRaUVVOMFJTd3lSVUZCTWtVN1dVRkRNMFVzVFVGQlRTeExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0WlFVTnNSU3hOUVVGTkxGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNkMEpCUVhkQ08xbEJRMnBGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRlZCUVZVc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXp0WlFVTnNSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNaVUZCWlN4RFFVTjRReXhMUVVGTExFVkJRMHdzUzBGQlN5eEZRVU5NTEVWQlFVVXNSVUZEUml4TFFVRkxMRVZCUTB3c1QwRkJUeXhGUVVOUUxFZEJRVWNzUTBGRFNpeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFTkJRVlVzVlVGQlZTeERRVUZ6UWl4SFFVRnRRanRSUVVOcVJTeFBRVUZQTzFGQlExQXNjVU5CUVhGRE8xRkJRM0pETEd0RVFVRnJSRHRSUVVOc1JDeE5RVUZOTzFGQlEwNHNTVUZCU1R0UlFVTktMSGRFUVVGM1JEdFJRVU40UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhQUVVGUExFZEJRVWNzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXp0UlFVTjRSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVGRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRk5MRU5CUVVNN1VVRkRla1VzU1VGQlNTeEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGQlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRM3BGTEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhsUVVGbExFTkJRVU1zU1VGQlNTeERRVUZETzFsQlEzQkRMRTlCUVU4c1NVRkJTU3hsUVVGbExFTkJRVU1zUjBGQlJ5eERRVUZOTEVOQlFVTTdVVUZEZGtNc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkJSU3hQUVVGUExFbEJRVWtzVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMUZCUTI1RkxFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRVVVzVDBGQlR5eEpRVUZKTEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVUwc1EwRkJRenRSUVVOeVJTeEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUTNKRExFOUJRVThzU1VGQlNTeG5Ra0ZCWjBJc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVU40UXl4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXp0WlFVRkZMRTlCUVU4c1NVRkJTU3hqUVVGakxFTkJRVU1zUjBGQlJ5eERRVUZOTEVOQlFVTTdVVUZETTBVc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkJSU3hQUVVGUExFbEJRVWtzWVVGQllTeERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMUZCUTNwRkxFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEZGtNc1QwRkJUeXhKUVVGSkxHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRekZETEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMR05CUVdNc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVU16UlN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTndReXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMUZCUTNaRExFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEZGtNc1QwRkJUeXhKUVVGSkxHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRekZETEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXh0UWtGQmJVSXNRMEZCUXp0WlFVTnVReXhQUVVGUExFbEJRVWtzYlVKQlFXMUNMRU5CUXpWQ0xITkVRVUZ6UkN4SFFVRkhMRVZCUVVVc1EwRkRka1FzUTBGQlF6dFJRVVZVTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOSUxFMUJRVTBzUTBGQlZTeFZRVUZWTzFGQlEzaENMRXRCUVVzc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF6dFJRVU51UWl4VlFVRlZMRU5CUVVNc1YwRkJWeXhEUVVGRExHRkJRV0VzUTBGQlF6dGhRVU5zUXl4SFFVRkhMRU5CUVVNc1pVRkJaU3hEUVVGRExGVkJRVlVzUTBGQlF6dGhRVU12UWl4TlFVRk5MRU5CUVVNN1dVRkRUaXhUUVVGVExFVkJRVVVzVTBGQlV5eFRRVUZUTzJkQ1FVTXpRaXhQUVVGUExFdEJRVXNzUTBGRFZpeFJRVUZSTEVOQlFVTXNOa0pCUVRaQ0xFTkJRVU1zUlVGRGRrTXNXVUZCV1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlF6ZERMRU5CUVVNN1dVRkRTaXhEUVVGRE8xTkJRMHNzUTBGQlF6dGhRVU5TTEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUlZnc1ZVRkJWU3hEUVVGRExGZEJRVmNzUTBGQlF5eGhRVUZoTEVOQlFVTTdZVUZEYkVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eFZRVUZWTEVOQlFVTTdZVUZETDBJc1RVRkJUU3hEUVVGRE8xbEJRMDRzVTBGQlV5eEZRVUZGTEZOQlFWTXNVMEZCVXp0blFrRkRNMElzVDBGQlR5eExRVUZMTEVOQlExWXNZMEZCWXl4RFFVRkRMRFpDUVVFMlFpeERRVUZETEVWQlF6ZERMRmxCUVZrc1EwRkJReXhsUVVGbExFTkJRVU1zVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVTTNReXhEUVVGRE8xbEJRMG9zUTBGQlF6dFRRVU5MTEVOQlFVTTdZVUZEVWl4TFFVRkxMRVZCUVVVc1EwRkJRenRSUVVWWUxGVkJRVlVzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RFFVRkRPMkZCUTJ4RExFZEJRVWNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRPMkZCUXpOQ0xFMUJRVTBzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0aFFVTjRRaXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZZTEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1lVRkJZU3hEUVVGRE8yRkJRMnhETEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRE8yRkJRM2hDTEUxQlFVMHNRMEZCUXl4VFFVRlRMR05CUVdNN1dVRkROMElzVDBGQlR5eERRVUZETEUxQlFWY3NSVUZCUlN4SlFVRlZMRVZCUVVVc1JVRkJSVHRuUWtGRGFrTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRPVU1zUTBGQlF5eERRVUZETzFGQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZUQ3hWUVVGVkxFTkJRVU1zVjBGQlZ5eERRVUZETEdGQlFXRXNRMEZCUXp0aFFVTnNReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEV0QlFVc3NRMEZCUXp0aFFVTXhRaXhOUVVGTkxFTkJRVU1zVTBGQlV5eExRVUZMTEVOQlFVTXNSMEZCVVR0WlFVTTNRaXhOUVVGTkxFdEJRVXNzUjBGQlZTeEZRVUZGTEVOQlFVTTdXVUZEZUVJc1NVRkJTU3hQUVVGUExFZEJRMVFzVDBGQlR5eEhRVUZITEV0QlFVc3NWVUZCVlR0blFrRkRka0lzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU4wUWl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1dVRkZka01zVDBGQlR5eFBRVUZQTEVsQlFVa3NUMEZCVHl4TFFVRkxMRTFCUVUwc1NVRkJTU3hQUVVGUExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdaMEpCUXpGRUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1owSkJRM0JDTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlF6TkRMRU5CUVVNN1dVRkZSQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVVV6UXl4M1JFRkJkMFE3V1VGRGVFUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETzJkQ1FVTjRRaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNN1owSkJRMmhETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhYUVVGWExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXp0blFrRkRPVU1zV1VGQldTeEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1dVRkRPVUlzUTBGQlF6dFpRVVZFTEU5QlFVOHNXVUZCV1N4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE4wSXNRMEZCUXl4RFFVRkRPMkZCUTBRc1MwRkJTeXhGUVVGRkxFTkJRVU03U1VGRFlpeERRVUZET3p0QlFVZElMSEZDUVVGeFFpeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMEZCUTI1RExFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JEYjNWamFFUkNRV1JoY0hSbGNpeGNiaUFnUTI5MVkyaEVRa3RsZVhNc1hHNGdJRTFoYm1kdlVYVmxjbmtzWEc0Z0lGWnBaWGRTWlhOd2IyNXpaU3hjYmlBZ2NtVnhkV2x5WlVkbGJtVnlZWFJsWkZWelpVbHVaR1Y0TEZ4dUlDQmxibk4xY21WRVpYUmxjbTFwYm1semRHbGpVMjl5ZENCaGN5QmpiM1ZqYUVWdWMzVnlaVVJsZEdWeWJXbHVhWE4wYVdOVGIzSjBMRnh1SUNCblpYUlRiM0owUkdseVpXTjBhVzl1TEZ4dUlDQm5aWFJUYjNKMFJtbGxiR1J6TEZ4dUlDQjNZWEp1VTJOaGJsQnliMjVsVFdGdVoyOVBjR1Z5WVhSdmNuTXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Wm05eUxXTnZkV05vWkdKY0lqdGNibWx0Y0c5eWRDQjdJRTF2WkdWc0xDQldZV3hwWkdGMGFXOXVTMlY1Y3lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3SUdOeVpXRjBaVWhoYzJnZ2ZTQm1jbTl0SUZ3aVkzSjVjSFJ2WENJN1hHNXBiWEJ2Y25RZ2V5QkdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSXVMME52Ym5SeVlXTjBRMjl1ZEdWNGRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FtRmtVbVZ4ZFdWemRFVnljbTl5TEZ4dUlDQkNZWE5sUlhKeWIzSXNYRzRnSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5eGNiaUFnUTI5dVpteHBZM1JGY25KdmNpeGNiaUFnU1c1MFpYSnVZV3hGY25KdmNpeGNiaUFnVG05MFJtOTFibVJGY25KdmNpeGNiaUFnYjI1RGNtVmhkR1VzWEc0Z0lHOXVRM0psWVhSbFZYQmtZWFJsTEZ4dUlDQlBjR1Z5WVhScGIyNUxaWGx6TEZ4dUlDQlFjbWx0WVhKNVMyVjVWSGx3WlN4Y2JpQWdVMlZ5YVdGc2FYcGhkR2x2YmtWeWNtOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFTnZiblJsZUhRZ1lYTWdRM1I0TEZ4dUlDQlBZbXBsWTNRZ1lYTWdSbUZpY21salQySnFaV04wTEZ4dUlDQlFjbTl3WlhKMGVTeGNiaUFnVUhKdmNHVnlkSGtnWVhNZ1JtRmljbWxqVUhKdmNHVnlkSGtzWEc1OUlHWnliMjBnWENKbVlXSnlhV010WTI5dWRISmhZM1F0WVhCcFhDSTdYRzVwYlhCdmNuUWdleUJNYjJkblpYSXNJRXh2WjJkcGJtY2dmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMnh2WjJkcGJtZGNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3l4Y2JpQWdVbVZzWVhScGIyNXpUV1YwWVdSaGRHRXNYRzRnSUZObGNYVmxibU5sTEZ4dUlDQlRaWEYxWlc1alpVOXdkR2x2Ym5Nc1hHNGdJRlZ1YzNWd2NHOXlkR1ZrUlhKeWIzSXNYRzRnSUVGa1lYQjBaWElzWEc0Z0lFRmtZWEIwWlhKR2JHRm5jeXhjYmlBZ1VISmxjR0Z5WldSTmIyUmxiQ3hjYmlBZ1VtVndiM05wZEc5eWVTeGNiaUFnVVhWbGNubEZjbkp2Y2l4Y2JpQWdVR0ZuYVc1blJYSnliM0lzWEc0Z0lFMXBaM0poZEdsdmJrVnljbTl5TEZ4dUlDQlBZbk5sY25abGNrVnljbTl5TEZ4dUlDQkJkWFJvYjNKcGVtRjBhVzl1UlhKeWIzSXNYRzRnSUVadmNtSnBaR1JsYmtWeWNtOXlMRnh1SUNCRGIyNXVaV04wYVc5dVJYSnliM0lzWEc0Z0lFTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN5eGNiaUFnUTI5dWRHVjRkQ3hjYmlBZ1VtRjNVbVZ6ZFd4MExGeHVJQ0JRWVdkcGJtRjBiM0lzWEc0Z0lFTnZiblJsZUhSMVlXeEJjbWR6TEZ4dUlDQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY3NYRzRnSUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1TEZ4dUlDQkJiR3hQY0dWeVlYUnBiMjVMWlhsekxGeHVJQ0JHYkdGbmMwOW1MRnh1SUNCRGIyNTBaWGgwVDJZc1hHNGdJRTl5WkdWeVJHbHlaV04wYVc5dUxGeHVJQ0JVY21GdWMyRmpkR2x2Yms5d1pYSmhkR2x2Ymt0bGVYTXNYRzRnSUVWMlpXNTBTV1J6TEZ4dUlDQkVhWE53WVhSamFDeGNiaUFnY0hKdmJXbHpaVk5sY1hWbGJtTmxMRnh1SUNCeVpYTnZiSFpsUW5Wc2ExTmxjWFZsYm1ObFVtVnpkV3gwTEZ4dWZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVNCOUlHWnliMjBnWENJdUwwWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnUTJoaGFXNWpiMlJsVTNSMVlpeGNiaUFnUTJ4cFpXNTBTV1JsYm5ScGRIa3NYRzRnSUVsMFpYSmhkRzl5Y3l4Y2JpQWdVM1JoZEdWUmRXVnllVkpsYzNCdmJuTmxMRnh1ZlNCbWNtOXRJRndpWm1GaWNtbGpMWE5vYVcwdFlYQnBYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05UZEdGMFpXMWxiblFnZlNCbWNtOXRJRndpTGk5R1lXSnlhV05EYjI1MGNtRmpkRk4wWVhSbGJXVnVkRndpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTI5dWRISmhZM1JUWlhGMVpXNWpaU0I5SUdaeWIyMGdYQ0l1TDBaaFluSnBZME52Ym5SeVlXTjBVMlZ4ZFdWdVkyVmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZMFpzWVhadmRYSXNJRVpoWW5KcFkwMXZaR1ZzUzJWNWN5QjlJR1p5YjIwZ1hDSXVMaTl6YUdGeVpXUXZZMjl1YzNSaGJuUnpYQ0k3WEc1cGJYQnZjblFnZXlCVGFXMXdiR1ZFWlhSbGNtMXBibWx6ZEdsalUyVnlhV0ZzYVhwbGNpQjlJR1p5YjIwZ1hDSXVMaTl6YUdGeVpXUXZVMmx0Y0d4bFJHVjBaWEp0YVc1cGMzUnBZMU5sY21saGJHbDZaWEpjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJR0Z3Y0d4NUxGeHVJQ0JEYjI1emRISjFZM1J2Y2l4Y2JpQWdSR1ZqYjNKaGRHbHZiaXhjYmlBZ1RXVjBZV1JoZEdFc1hHNGdJSEJ5YjNCTlpYUmhaR0YwWVN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGFXOXVYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRkJoWjJsdVlYUnZjaUI5SUdaeWIyMGdYQ0l1TDBaaFluSnBZME52Ym5SeVlXTjBVR0ZuYVc1aGRHOXlYQ0k3WEc1cGJYQnZjblFnZXlCTmFYTnphVzVuUTI5dWRHVjRkRVZ5Y205eUlIMGdabkp2YlNCY0lpNHVMM05vWVhKbFpDOWxjbkp2Y25OY0lqdGNibWx0Y0c5eWRDQjdJRk5sWjNKbFoyRjBaV1JOYjJSbGJDQjlJR1p5YjIwZ1hDSXVMaTl6YUdGeVpXUXZhVzVrWlhoY0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFJHbHpjR0YwWTJnZ2ZTQm1jbTl0SUZ3aUxpOUdZV0p5YVdORGIyNTBjbUZqZEVScGMzQmhkR05vWENJN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUVaaFluSnBZME52Ym5SbGVIUjFZV3hwZW1Wa1FYSm5jenhjYmlBZ1FWSkhVeUJsZUhSbGJtUnpJR0Z1ZVZ0ZElEMGdZVzU1VzEwc1hHNGdJRVZZVkVWT1JDQmxlSFJsYm1SeklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlN4Y2JqNGdQU0JEYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExDQkJVa2RUTENCRldGUkZUa1ErSUNZZ2UxeHVJQ0J6ZEhWaU9pQkRhR0ZwYm1OdlpHVlRkSFZpTzF4dUlDQnBaR1Z1ZEdsMGVUb2dRMnhwWlc1MFNXUmxiblJwZEhrN1hHNTlPMXh1WEc1MGVYQmxJRkJ5YVhaaGRHVlRlVzUwYUdWMGFXTkNiMjlyYldGeWF5QTlJSHRjYmlBZ2MyOXlkRVpwWld4a09pQnpkSEpwYm1jN1hHNGdJR1JwY21WamRHbHZiam9nWENKaGMyTmNJaUI4SUZ3aVpHVnpZMXdpTzF4dUlDQnBaRVpwWld4a09pQnpkSEpwYm1jN1hHNGdJR3hoYzNSV1lXeDFaVG9nWVc1NU8xeHVJQ0JzWVhOMFNXUTZJSE4wY21sdVp6dGNiaUFnY1hWbGNubElZWE5vT2lCemRISnBibWM3WEc1OU8xeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCVFpYUnpJSFJvWlNCamNtVmhkRzl5SUc5eUlIVndaR0YwWlhJZ1ptbGxiR1FnYVc0Z1lTQnRiMlJsYkNCaVlYTmxaQ0J2YmlCMGFHVWdkWE5sY2lCcGJpQjBhR1VnWTI5dWRHVjRkRnh1SUNvZ1FITjFiVzFoY25rZ1EyRnNiR0poWTJzZ1puVnVZM1JwYjI0Z2RYTmxaQ0JwYmlCa1pXTnZjbUYwYjNKeklIUnZJR0YxZEc5dFlYUnBZMkZzYkhrZ2MyVjBJSFJvWlNCamNtVmhkR1ZrWDJKNUlHOXlJSFZ3WkdGMFpXUmZZbmtnWm1sbGJHUnpYRzRnS2lCM2FYUm9JSFJvWlNCMWMyVnlibUZ0WlNCbWNtOXRJSFJvWlNCamIyNTBaWGgwSUhkb1pXNGdZU0JrYjJOMWJXVnVkQ0JwY3lCamNtVmhkR1ZrSUc5eUlIVndaR0YwWldSY2JpQXFJRUIwWlcxd2JHRjBaU0JOSUMwZ1ZIbHdaU0JsZUhSbGJtUnBibWNnVFc5a1pXeGNiaUFxSUVCMFpXMXdiR0YwWlNCU0lDMGdWSGx3WlNCbGVIUmxibVJwYm1jZ1RtRnViMUpsY0c5emFYUnZjbms4VFQ1Y2JpQXFJRUIwWlcxd2JHRjBaU0JXSUMwZ1ZIbHdaU0JsZUhSbGJtUnBibWNnVW1Wc1lYUnBiMjV6VFdWMFlXUmhkR0ZjYmlBcUlFQndZWEpoYlNCN1VuMGdkR2hwY3lBdElGUm9aU0J5WlhCdmMybDBiM0o1SUdsdWMzUmhibU5sWEc0Z0tpQkFjR0Z5WVcwZ2UwWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkSDBnWTI5dWRHVjRkQ0F0SUZSb1pTQnZjR1Z5WVhScGIyNGdZMjl1ZEdWNGRDQmpiMjUwWVdsdWFXNW5JSFZ6WlhJZ2FXNW1iM0p0WVhScGIyNWNiaUFxSUVCd1lYSmhiU0I3Vm4wZ1pHRjBZU0F0SUZSb1pTQnlaV3hoZEdsdmJpQnRaWFJoWkdGMFlWeHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR3RsZVNBdElGUm9aU0J3Y205d1pYSjBlU0JyWlhrZ2RHOGdjMlYwSUhkcGRHZ2dkR2hsSUhWelpYSnVZVzFsWEc0Z0tpQkFjR0Z5WVcwZ2UwMTlJRzF2WkdWc0lDMGdWR2hsSUcxdlpHVnNJR2x1YzNSaGJtTmxJR0psYVc1bklHTnlaV0YwWldRZ2IzSWdkWEJrWVhSbFpGeHVJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHgyYjJsa1BuMGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2QyaGxiaUIwYUdVZ2IzQmxjbUYwYVc5dUlHbHpJR052YlhCc1pYUmxYRzRnS2lCQVpuVnVZM1JwYjI0Z1kzSmxZWFJsWkVKNVQyNUdZV0p5YVdORGNtVmhkR1ZWY0dSaGRHVmNiaUFxSUVCdFpXMWlaWEpQWmlCdGIyUjFiR1U2Wm1GaWNtbGpMbU52Ym5SeVlXTjBjMXh1SUNvZ1FHMWxjbTFoYVdSY2JpQXFJSE5sY1hWbGJtTmxSR2xoWjNKaGJWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkdJR0Z6SUdOeVpXRjBaV1JDZVU5dVRtRnViME55WldGMFpWVndaR0YwWlZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCRElHRnpJRU52Ym5SbGVIUmNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdUU0JoY3lCTmIyUmxiRnh1SUNvZ0lDQkdMVDQrUXpvZ1oyVjBLRndpZFhObGNsd2lLVnh1SUNvZ0lDQkRMUzArUGtZNklIVnpaWElnYjJKcVpXTjBYRzRnS2lBZ0lFWXRQajVOT2lCelpYUWdhMlY1SUhSdklIVnpaWEl1Ym1GdFpWeHVJQ29nSUNCT2IzUmxJRzkyWlhJZ1Jqb2dTV1lnYm04Z2RYTmxjaUJwYmlCamIyNTBaWGgwWEc0Z0tpQWdJRVl0TFQ0K1Jqb2dkR2h5YjNjZ1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2x4dUlDb3ZYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1kzSmxZWFJsWkVKNVQyNUdZV0p5YVdORGNtVmhkR1ZWY0dSaGRHVThYRzRnSUUwZ1pYaDBaVzVrY3lCTmIyUmxiQ3hjYmlBZ1VpQmxlSFJsYm1SeklFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVR4TlBpeGNiaUFnVmlCbGVIUmxibVJ6SUZKbGJHRjBhVzl1YzAxbGRHRmtZWFJoTEZ4dVBpaGNiaUFnZEdocGN6b2dVaXhjYmlBZ1kyOXVkR1Y0ZERvZ1EyOXVkR1Y0ZEU5bVBGSStMRnh1SUNCa1lYUmhPaUJXTEZ4dUlDQnJaWGs2SUd0bGVXOW1JRTBzWEc0Z0lHMXZaR1ZzT2lCTlhHNHBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnZEhKNUlIdGNiaUFnSUNCamIyNXpkQ0IxYzJWeUlEMGdZMjl1ZEdWNGRDNW5aWFFvWENKcFpHVnVkR2wwZVZ3aUtTQmhjeUJEYkdsbGJuUkpaR1Z1ZEdsMGVUdGNiaUFnSUNCdGIyUmxiRnRyWlhsZElEMGdkWE5sY2k1blpYUkpSQ2dwSUdGeklFMWJkSGx3Wlc5bUlHdGxlVjA3WEc0Z0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1YnkxMWJuVnpaV1F0ZG1GeWMxeHVJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnZEdoeWIzY2dibVYzSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lvWEc0Z0lDQWdJQ0JjSWs1dklGVnpaWElnWm05MWJtUWdhVzRnWTI5dWRHVjRkQzRnVUd4bFlYTmxJSEJ5YjNacFpHVWdZU0IxYzJWeUlHbHVJSFJvWlNCamIyNTBaWGgwWENKY2JpQWdJQ0FwTzF4dUlDQjlYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRUZrWVhCMFpYSWdabTl5SUVoNWNHVnliR1ZrWjJWeUlFWmhZbkpwWXlCamFHRnBibU52WkdVZ2MzUmhkR1VnWkdGMFlXSmhjMlVnYjNCbGNtRjBhVzl1YzF4dUlDb2dRSE4xYlcxaGNua2dVSEp2ZG1sa1pYTWdZU0JEYjNWamFFUkNMV3hwYTJVZ2FXNTBaWEptWVdObElHWnZjaUJwYm5SbGNtRmpkR2x1WnlCM2FYUm9JSFJvWlNCR1lXSnlhV01nYzNSaGRHVWdaR0YwWVdKaGMyVWdabkp2YlNCM2FYUm9hVzRnWVNCamFHRnBibU52WkdVZ1kyOXVkSEpoWTNSY2JpQXFJRUIwWlcxd2JHRjBaU0IyYjJsa0lDMGdUbThnWTI5dVptbG5kWEpoZEdsdmJpQnVaV1ZrWldRZ1ptOXlJR052Ym5SeVlXTjBJR0ZrWVhCMFpYSmNiaUFxSUVCMFpXMXdiR0YwWlNCR1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkeklDMGdSbXhoWjNNZ2MzQmxZMmxtYVdNZ2RHOGdSbUZpY21saklHTnZiblJ5WVdOMElHOXdaWEpoZEdsdmJuTmNiaUFxSUVCMFpXMXdiR0YwWlNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUWdMU0JEYjI1MFpYaDBJSFI1Y0dVZ1ptOXlJRVpoWW5KcFl5QmpiMjUwY21GamRDQnZjR1Z5WVhScGIyNXpYRzRnS2lCQVkyeGhjM01nUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeVhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ1lHQmdkSGx3WlhOamNtbHdkRnh1SUNvZ0x5OGdTVzRnWVNCR1lXSnlhV01nWTJoaGFXNWpiMlJsSUdOdmJuUnlZV04wSUdOc1lYTnpYRzRnS2lCcGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSWdmU0JtY205dElDZEFaR1ZqWVdZdGRITXZabTl5TFdaaFluSnBZeWM3WEc0Z0tseHVJQ29nWlhod2IzSjBJR05zWVhOeklFMTVRMjl1ZEhKaFkzUWdaWGgwWlc1a2N5QkRiMjUwY21GamRDQjdYRzRnS2lBZ0lIQnlhWFpoZEdVZ1lXUmhjSFJsY2lBOUlHNWxkeUJHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJb0tUdGNiaUFxWEc0Z0tpQWdJRUJVY21GdWMyRmpkR2x2YmlncFhHNGdLaUFnSUdGemVXNWpJR055WldGMFpVRnpjMlYwS0dOMGVEb2dRMjl1ZEdWNGRDd2dhV1E2SUhOMGNtbHVaeXdnWkdGMFlUb2djM1J5YVc1bktUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdLaUFnSUNBZ1kyOXVjM1FnYlc5a1pXd2dQU0I3SUdsa0xDQmtZWFJoTENCMGFXMWxjM1JoYlhBNklFUmhkR1V1Ym05M0tDa2dmVHRjYmlBcUlDQWdJQ0JoZDJGcGRDQjBhR2x6TG1Ga1lYQjBaWEl1WTNKbFlYUmxLQ2RoYzNObGRITW5MQ0JwWkN3Z2JXOWtaV3dzSUh0OUxDQjdJSE4wZFdJNklHTjBlQzV6ZEhWaUlIMHBPMXh1SUNvZ0lDQjlYRzRnS2lCOVhHNGdLaUJnWUdCY2JpQXFJRUJ0WlhKdFlXbGtYRzRnS2lCelpYRjFaVzVqWlVScFlXZHlZVzFjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUTI5dWRISmhZM1JjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGTjBkV0pjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVTNSaGRHVkVRbHh1SUNwY2JpQXFJQ0FnUTI5dWRISmhZM1F0UGo1R1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSTZJR055WldGMFpTaDBZV0pzWlU1aGJXVXNJR2xrTENCdGIyUmxiQ3dnZEhKaGJuTnBaVzUwTENCamRIZ3BYRzRnS2lBZ0lFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTArUGtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqb2dVMlZ5YVdGc2FYcGxJRzF2WkdWc0lIUnZJRXBUVDA1Y2JpQXFJQ0FnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxUNCtVM1IxWWpvZ2NIVjBVM1JoZEdVb2FXUXNJSE5sY21saGJHbDZaV1JFWVhSaEtWeHVJQ29nSUNCVGRIVmlMVDQrVTNSaGRHVkVRam9nVjNKcGRHVWdaR0YwWVZ4dUlDb2dJQ0JUZEdGMFpVUkNMUzArUGxOMGRXSTZJRk4xWTJObGMzTmNiaUFxSUNBZ1UzUjFZaTB0UGo1R1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSTZJRk4xWTJObGMzTmNiaUFxSUNBZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMUzArUGtOdmJuUnlZV04wT2lCdGIyUmxiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUlHVjRkR1Z1WkhNZ1EyOTFZMmhFUWtGa1lYQjBaWEk4WEc0Z0lHRnVlU3hjYmlBZ2RtOXBaQ3hjYmlBZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBYRzQrSUh0Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1VGSkpWa0ZVUlY5Q1QwOUxUVUZTUzE5UVVrVkdTVmdnUFNCY0lsOWZaR05tWDNCMmRHSnRYMTljSWp0Y2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QnpkR0ZpYkdWVGRISnBibWRwWm5rb2RtRnNkV1U2SUhWdWEyNXZkMjRwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNoMllXeDFaU0E5UFQwZ2JuVnNiQ0I4ZkNCMGVYQmxiMllnZG1Gc2RXVWdJVDA5SUZ3aWIySnFaV04wWENJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCS1UwOU9Mbk4wY21sdVoybG1lU2gyWVd4MVpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWUZza2UzWmhiSFZsWEc0Z0lDQWdJQ0FnSUM1dFlYQW9LSFlwSUQwK0lFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTV6ZEdGaWJHVlRkSEpwYm1kcFpua29kaWtwWEc0Z0lDQWdJQ0FnSUM1cWIybHVLRndpTEZ3aUtYMWRZRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCdlltb2dQU0IyWVd4MVpTQmhjeUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBqdGNiaUFnSUNCeVpYUjFjbTRnWUhza2UwOWlhbVZqZEM1clpYbHpLRzlpYWlsY2JpQWdJQ0FnSUM1emIzSjBLQ2xjYmlBZ0lDQWdJQzV0WVhBb1hHNGdJQ0FnSUNBZ0lDaHJaWGtwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdZQ1I3U2xOUFRpNXpkSEpwYm1kcFpua29hMlY1S1gwNkpIdEdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEl1YzNSaFlteGxVM1J5YVc1bmFXWjVLRzlpYWx0clpYbGRLWDFnWEc0Z0lDQWdJQ0FwWEc0Z0lDQWdJQ0F1YW05cGJpaGNJaXhjSWlsOWZXQTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QjBiMEoxWm1abGNpaDJZV3gxWlRvZ2RXNXJibTkzYmlrNklFSjFabVpsY2lCN1hHNGdJQ0FnYVdZZ0tFSjFabVpsY2k1cGMwSjFabVpsY2loMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIyWVd4MVpUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kbUZzZFdVZ2FXNXpkR0Z1WTJWdlppQlZhVzUwT0VGeWNtRjVLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdRblZtWm1WeUxtWnliMjBvZG1Gc2RXVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwZVhCbGIyWWdkbUZzZFdVZ1BUMDlJRndpYzNSeWFXNW5YQ0lwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJDZFdabVpYSXVabkp2YlNoMllXeDFaU3dnWENKMWRHWTRYQ0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMllXeDFaU0JwYm5OMFlXNWpaVzltSUVGeWNtRjVRblZtWm1WeUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1FuVm1abVZ5TG1aeWIyMG9kbUZzZFdVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lIWmhiSFZsSUNZbVhHNGdJQ0FnSUNCMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUZ3aWIySnFaV04wWENJZ0ppWmNiaUFnSUNBZ0lGd2lZblZtWm1WeVhDSWdhVzRnZG1Gc2RXVWdKaVpjYmlBZ0lDQWdJQ2gyWVd4MVpTQmhjeUJoYm5rcExtSjFabVpsY2lCcGJuTjBZVzVqWlc5bUlFRnljbUY1UW5WbVptVnlYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMGVYQmxaQ0E5SUhaaGJIVmxJR0Z6SUh0Y2JpQWdJQ0FnSUNBZ1luVm1abVZ5T2lCQmNuSmhlVUoxWm1abGNqdGNiaUFnSUNBZ0lDQWdZbmwwWlU5bVpuTmxkRDg2SUc1MWJXSmxjanRjYmlBZ0lDQWdJQ0FnWW5sMFpVeGxibWQwYUQ4NklHNTFiV0psY2p0Y2JpQWdJQ0FnSUgwN1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCQ2RXWm1aWEl1Wm5KdmJTaDBlWEJsWkM1aWRXWm1aWElzSUhSNWNHVmtMbUo1ZEdWUFptWnpaWFFnZkh3Z01Dd2dkSGx3WldRdVlubDBaVXhsYm1kMGFDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHliM2NnYm1WM0lGTmxjbWxoYkdsNllYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lHQkRZVzV1YjNRZ1kyOXVkbVZ5ZENCd2NtbDJZWFJsSUhGMVpYSjVJSFpoYkhWbElIUnZJRUoxWm1abGNqb2dKSHRQWW1wbFkzUXVjSEp2ZEc5MGVYQmxMblJ2VTNSeWFXNW5MbU5oYkd3b1hHNGdJQ0FnSUNBZ0lIWmhiSFZsWEc0Z0lDQWdJQ0FwZldCY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nY0hKcGRtRjBaVkYxWlhKNVNHRnphQ2h4ZFdWeWVUb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVnNaWFpoYm5RZ1BTQjdYRzRnSUNBZ0lDQnpaV3hsWTNSdmNqb2djWFZsY25rdWMyVnNaV04wYjNJZ2ZId2dlMzBzWEc0Z0lDQWdJQ0J6YjNKME9pQnhkV1Z5ZVM1emIzSjBJSHg4SUZ0ZExGeHVJQ0FnSUNBZ1ptbGxiR1J6T2lCeGRXVnllUzVtYVdWc1pITWdmSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnZFhObFgybHVaR1Y0T2lCeGRXVnllUzUxYzJWZmFXNWtaWGdnZkh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUgwN1hHNWNiaUFnSUNCeVpYUjFjbTRnWTNKbFlYUmxTR0Z6YUNoY0luTm9ZVEkxTmx3aUtWeHVJQ0FnSUNBZ0xuVndaR0YwWlNoR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVjM1JoWW14bFUzUnlhVzVuYVdaNUtISmxiR1YyWVc1MEtTbGNiaUFnSUNBZ0lDNWthV2RsYzNRb1hDSmlZWE5sTmpSMWNteGNJaWs3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJoZEhSaFkyaEhaVzVsY21GMFpXUlFjbWwyWVhSbFZYTmxTVzVrWlhnb1hHNGdJQ0FnY1hWbGNuazZJRTFoYm1kdlVYVmxjbmtzWEc0Z0lDQWdiRzluUHpvZ1RHOW5aMlZ5WEc0Z0lDazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTjBJSE5sYkdWamRHOXlJRDBnY1hWbGNua3VjMlZzWldOMGIzSWdZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCelpXeGxZM1J2Y2o4dVcwTnZkV05vUkVKTFpYbHpMbFJCUWt4RlhUdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlIUmhZbXhsVG1GdFpTQWhQVDBnWENKemRISnBibWRjSWlCOGZDQWhkR0ZpYkdWT1lXMWxMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUd4bGRDQmpiR0Y2ZWpvZ1EyOXVjM1J5ZFdOMGIzSThUVzlrWld3K0lId2dkVzVrWldacGJtVmtPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0JqYkdGNmVpQTlJRTF2WkdWc0xtWnliMjFVWVdKc1pTaDBZV0pzWlU1aGJXVXBJR0Z6SUVOdmJuTjBjblZqZEc5eVBFMXZaR1ZzUGp0Y2JpQWdJQ0I5SUdOaGRHTm9JSHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYRjFhWEpsUjJWdVpYSmhkR1ZrVlhObFNXNWtaWGdvWTJ4aGVub3NJSEYxWlhKNUxDQnNiMmNzSUh0Y2JpQWdJQ0FnSUhKbGNYVnBjbVZUYjNKMFEyOTJaWEpoWjJVNklIUnlkV1VzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJqYjNWdWRGTmxiR1ZqZEc5eVJtbGxiR1JQWTJOMWNuSmxibU5sY3loY2JpQWdJQ0J6Wld4bFkzUnZjam9nZFc1cmJtOTNiaXhjYmlBZ0lDQmpiM1Z1ZEhNNklFMWhjRHh6ZEhKcGJtY3NJRzUxYldKbGNqNGdQU0J1WlhjZ1RXRndQSE4wY21sdVp5d2diblZ0WW1WeVBpZ3BYRzRnSUNrNklFMWhjRHh6ZEhKcGJtY3NJRzUxYldKbGNqNGdlMXh1SUNBZ0lHbG1JQ2doYzJWc1pXTjBiM0lnZkh3Z2RIbHdaVzltSUhObGJHVmpkRzl5SUNFOVBTQmNJbTlpYW1WamRGd2lLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZMjkxYm5Sek8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaEJjbkpoZVM1cGMwRnljbUY1S0hObGJHVmpkRzl5S1NrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQmxiblJ5ZVNCdlppQnpaV3hsWTNSdmNpa2dlMXh1SUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdVkyOTFiblJUWld4bFkzUnZja1pwWld4a1QyTmpkWEp5Wlc1alpYTW9aVzUwY25rc0lHTnZkVzUwY3lrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWTI5MWJuUnpPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdXMnRsZVN3Z2RtRnNkV1ZkSUc5bUlFOWlhbVZqZEM1bGJuUnlhV1Z6S0Z4dUlDQWdJQ0FnYzJWc1pXTjBiM0lnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBseHVJQ0FnSUNrcElIdGNiaUFnSUNBZ0lHbG1JQ2doVzF3aUpHRnVaRndpTENCY0lpUnZjbHdpTENCY0lpUnViM1JjSWwwdWFXNWpiSFZrWlhNb2EyVjVLU2tnZTF4dUlDQWdJQ0FnSUNCamIzVnVkSE11YzJWMEtHdGxlU3dnS0dOdmRXNTBjeTVuWlhRb2EyVjVLU0I4ZkNBd0tTQXJJREVwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9kbUZzZFdVZ0ppWWdkSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQmNJbTlpYW1WamRGd2lLU0I3WEc0Z0lDQWdJQ0FnSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNWpiM1Z1ZEZObGJHVmpkRzl5Um1sbGJHUlBZMk4xY25KbGJtTmxjeWgyWVd4MVpTd2dZMjkxYm5SektUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnWTI5MWJuUnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdhWE5PZFd4c1RHOTNaWEpDYjNWdVpFMWhjbXRsY2loMllXeDFaVG9nZFc1cmJtOTNiaWs2SUdKdmIyeGxZVzRnZTF4dUlDQWdJR2xtSUNnaGRtRnNkV1VnZkh3Z2RIbHdaVzltSUhaaGJIVmxJQ0U5UFNCY0ltOWlhbVZqZEZ3aUlIeDhJRUZ5Y21GNUxtbHpRWEp5WVhrb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWlc1MGNtbGxjeUE5SUU5aWFtVmpkQzVsYm5SeWFXVnpLSFpoYkhWbElHRnpJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRwTzF4dUlDQWdJR2xtSUNobGJuUnlhV1Z6TG14bGJtZDBhQ0FoUFQwZ01Ta2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElGdHZjR1Z5WVhSdmNpd2dZbTkxYm1SZElEMGdaVzUwY21sbGMxc3dYVHRjYmlBZ0lDQnlaWFIxY200Z0tHOXdaWEpoZEc5eUlEMDlQU0JjSWlSbmRGd2lJSHg4SUc5d1pYSmhkRzl5SUQwOVBTQmNJaVJuZEdWY0lpa2dKaVlnWW05MWJtUWdQVDA5SUc1MWJHdzdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QnViM0p0WVd4cGVtVk5ZVzVuYjFGMVpYSjVSbTl5UlhobFkzVjBhVzl1S0Z4dUlDQWdJSEYxWlhKNU9pQk5ZVzVuYjFGMVpYSjVYRzRnSUNrNklFMWhibWR2VVhWbGNua2dlMXh1SUNBZ0lHTnZibk4wSUc1dmNtMWhiR2w2WldRNklFMWhibWR2VVhWbGNua2dQU0I3WEc0Z0lDQWdJQ0F1TGk1eGRXVnllU3hjYmlBZ0lDQWdJSE5sYkdWamRHOXlPbHh1SUNBZ0lDQWdJQ0J4ZFdWeWVTNXpaV3hsWTNSdmNpQW1KaUIwZVhCbGIyWWdjWFZsY25rdWMyVnNaV04wYjNJZ1BUMDlJRndpYjJKcVpXTjBYQ0pjYmlBZ0lDQWdJQ0FnSUNBL0lIc2dMaTR1S0hGMVpYSjVMbk5sYkdWamRHOXlJR0Z6SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0cElIMWNiaUFnSUNBZ0lDQWdJQ0E2SUhGMVpYSjVMbk5sYkdWamRHOXlMRnh1SUNBZ0lIMDdYRzVjYmlBZ0lDQnBaaUFvSVc1dmNtMWhiR2w2WldRdWMyVnNaV04wYjNJZ2ZId2dkSGx3Wlc5bUlHNXZjbTFoYkdsNlpXUXVjMlZzWldOMGIzSWdJVDA5SUZ3aWIySnFaV04wWENJcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdWIzSnRZV3hwZW1Wa08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR052ZFc1MGN5QTlJRVpoWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2k1amIzVnVkRk5sYkdWamRHOXlSbWxsYkdSUFkyTjFjbkpsYm1ObGN5aGNiaUFnSUNBZ0lHNXZjbTFoYkdsNlpXUXVjMlZzWldOMGIzSmNiaUFnSUNBcE8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmJabWxsYkdRc0lIWmhiSFZsWFNCdlppQlBZbXBsWTNRdVpXNTBjbWxsY3loY2JpQWdJQ0FnSUc1dmNtMWhiR2w2WldRdWMyVnNaV04wYjNJZ1lYTWdVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQbHh1SUNBZ0lDa3BJSHRjYmlBZ0lDQWdJR2xtSUNoY2JpQWdJQ0FnSUNBZ0lVWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTVwYzA1MWJHeE1iM2RsY2tKdmRXNWtUV0Z5YTJWeUtIWmhiSFZsS1NCOGZGeHVJQ0FnSUNBZ0lDQW9ZMjkxYm5SekxtZGxkQ2htYVdWc1pDa2dmSHdnTUNrZ1BEMGdNVnh1SUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuUnBiblZsTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCa1pXeGxkR1VnS0c1dmNtMWhiR2w2WldRdWMyVnNaV04wYjNJZ1lYTWdVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaWxiWm1sbGJHUmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCdWIzSnRZV3hwZW1Wa08xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ1luVnBiR1JRY21sMllYUmxRMjl1ZEdsdWRXRjBhVzl1VTJWc1pXTjBiM0lvWEc0Z0lDQWdjMlZzWldOMGIzSTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdjMjl5ZEVacFpXeGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1pHbHlaV04wYVc5dU9pQmNJbUZ6WTF3aUlId2dYQ0prWlhOalhDSXNYRzRnSUNBZ2FXUkdhV1ZzWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR3hoYzNSV1lXeDFaVG9nWVc1NUxGeHVJQ0FnSUd4aGMzUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIWmhjbWxoYm5RNklGd2ljMkZ0WlZ3aUlId2dYQ0p1WlhoMFhDSmNiaUFnS1RvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpQjdYRzRnSUNBZ1kyOXVjM1FnWTIxd0lEMGdaR2x5WldOMGFXOXVJRDA5UFNCY0ltUmxjMk5jSWlBL0lGd2lKR3gwWENJZ09pQmNJaVJuZEZ3aU8xeHVJQ0FnSUdOdmJuTjBJR2xrUTIxd0lEMGdaR2x5WldOMGFXOXVJRDA5UFNCY0ltUmxjMk5jSWlBL0lGd2lKR3gwWENJZ09pQmNJaVJuZEZ3aU8xeHVYRzRnSUNBZ2FXWWdLR2xrUm1sbGJHUWdQVDA5SUhOdmNuUkdhV1ZzWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWTI5dWRHbHVkV0YwYVc5dUlEMGdlMXh1SUNBZ0lDQWdJQ0JiYzI5eWRFWnBaV3hrWFRvZ2UxeHVJQ0FnSUNBZ0lDQWdJRnRqYlhCZE9pQnNZWE4wVm1Gc2RXVXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0I5TzF4dVhHNGdJQ0FnSUNCcFppQW9JWE5sYkdWamRHOXlJSHg4SUNGUFltcGxZM1F1YTJWNWN5aHpaV3hsWTNSdmNpa3ViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmpiMjUwYVc1MVlYUnBiMjQ3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUNSaGJtUTZJRnR6Wld4bFkzUnZjaXdnWTI5dWRHbHVkV0YwYVc5dVhTeGNiaUFnSUNBZ0lIMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWTJ4aGRYTmxjeUE5WEc0Z0lDQWdJQ0IyWVhKcFlXNTBJRDA5UFNCY0luTmhiV1ZjSWx4dUlDQWdJQ0FnSUNBL0lGdGNiaUFnSUNBZ0lDQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnVzNOdmNuUkdhV1ZzWkYwNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWtaWEU2SUd4aGMzUldZV3gxWlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lGdHBaRVpwWld4a1hUb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnRwWkVOdGNGMDZJR3hoYzNSSlpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdYVnh1SUNBZ0lDQWdJQ0E2SUZ0Y2JpQWdJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdXM052Y25SR2FXVnNaRjA2SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCYlkyMXdYVG9nYkdGemRGWmhiSFZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnSUNCZE8xeHVYRzRnSUNBZ2FXWWdLQ0Z6Wld4bFkzUnZjaUI4ZkNBaFQySnFaV04wTG10bGVYTW9jMlZzWldOMGIzSXBMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHTnNZWFZ6WlhNdWJHVnVaM1JvSUQwOVBTQXhYRzRnSUNBZ0lDQWdJRDhnWTJ4aGRYTmxjMXN3WFZ4dUlDQWdJQ0FnSUNBNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNSaGJtUTZJR05zWVhWelpYTXNYRzRnSUNBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdKR0Z1WkRvZ1czTmxiR1ZqZEc5eUxDQXVMaTVqYkdGMWMyVnpYU3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdZblZwYkdSUGNteGxjM05MWlhselpYUkRiMjUwYVc1MVlYUnBiMjVSZFdWeWFXVnpLRnh1SUNBZ0lIRjFaWEo1T2lCTllXNW5iMUYxWlhKNUxGeHVJQ0FnSUdOMWNuTnZjam9nVUhKcGRtRjBaVk41Ym5Sb1pYUnBZMEp2YjJ0dFlYSnJMRnh1SUNBZ0lIQmhaMlZUYVhwbE9pQnVkVzFpWlhKY2JpQWdLVG9nVFdGdVoyOVJkV1Z5ZVZ0ZElIdGNiaUFnSUNCamIyNXpkQ0JpWVhObFVYVmxjbms2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0Z1BTQjdJQzR1TG5GMVpYSjVJSDA3WEc0Z0lDQWdaR1ZzWlhSbElHSmhjMlZSZFdWeWVTNXphMmx3TzF4dUlDQWdJR1JsYkdWMFpTQmlZWE5sVVhWbGNua3VZbTl2YTIxaGNtczdYRzRnSUNBZ1pHVnNaWFJsSUdKaGMyVlJkV1Z5ZVM1c2FXMXBkRHRjYmx4dUlDQWdJR2xtSUNoamRYSnpiM0l1YVdSR2FXVnNaQ0E5UFQwZ1kzVnljMjl5TG5OdmNuUkdhV1ZzWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYzJsdVoyeGxPaUJOWVc1bmIxRjFaWEo1SUQwZ2UxeHVJQ0FnSUNBZ0lDQXVMaTVpWVhObFVYVmxjbmtzWEc0Z0lDQWdJQ0FnSUhObGJHVmpkRzl5T2lCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVZblZwYkdSUWNtbDJZWFJsUTI5dWRHbHVkV0YwYVc5dVUyVnNaV04wYjNJb1hHNGdJQ0FnSUNBZ0lDQWdLR0poYzJWUmRXVnllUzV6Wld4bFkzUnZjaUI4ZkNCN2ZTa2dZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0FnSUNBZ0lDQmpkWEp6YjNJdWMyOXlkRVpwWld4a0xGeHVJQ0FnSUNBZ0lDQWdJR04xY25OdmNpNWthWEpsWTNScGIyNHNYRzRnSUNBZ0lDQWdJQ0FnWTNWeWMyOXlMbWxrUm1sbGJHUXNYRzRnSUNBZ0lDQWdJQ0FnWTNWeWMyOXlMbXhoYzNSV1lXeDFaU3hjYmlBZ0lDQWdJQ0FnSUNCamRYSnpiM0l1YkdGemRFbGtMRnh1SUNBZ0lDQWdJQ0FnSUZ3aWMyRnRaVndpWEc0Z0lDQWdJQ0FnSUNrZ1lYTWdZVzU1TEZ4dUlDQWdJQ0FnSUNCc2FXMXBkRG9nY0dGblpWTnBlbVVnS3lBeExGeHVJQ0FnSUNBZ2ZUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlGdHphVzVuYkdWZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1pwY25OME9pQk5ZVzVuYjFGMVpYSjVJRDBnZTF4dUlDQWdJQ0FnTGk0dVltRnpaVkYxWlhKNUxGeHVJQ0FnSUNBZ2MyVnNaV04wYjNJNklFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTVpZFdsc1pGQnlhWFpoZEdWRGIyNTBhVzUxWVhScGIyNVRaV3hsWTNSdmNpaGNiaUFnSUNBZ0lDQWdLR0poYzJWUmRXVnllUzV6Wld4bFkzUnZjaUI4ZkNCN2ZTa2dZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0FnSUNBZ1kzVnljMjl5TG5OdmNuUkdhV1ZzWkN4Y2JpQWdJQ0FnSUNBZ1kzVnljMjl5TG1ScGNtVmpkR2x2Yml4Y2JpQWdJQ0FnSUNBZ1kzVnljMjl5TG1sa1JtbGxiR1FzWEc0Z0lDQWdJQ0FnSUdOMWNuTnZjaTVzWVhOMFZtRnNkV1VzWEc0Z0lDQWdJQ0FnSUdOMWNuTnZjaTVzWVhOMFNXUXNYRzRnSUNBZ0lDQWdJRndpYzJGdFpWd2lYRzRnSUNBZ0lDQXBJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lHeHBiV2wwT2lCd1lXZGxVMmw2WlNBcklERXNYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lHTnZibk4wSUhObFkyOXVaRG9nVFdGdVoyOVJkV1Z5ZVNBOUlIdGNiaUFnSUNBZ0lDNHVMbUpoYzJWUmRXVnllU3hjYmlBZ0lDQWdJSE5sYkdWamRHOXlPaUJHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdVluVnBiR1JRY21sMllYUmxRMjl1ZEdsdWRXRjBhVzl1VTJWc1pXTjBiM0lvWEc0Z0lDQWdJQ0FnSUNoaVlYTmxVWFZsY25rdWMyVnNaV04wYjNJZ2ZId2dlMzBwSUdGeklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0lDQWdJR04xY25OdmNpNXpiM0owUm1sbGJHUXNYRzRnSUNBZ0lDQWdJR04xY25OdmNpNWthWEpsWTNScGIyNHNYRzRnSUNBZ0lDQWdJR04xY25OdmNpNXBaRVpwWld4a0xGeHVJQ0FnSUNBZ0lDQmpkWEp6YjNJdWJHRnpkRlpoYkhWbExGeHVJQ0FnSUNBZ0lDQmpkWEp6YjNJdWJHRnpkRWxrTEZ4dUlDQWdJQ0FnSUNCY0ltNWxlSFJjSWx4dUlDQWdJQ0FnS1NCaGN5QmhibmtzWEc0Z0lDQWdJQ0JzYVcxcGREb2djR0ZuWlZOcGVtVWdLeUF4TEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdXMlpwY25OMExDQnpaV052Ym1SZE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ1pXNXpkWEpsUkdWMFpYSnRhVzVwYzNScFkxQnlhWFpoZEdWVGIzSjBLRnh1SUNBZ0lIRjFaWEo1T2lCTllXNW5iMUYxWlhKNUxGeHVJQ0FnSUhScFpVSnlaV0ZyWlhJNklITjBjbWx1WjF4dUlDQXBPaUI3WEc0Z0lDQWdjMjl5ZEVacFpXeGtPaUJ6ZEhKcGJtYzdYRzRnSUNBZ1pHbHlaV04wYVc5dU9pQmNJbUZ6WTF3aUlId2dYQ0prWlhOalhDSTdYRzRnSUNBZ2FXUkdhV1ZzWkRvZ2MzUnlhVzVuTzF4dUlDQjlJSHRjYmlBZ0lDQnBaaUFvSVVGeWNtRjVMbWx6UVhKeVlYa29jWFZsY25rdWMyOXlkQ2tnZkh3Z0lYRjFaWEo1TG5OdmNuUXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dVR0ZuYVc1blJYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVVISnBkbUYwWlNCTllXNW5ieUJ3WVdkcGJtRjBhVzl1SUhKbGNYVnBjbVZ6SUdGdUlHVjRjR3hwWTJsMElITnZjblF1SUVGa1pDQnZjbVJsY2tKNUtDNHVMaWtnYzI4Z1lTQnpkR0ZpYkdVZ1oyVnVaWEpoZEdWa0lHbHVaR1Y0SUdOaGJpQmlaU0J6Wld4bFkzUmxaQzVjSWx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQmthWEpsWTNScGIyNGdQU0FvWjJWMFUyOXlkRVJwY21WamRHbHZiaWh4ZFdWeWVTa2dmSHhjYmlBZ0lDQWdJRTl5WkdWeVJHbHlaV04wYVc5dUxrRlRReWtnWVhNZ1QzSmtaWEpFYVhKbFkzUnBiMjQ3WEc0Z0lDQWdZMjkxWTJoRmJuTjFjbVZFWlhSbGNtMXBibWx6ZEdsalUyOXlkQ2h4ZFdWeWVTd2dkR2xsUW5KbFlXdGxjaXdnWkdseVpXTjBhVzl1S1R0Y2JseHVJQ0FnSUdOdmJuTjBJSE52Y25SR2FXVnNaSE1nUFNCblpYUlRiM0owUm1sbGJHUnpLSEYxWlhKNUtUdGNiaUFnSUNCamIyNXpkQ0J6YjNKMFJtbGxiR1FnUFNCemIzSjBSbWxsYkdSeld6QmRPMXh1SUNBZ0lHbG1JQ2doYzI5eWRFWnBaV3hrS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1VHRm5hVzVuUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpVUhKcGRtRjBaU0JOWVc1bmJ5QndZV2RwYm1GMGFXOXVJSEpsY1hWcGNtVnpJR0VnZG1Gc2FXUWdabWx5YzNRZ2MyOXlkQ0JtYVdWc1pDNWNJbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVhOdmNuUkdhV1ZzWkhNdWFXNWpiSFZrWlhNb2RHbGxRbkpsWVd0bGNpa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJRWVdkcGJtZEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ1lGQnlhWFpoZEdVZ1RXRnVaMjhnY0dGbmFXNWhkR2x2YmlCeVpYRjFhWEpsY3lCMGFXVXRZbkpsWVd0bGNpQnpiM0owSUdacFpXeGtJRndpSkh0MGFXVkNjbVZoYTJWeWZWd2lMbUJjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lITnZjblJHYVdWc1pDeGNiaUFnSUNBZ0lHUnBjbVZqZEdsdmJqb2daR2x5WldOMGFXOXVJR0Z6SUZ3aVlYTmpYQ0lnZkNCY0ltUmxjMk5jSWl4Y2JpQWdJQ0FnSUdsa1JtbGxiR1E2SUhScFpVSnlaV0ZyWlhJc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUhCaGNuTmxVSEpwZG1GMFpWSmxjM1ZzZEZaaGJIVmxLSFpoYkhWbE9pQkNkV1ptWlhJcE9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJSHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjR0Z5YzJWa0lEMGdTbE5QVGk1d1lYSnpaU2gyWVd4MVpTNTBiMU4wY21sdVp5aGNJblYwWmpoY0lpa3BPMXh1WEc0Z0lDQWdJQ0JwWmlBb0lYQmhjbk5sWkNCOGZDQjBlWEJsYjJZZ2NHRnljMlZrSUNFOVBTQmNJbTlpYW1WamRGd2lJSHg4SUVGeWNtRjVMbWx6UVhKeVlYa29jR0Z5YzJWa0tTa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9YQ0pRY21sMllYUmxJSEYxWlhKNUlISmxjM1ZzZENCcGN5QnViM1FnWVNCS1UwOU9JRzlpYW1WamRGd2lLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WMGRYSnVJSEJoY25ObFpDQmhjeUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1VwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVFpYSnBZV3hwZW1GMGFXOXVSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lHQkdZV2xzWldRZ2RHOGdjR0Z5YzJVZ2NISnBkbUYwWlNCeGRXVnllU0J5WlhOMWJIUWdkMmhwYkdVZ1luVnBiR1JwYm1jZ1ltOXZhMjFoY21zNklDUjdaWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR0Z6ZVc1aklHVjRaV04xZEdWUWNtbDJZWFJsVFdGdVoyOVFZV2RsVVhWbGNtbGxjeWhjYmlBZ0lDQnpkSFZpT2lCRGFHRnBibU52WkdWVGRIVmlMRnh1SUNBZ0lHTnZiR3hsWTNScGIyNDZJSE4wY21sdVp5eGNiaUFnSUNCeGRXVnlhV1Z6T2lCTllXNW5iMUYxWlhKNVcxMHNYRzRnSUNBZ2NHRm5aVk5wZW1VNklHNTFiV0psY2l4Y2JpQWdJQ0JzYjJjNklFeHZaMmRsY2x4dUlDQXBPaUJRY205dGFYTmxQRUZ5Y21GNVBIc2dhMlY1T2lCemRISnBibWM3SUhaaGJIVmxPaUJDZFdabVpYSWdmVDQrSUh0Y2JpQWdJQ0JqYjI1emRDQndZV2RsWkRvZ1FYSnlZWGs4ZXlCclpYazZJSE4wY21sdVp6c2dkbUZzZFdVNklFSjFabVpsY2lCOVBpQTlJRnRkTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCeElHOW1JSEYxWlhKcFpYTXBJSHRjYmlBZ0lDQWdJR2xtSUNod1lXZGxaQzVzWlc1bmRHZ2dQajBnY0dGblpWTnBlbVVnS3lBeEtTQjdYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeVpXMWhhVzVwYm1jZ1BTQndZV2RsVTJsNlpTQXJJREVnTFNCd1lXZGxaQzVzWlc1bmRHZzdYRzVjYmlBZ0lDQWdJR052Ym5OMElIRjFaWEo1Um05eVJYaGxZM1YwYVc5dU9pQk5ZVzVuYjFGMVpYSjVJRDBnZTF4dUlDQWdJQ0FnSUNBdUxpNXhMRnh1SUNBZ0lDQWdJQ0JzYVcxcGREb2djbVZ0WVdsdWFXNW5MRnh1SUNBZ0lDQWdmVHRjYmx4dUlDQWdJQ0FnWkdWc1pYUmxJSEYxWlhKNVJtOXlSWGhsWTNWMGFXOXVMbk5yYVhBN1hHNGdJQ0FnSUNCa1pXeGxkR1VnY1hWbGNubEdiM0pGZUdWamRYUnBiMjR1WW05dmEyMWhjbXM3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSEYxWlhKNVNuTnZiaUE5SUVwVFQwNHVjM1J5YVc1bmFXWjVLSEYxWlhKNVJtOXlSWGhsWTNWMGFXOXVLVHRjYmx4dUlDQWdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnSUNCZ1VYVmxjbmxwYm1jZ2NISnBkbUYwWlNCamIyeHNaV04wYVc5dUlDUjdZMjlzYkdWamRHbHZibjBnZDJsMGFDQk5ZVzVuYnlCeGRXVnllVG9nSkh0eGRXVnllVXB6YjI1OVlGeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdiR1YwSUhKbGMzQnZibk5sT2lCMWJtdHViM2R1TzF4dVhHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJSE4wZFdJdVoyVjBVSEpwZG1GMFpVUmhkR0ZSZFdWeWVWSmxjM1ZzZENoamIyeHNaV04wYVc5dUxDQnhkV1Z5ZVVwemIyNHBPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNCc2IyY3VaWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdXMXh1SUNBZ0lDQWdJQ0FnSUNBZ1lGQnlhWFpoZEdVZ1RXRnVaMjhnY0dGbmFXNWhkR1ZrSUhGMVpYSjVJR1poYVd4bFpHQXNYRzRnSUNBZ0lDQWdJQ0FnSUNCZ1kyOXNiR1ZqZEdsdmJqMGtlMk52Ykd4bFkzUnBiMjU5WUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJR0J4ZFdWeWVUMGtlM0YxWlhKNVNuTnZibjFnTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZR1Z5Y205eVBTUjdaU0JwYm5OMFlXNWpaVzltSUVWeWNtOXlJRDhnWlM1emRHRmpheUI4ZkNCbExtMWxjM05oWjJVZ09pQlRkSEpwYm1jb1pTbDlZQ3hjYmlBZ0lDQWdJQ0FnSUNCZExtcHZhVzRvWENKY1hHNWNJaWxjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCbE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmpiMjV6ZENCcGRHVnlZWFJ2Y2lBOUlDZ29jbVZ6Y0c5dWMyVWdZWE1nWVc1NUtTNXBkR1Z5WVhSdmNpQjhmRnh1SUNBZ0lDQWdJQ0J5WlhOd2IyNXpaU2tnWVhNZ1NYUmxjbUYwYjNKekxsTjBZWFJsVVhWbGNubEpkR1Z5WVhSdmNqdGNibHh1SUNBZ0lDQWdhV1lnS0NGcGRHVnlZWFJ2Y2lCOGZDQjBlWEJsYjJZZ2FYUmxjbUYwYjNJdWJtVjRkQ0FoUFQwZ1hDSm1kVzVqZEdsdmJsd2lLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCUmRXVnllVVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQWdJR0JRY21sMllYUmxJSEJoWjJsdVlYUmxaQ0J4ZFdWeWVTQnZiaUJqYjJ4c1pXTjBhVzl1SUNSN1kyOXNiR1ZqZEdsdmJuMGdaR2xrSUc1dmRDQnlaWFIxY200Z1lTQjJZV3hwWkNCcGRHVnlZWFJ2Y21CY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2QyaHBiR1VnS0hCaFoyVmtMbXhsYm1kMGFDQThJSEJoWjJWVGFYcGxJQ3NnTVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElISmxjeUE5SUdGM1lXbDBJR2wwWlhKaGRHOXlMbTVsZUhRb0tUdGNibHh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHlaWE11Wkc5dVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRnlaWE11ZG1Gc2RXVWdmSHdnSVhKbGN5NTJZV3gxWlM1MllXeDFaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1ZEdsdWRXVTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdjR0ZuWldRdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnJaWGs2SUhKbGN5NTJZV3gxWlM1clpYa2dZWE1nYzNSeWFXNW5MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RtRnNkV1U2SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNTBiMEoxWm1abGNpaHlaWE11ZG1Gc2RXVXVkbUZzZFdVcExGeHVJQ0FnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQWdJR3h2Wnk1bGNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0JnUm1GcGJHVmtJSGRvYVd4bElISmxZV1JwYm1jZ2NISnBkbUYwWlNCTllXNW5ieUJwZEdWeVlYUnZjbUFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmdZMjlzYkdWamRHbHZiajBrZTJOdmJHeGxZM1JwYjI1OVlDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdCeGRXVnllVDBrZTNGMVpYSjVTbk52Ym4xZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnWUdWeWNtOXlQU1I3WlNCcGJuTjBZVzVqWlc5bUlFVnljbTl5SUQ4Z1pTNXpkR0ZqYXlCOGZDQmxMbTFsYzNOaFoyVWdPaUJUZEhKcGJtY29aU2w5WUN4Y2JpQWdJQ0FnSUNBZ0lDQmRMbXB2YVc0b1hDSmNYRzVjSWlsY2JpQWdJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdJQ0IwYUhKdmR5QmxPMXh1SUNBZ0lDQWdmU0JtYVc1aGJHeDVJSHRjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0JoZDJGcGRDQnBkR1Z5WVhSdmNpNWpiRzl6WlNncE8xeHVJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JHOW5MbVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnVzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JnUm1GcGJHVmtJSFJ2SUdOc2IzTmxJSEJ5YVhaaGRHVWdUV0Z1WjI4Z2FYUmxjbUYwYjNKZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCZ1kyOXNiR1ZqZEdsdmJqMGtlMk52Ykd4bFkzUnBiMjU5WUN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWUhGMVpYSjVQU1I3Y1hWbGNubEtjMjl1ZldBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdCbGNuSnZjajBrZTJVZ2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2lBL0lHVXVjM1JoWTJzZ2ZId2daUzV0WlhOellXZGxJRG9nVTNSeWFXNW5LR1VwZldBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JkTG1wdmFXNG9YQ0pjWEc1Y0lpbGNiaUFnSUNBZ0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRzV2TFhWdWMyRm1aUzFtYVc1aGJHeDVYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2daVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQndZV2RsWkR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUhSdlJtRmljbWxqVUdGbmFXNWhkR2x2YmxKbGMzQnZibk5sS0Z4dUlDQWdJR1J2WTNNNklFRnljbUY1UEhzZ2EyVjVPaUJ6ZEhKcGJtYzdJSFpoYkhWbE9pQkNkV1ptWlhJZ2ZUNHNYRzRnSUNBZ1ltOXZhMjFoY21zNklITjBjbWx1WjF4dUlDQXBPaUI3WEc0Z0lDQWdhWFJsY21GMGIzSTZJRWwwWlhKaGRHOXljeTVUZEdGMFpWRjFaWEo1U1hSbGNtRjBiM0k3WEc0Z0lDQWdiV1YwWVdSaGRHRTZJSHRjYmlBZ0lDQWdJR1psZEdOb1pXUlNaV052Y21SelEyOTFiblE2SUc1MWJXSmxjanRjYmlBZ0lDQWdJR0p2YjJ0dFlYSnJPaUJ6ZEhKcGJtYzdYRzRnSUNBZ2ZUdGNiaUFnZlNCN1hHNGdJQ0FnYkdWMElHbGtlQ0E5SURBN1hHNWNiaUFnSUNCamIyNXpkQ0JwZEdWeVlYUnZjaUE5SUh0Y2JpQWdJQ0FnSUdGemVXNWpJRzVsZUhRb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNocFpIZ2dQQ0JrYjJOekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMllXeDFaVG9nWkc5amMxdHBaSGdySzEwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JrYjI1bE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlRvZ2RXNWtaV1pwYm1Wa0lHRnpJR0Z1ZVN4Y2JpQWdJQ0FnSUNBZ0lDQmtiMjVsT2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0I5TzF4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUdGemVXNWpJR05zYjNObEtDa2dlMzBzWEc0Z0lDQWdmVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnBkR1Z5WVhSdmNqb2dhWFJsY21GMGIzSWdZWE1nZFc1cmJtOTNiaUJoY3lCSmRHVnlZWFJ2Y25NdVUzUmhkR1ZSZFdWeWVVbDBaWEpoZEc5eUxGeHVJQ0FnSUNBZ2JXVjBZV1JoZEdFNklIdGNiaUFnSUNBZ0lDQWdabVYwWTJobFpGSmxZMjl5WkhORGIzVnVkRG9nWkc5amN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lHSnZiMnR0WVhKckxGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2NHRnljMlZUZVc1MGFHVjBhV05RY21sMllYUmxRbTl2YTIxaGNtc29YRzRnSUNBZ1ltOXZhMjFoY21zNklIVnVhMjV2ZDI1Y2JpQWdLVG9nVUhKcGRtRjBaVk41Ym5Sb1pYUnBZMEp2YjJ0dFlYSnJJSHdnZFc1a1pXWnBibVZrSUh0Y2JpQWdJQ0JwWmlBb2RIbHdaVzltSUdKdmIydHRZWEpySUNFOVBTQmNJbk4wY21sdVoxd2lLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lHbG1JQ2doWW05dmEyMWhjbXN1YzNSaGNuUnpWMmwwYUNoR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVVRkpKVmtGVVJWOUNUMDlMVFVGU1MxOVFVa1ZHU1ZncEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnlZWGNnUFNCaWIyOXJiV0Z5YXk1emJHbGpaU2hjYmlBZ0lDQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2k1UVVrbFdRVlJGWDBKUFQwdE5RVkpMWDFCU1JVWkpXQzVzWlc1bmRHaGNiaUFnSUNBcE8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd1lYSnpaV1FnUFNCS1UwOU9MbkJoY25ObEtFSjFabVpsY2k1bWNtOXRLSEpoZHl3Z1hDSmlZWE5sTmpSMWNteGNJaWt1ZEc5VGRISnBibWNvWENKMWRHWTRYQ0lwS1R0Y2JpQWdJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lDQWdJWEJoY25ObFpDQjhmRnh1SUNBZ0lDQWdJQ0IwZVhCbGIyWWdjR0Z5YzJWa0lDRTlQU0JjSW05aWFtVmpkRndpSUh4OFhHNGdJQ0FnSUNBZ0lIUjVjR1Z2WmlCd1lYSnpaV1F1YzI5eWRFWnBaV3hrSUNFOVBTQmNJbk4wY21sdVoxd2lJSHg4WEc0Z0lDQWdJQ0FnSUhSNWNHVnZaaUJ3WVhKelpXUXVaR2x5WldOMGFXOXVJQ0U5UFNCY0luTjBjbWx1WjF3aUlIeDhYRzRnSUNBZ0lDQWdJSFI1Y0dWdlppQndZWEp6WldRdWFXUkdhV1ZzWkNBaFBUMGdYQ0p6ZEhKcGJtZGNJaUI4ZkZ4dUlDQWdJQ0FnSUNCMGVYQmxiMllnY0dGeWMyVmtMbXhoYzNSSlpDQWhQVDBnWENKemRISnBibWRjSWlCOGZGeHVJQ0FnSUNBZ0lDQjBlWEJsYjJZZ2NHRnljMlZrTG5GMVpYSjVTR0Z6YUNBaFBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0J6YjNKMFJtbGxiR1E2SUhCaGNuTmxaQzV6YjNKMFJtbGxiR1FzWEc0Z0lDQWdJQ0FnSUdScGNtVmpkR2x2YmpvZ2NHRnljMlZrTG1ScGNtVmpkR2x2YmlBOVBUMGdYQ0prWlhOalhDSWdQeUJjSW1SbGMyTmNJaUE2SUZ3aVlYTmpYQ0lzWEc0Z0lDQWdJQ0FnSUdsa1JtbGxiR1E2SUhCaGNuTmxaQzVwWkVacFpXeGtMRnh1SUNBZ0lDQWdJQ0JzWVhOMFZtRnNkV1U2SUNod1lYSnpaV1FnWVhNZ1lXNTVLUzVzWVhOMFZtRnNkV1VzWEc0Z0lDQWdJQ0FnSUd4aGMzUkpaRG9nY0dGeWMyVmtMbXhoYzNSSlpDeGNiaUFnSUNBZ0lDQWdjWFZsY25sSVlYTm9PaUJ3WVhKelpXUXVjWFZsY25sSVlYTm9MRnh1SUNBZ0lDQWdmVHRjYmlBZ0lDQjlJR05oZEdOb0lIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nWW5WcGJHUlRlVzUwYUdWMGFXTlFjbWwyWVhSbFFtOXZhMjFoY21zb1kzVnljMjl5T2lCN1hHNGdJQ0FnYzI5eWRFWnBaV3hrT2lCemRISnBibWM3WEc0Z0lDQWdaR2x5WldOMGFXOXVPaUJjSW1Gelkxd2lJSHdnWENKa1pYTmpYQ0k3WEc0Z0lDQWdhV1JHYVdWc1pEb2djM1J5YVc1bk8xeHVJQ0FnSUd4aGMzUldZV3gxWlRvZ1lXNTVPMXh1SUNBZ0lHeGhjM1JKWkRvZ2MzUnlhVzVuTzF4dUlDQWdJSEYxWlhKNVNHRnphRG9nYzNSeWFXNW5PMXh1SUNCOUtUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWUNSN1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMbEJTU1ZaQlZFVmZRazlQUzAxQlVrdGZVRkpGUmtsWWZTUjdRblZtWm1WeUxtWnliMjBvWEc0Z0lDQWdJQ0JLVTA5T0xuTjBjbWx1WjJsbWVTaGpkWEp6YjNJcFhHNGdJQ0FnS1M1MGIxTjBjbWx1WnloY0ltSmhjMlUyTkhWeWJGd2lLWDFnTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHOTJaWEp5YVdSbElHZGxkRU5zYVdWdWRDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2loY0lrTnNhV1Z1ZENCcGN5QnViM1FnYzNWd2NHOXlkR1ZrSUdsdUlFWmhZbkpwWXlCamIyNTBjbUZqZEhOY0lpazdYRzRnSUgxY2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVVpYaDBJR1JsWTI5a1pYSWdabTl5SUdOdmJuWmxjblJwYm1jZ1ltbHVZWEo1SUdSaGRHRWdkRzhnYzNSeWFXNW5jMXh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdkR1Y0ZEVSbFkyOWtaWElnUFNCdVpYY2dWR1Y0ZEVSbFkyOWtaWElvWENKMWRHWTRYQ0lwTzF4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J6ZEdGMGFXTWdjbVZoWkc5dWJIa2djMlZ5YVdGc2FYcGxjaUE5SUc1bGR5QlRhVzF3YkdWRVpYUmxjbTFwYm1semRHbGpVMlZ5YVdGc2FYcGxjaWdwTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EyOXVkR1Y0ZENCamIyNXpkSEoxWTNSdmNpQm1iM0lnZEdocGN5QmhaR0Z3ZEdWeVhHNGdJQ0FxSUVCemRXMXRZWEo1SUU5MlpYSnlhV1JsY3lCMGFHVWdZbUZ6WlNCRGIyNTBaWGgwSUdOdmJuTjBjblZqZEc5eUlIZHBkR2dnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdiM1psY25KcFpHVWdaMlYwSUVOdmJuUmxlSFFvS1RvZ1EyOXVjM1J5ZFdOMGIzSThSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGlCN1hHNGdJQ0FnY21WMGRYSnVJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZER0Y2JpQWdmVnh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRWRsZEhNZ2RHaGxJSEpsY0c5emFYUnZjbmtnWTI5dWMzUnlkV04wYjNJZ1ptOXlJSFJvYVhNZ1lXUmhjSFJsY2x4dUlDQWdLaUJBYzNWdGJXRnllU0JTWlhSMWNtNXpJSFJvWlNCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmtnWTI5dWMzUnlkV04wYjNJZ1ptOXlJR055WldGMGFXNW5JSEpsY0c5emFYUnZjbWxsYzF4dUlDQWdLaUJBZEdWdGNHeGhkR1VnVFNBdElGUjVjR1VnWlhoMFpXNWthVzVuSUUxdlpHVnNYRzRnSUNBcUlFQnlaWFIxY200Z2UwTnZibk4wY25WamRHOXlQRkpsY0c5emFYUnZjbms4VFN3Z1RXRnVaMjlSZFdWeWVTd2dSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TENCR1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkekxDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErUG4wZ1ZHaGxJSEpsY0c5emFYUnZjbmtnWTI5dWMzUnlkV04wYjNKY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElISmxjRzl6YVhSdmNuazhYRzRnSUNBZ1VpQmxlSFJsYm1SeklGSmxjRzl6YVhSdmNuazhYRzRnSUNBZ0lDQmhibmtzWEc0Z0lDQWdJQ0JCWkdGd2RHVnlQR0Z1ZVN3Z2RtOXBaQ3dnVFdGdVoyOVJkV1Z5ZVN3Z1EyOXVkR1Y0ZER4R1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkelBqNWNiaUFnSUNBK0xGeHVJQ0ErS0NrNklFTnZibk4wY25WamRHOXlQRkkrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdSbUZpY21salEyOXVkSEpoWTNSU1pYQnZjMmwwYjNKNUlHRnpJSFZ1YTI1dmQyNGdZWE1nUTI5dWMzUnlkV04wYjNJOFVqNDdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JRWVdkcGJtRjBiM0k4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQnhkV1Z5ZVRvZ1RXRnVaMjlSZFdWeWVTeGNiaUFnSUNCemFYcGxPaUJ1ZFcxaVpYSXNYRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtYRzRnSUNrNklGQmhaMmx1WVhSdmNqeE5MQ0JoYm5rc0lFMWhibWR2VVhWbGNuaytJSHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRVpoWW5KcFkwTnZiblJ5WVdOMFVHRm5hVzVoZEc5eUtIUm9hWE1zSUhGMVpYSjVMQ0J6YVhwbExDQmpiR0Y2ZWlrN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCVFpYRjFaVzVqWlNodmNIUnBiMjV6T2lCVFpYRjFaVzVqWlU5d2RHbHZibk1wT2lCUWNtOXRhWE5sUEZObGNYVmxibU5sUGlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCR1lXSnlhV05EYjI1MGNtRmpkRk5sY1hWbGJtTmxLRzl3ZEdsdmJuTXNJSFJvYVhNZ1lYTWdZVzU1S1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQkVhWE53WVhSamFDZ3BPaUJFYVhOd1lYUmphRHhHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJK0lIdGNiaUFnSUNCeVpYUjFjbTRnYm1WM0lFWmhZbkpwWTBOdmJuUnlZV04wUkdsemNHRjBZMmdvS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoSUc1bGR5QkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWElnYVc1emRHRnVZMlZjYmlBZ0lDb2dRSE4xYlcxaGNua2dTVzVwZEdsaGJHbDZaWE1nWVc0Z1lXUmhjSFJsY2lCbWIzSWdhVzUwWlhKaFkzUnBibWNnZDJsMGFDQjBhR1VnUm1GaWNtbGpJSE4wWVhSbElHUmhkR0ZpWVhObFhHNGdJQ0FxSUVCd1lYSmhiU0I3ZG05cFpIMGdjMk52Y0dVZ0xTQk9iM1FnZFhObFpDQnBiaUIwYUdseklHRmtZWEIwWlhKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnRoYkdsaGMxMGdMU0JQY0hScGIyNWhiQ0JoYkdsaGN5Qm1iM0lnZEdobElHRmtZWEIwWlhJZ2FXNXpkR0Z1WTJWY2JpQWdJQ292WEc0Z0lHTnZibk4wY25WamRHOXlLSE5qYjNCbE9pQjJiMmxrTENCaGJHbGhjejg2SUhOMGNtbHVaeWtnZTF4dUlDQWdJSE4xY0dWeUtITmpiM0JsTENCR1lXSnlhV05HYkdGMmIzVnlMQ0JoYkdsaGN5azdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JtYjNJb1kyOXVabWxuT2lCUVlYSjBhV0ZzUEdGdWVUNHNJQzR1TG1GeVozTTZJR0Z1ZVNrNklIUjVjR1Z2WmlCMGFHbHpJSHRjYmlBZ0lDQnlaWFIxY200Z2MzVndaWEl1Wm05eUtHTnZibVpwWnl3Z0xpNHVZWEpuY3lrN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdaMlYwVFc5a1pXeEVaV1poZFd4MGN6eE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QaWtnZTF4dUlDQWdJR052Ym5OMElHMGdQU0J1WlhjZ1kyeGhlbm9vS1R0Y2JpQWdJQ0J5WlhSMWNtNGdLRTFsZEdGa1lYUmhMbkJ5YjNCbGNuUnBaWE1vWTJ4aGVub3BJSHg4SUZ0ZEtTNXlaV1IxWTJVb1hHNGdJQ0FnSUNBb1lXTmpMQ0J3S1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnYlZ0d0lHRnpJR3RsZVc5bUlFMWRJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lLVnh1SUNBZ0lDQWdJQ0FnSUdGalkxdHdJR0Z6SUd0bGVXOW1JRTFkSUQwZ2JWdHdJR0Z6SUd0bGVXOW1JRTFkTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWVdOak8xeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIdDlJR0Z6SUZKbFkyOXlaRHhyWlhsdlppQk5MQ0JoYm5rK1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoSUhKbFkyOXlaQ0JwYmlCMGFHVWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnVTJWeWFXRnNhWHBsY3lCaElHMXZaR1ZzSUdGdVpDQnpkRzl5WlhNZ2FYUWdhVzRnZEdobElFWmhZbkpwWXlCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHRmliR1ZPWVcxbElDMGdWR2hsSUc1aGJXVWdiMllnZEdobElIUmhZbXhsTDJOdmJHeGxZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFcxaVpYSjlJR2xrSUMwZ1ZHaGxJSEpsWTI5eVpDQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQndZWEpoYlNCN1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBuMGdiVzlrWld3Z0xTQlVhR1VnY21WamIzSmtJR1JoZEdGY2JpQWdJQ29nUUhCaGNtRnRJSHRTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrZlNCMGNtRnVjMmxsYm5RZ0xTQlVjbUZ1YzJsbGJuUWdaR0YwWVNBb2JtOTBJSFZ6WldRZ2FXNGdkR2hwY3lCcGJYQnNaVzFsYm5SaGRHbHZiaWxjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVoYm5sYlhYMGdZWEpuY3lBdElFRmtaR2wwYVc5dVlXd2dZWEpuZFcxbGJuUnpMQ0JwYm1Oc2RXUnBibWNnZEdobElHTm9ZV2x1WTI5a1pTQnpkSFZpSUdGdVpDQnNiMmRuWlhKY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrUG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUdOeVpXRjBaV1FnY21WamIzSmtYRzRnSUNBcUwxeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmpjbVZoZEdVOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdRNklGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQWdJRzF2WkdWc09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVOdmJuUmxlSFE4Um1GaWNtbGpRMjl1ZEhKaFkzUkdiR0ZuY3o0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGo0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNExDQnNiMmNnZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11WTNKbFlYUmxLVHRjYmlBZ0lDQjBhR2x6TG1WdVptOXlZMlZOYVhKeWIzSkJkWFJvYjNKcGVtRjBhVzl1S0dOc1lYcDZMQ0JqZEhncE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCcGJpQkJSRUZRVkVWU0lHTnlaV0YwWlNCM2FYUm9JR0Z5WjNNZ0pIdGhjbWR6ZldBcE8xeHVJQ0FnSUdOdmJuTjBJSFJoWW14bFRtRnRaU0E5SUUxdlpHVnNMblJoWW14bFRtRnRaU2hqYkdGNmVpazdYRzRnSUNBZ1kyOXVjM1FnWTI5dGNHOXpaV1JMWlhrZ1BTQmpkSGd1YzNSMVlpNWpjbVZoZEdWRGIyMXdiM05wZEdWTFpYa29kR0ZpYkdWT1lXMWxMQ0JiVTNSeWFXNW5LR2xrS1YwcE8xeHVJQ0FnSUdOdmJuTjBJRzFwY25KdmNrTnZiR3hsWTNScGIyNGdQU0JqZEhndVoyVjBUM0pWYm1SbFptbHVaV1FvWENKdGFYSnliM0pEYjJ4c1pXTjBhVzl1WENJcElHRnpYRzRnSUNBZ0lDQjhJSE4wY21sdVoxeHVJQ0FnSUNBZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ1kyOXVjM1FnWm5Wc2JIbFRaV2R5WldkaGRHVmtJRDBnWTNSNExtbHpSblZzYkhsVFpXZHlaV2RoZEdWa0lDWW1JQ0Z0YVhKeWIzSkRiMnhzWldOMGFXOXVPMXh1WEc0Z0lDQWdhV1lnS0NGdGFYSnliM0pEYjJ4c1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNCc1pYUWdaWGhwYzNScGJtYzZJR0Z1ZVR0Y2JpQWdJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQWdJR1Y0YVhOMGFXNW5JRDBnWVhkaGFYUWdkR2hwY3k1eVpXRmtVM1JoZEdVb1kyOXRjRzl6WldSTFpYa3NJR04wZUNrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0J1YnkxbGVDMWhjM05wWjI1Y2JpQWdJQ0FnSUNBZ1pTQTlJSFJvYVhNdWNHRnljMlZGY25KdmNpaGxJR0Z6SUVWeWNtOXlLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRW9aU0JwYm5OMFlXNWpaVzltSUU1dmRFWnZkVzVrUlhKeWIzSXBLU0IwYUhKdmR5QmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdhV1lnS0dWNGFYTjBhVzVuS1Z4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1EyOXVabXhwWTNSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNCZ2NtVmpiM0prSUhkcGRHZ2dhV1FnSkh0cFpIMGdhVzRnZEdGaWJHVWdKSHQwWVdKc1pVNWhiV1Y5SUdGc2NtVmhaSGtnWlhocGMzUnpZRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCc2IyY3VhVzVtYnloZ1lXUmthVzVuSUdWdWRISjVJSFJ2SUNSN2RHRmliR1ZPWVcxbGZTQjBZV0pzWlNCM2FYUm9JSEJySUNSN2FXUjlZQ2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaHRhWEp5YjNKRGIyeHNaV04wYVc5dUtTQjdYRzRnSUNBZ0lDQWdJRzF2WkdWc0lEMGdZWGRoYVhRZ2RHaHBjeTVtYjNKUWNtbDJZWFJsS0cxcGNuSnZja052Ykd4bFkzUnBiMjRwTG5CMWRGTjBZWFJsS0Z4dUlDQWdJQ0FnSUNBZ0lHTnZiWEJ2YzJWa1MyVjVMRnh1SUNBZ0lDQWdJQ0FnSUcxdlpHVnNMRnh1SUNBZ0lDQWdJQ0FnSUdOMGVGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1pHVm1ZWFZzZEhNZ1BTQjBhR2x6TG1kbGRFMXZaR1ZzUkdWbVlYVnNkSE1vWTJ4aGVub3BPMXh1SUNBZ0lDQWdJQ0F2THlCb1lXNWtiR1VnY0hWaWJHbGpJR1JoZEdFZ2FXWWdibTkwSUdaMWJHeDVJSE5sWjNKbFoyRjBaV1JjYmlBZ0lDQWdJQ0FnYVdZZ0tDRm1kV3hzZVZObFozSmxaMkYwWldRcElIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JQWW1wbFkzUXVhMlY1Y3lodGIyUmxiQ2t1Wm1sc2RHVnlLQ2hyS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2hySUQwOVBTQkRiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJTa2djbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdJU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBjeUFtSmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdzZ2FXNGdaR1ZtWVhWc2RITWdKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrWldaaGRXeDBjMXRySUdGeklHdGxlVzltSUUxZElEMDlQU0J0YjJSbGJGdHJYVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2ZTa3ViR1Z1WjNSb1hHNGdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JXOWtaV3dnUFNCaGQyRnBkQ0IwYUdsekxuQjFkRk4wWVhSbEtHTnZiWEJ2YzJWa1MyVjVMQ0J0YjJSbGJDd2dZM1I0S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQzh2SUdoaGJtUnNaU0J6WldkeVpXZGhkR1ZrSUhkeWFYUmxjMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmtZWFJoSUQwZ1kzUjRMbWRsZEVaeWIyMURhR2xzWkhKbGJpaGNJbk5sWjNKbFoyRjBaV1JFWVhSaFhDSXBPMXh1SUNBZ0lDQWdJQ0JwWmlBb1pHRjBZU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdZMjlzYkdWamRHbHZiaUJwYmlCa1lYUmhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQlBZbXBsWTNRdVlYTnphV2R1S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J0YjJSbGJDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NW1iM0pRY21sMllYUmxLR052Ykd4bFkzUnBiMjRwTG5CMWRGTjBZWFJsS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJYQnZjMlZrUzJWNUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHUmhkR0ZiWTI5c2JHVmpkR2x2YmwxYmFXUWdZWE1nWVc1NVhTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpkSGhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUIwYUdsekxuQmhjbk5sUlhKeWIzSW9aU0JoY3lCRmNuSnZjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHMXZaR1ZzTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWTNKbFlYUmxRV3hzUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdkR0ZpYkdWT1lXMWxPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpEb2dVSEpwYldGeWVVdGxlVlI1Y0dWYlhTeGNiaUFnSUNCdGIyUmxiRG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrVzEwK0lIdGNiaUFnSUNCcFppQW9hV1F1YkdWdVozUm9JQ0U5UFNCdGIyUmxiQzVzWlc1bmRHZ3BYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lrbGtjeUJoYm1RZ2JXOWtaV3h6SUcxMWMzUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2hjSWlrN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdVkzSmxZWFJsUVd4c0tUdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVeGhZbVZzSUQwZ1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSaFlteGxUbUZ0WlNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0dCRGNtVmhkR2x1WnlBa2UybGtMbXhsYm1kMGFIMGdaVzUwY21sbGN5QWtlM1JoWW14bFRHRmlaV3g5SUhSaFlteGxZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlGQnliMjFwYzJVdVlXeHNLRnh1SUNBZ0lDQWdhV1F1YldGd0tDaHBMQ0JqYjNWdWRDa2dQVDRnZEdocGN5NWpjbVZoZEdVb2RHRmliR1ZPWVcxbExDQnBMQ0J0YjJSbGJGdGpiM1Z1ZEYwc0lDNHVMbU4wZUVGeVozTXBLVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxZV1J6SUdFZ2NtVmpiM0prSUdaeWIyMGdkR2hsSUhOMFlYUmxJR1JoZEdGaVlYTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlGSmxkSEpwWlhabGN5QmhibVFnWkdWelpYSnBZV3hwZW1WeklHRWdjbVZqYjNKa0lHWnliMjBnZEdobElFWmhZbkpwWXlCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHRmliR1ZPWVcxbElDMGdWR2hsSUc1aGJXVWdiMllnZEdobElIUmhZbXhsTDJOdmJHeGxZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFcxaVpYSjlJR2xrSUMwZ1ZHaGxJSEpsWTI5eVpDQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQndZWEpoYlNCN0xpNHVZVzU1VzExOUlHRnlaM01nTFNCQlpHUnBkR2x2Ym1Gc0lHRnlaM1Z0Wlc1MGN5d2dhVzVqYkhWa2FXNW5JSFJvWlNCamFHRnBibU52WkdVZ2MzUjFZaUJoYm1RZ2JHOW5aMlZ5WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajU5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0J5WlhSeWFXVjJaV1FnY21WamIzSmtYRzRnSUNBcUwxeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QnlaV0ZrUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrT2lCUWNtbHRZWEo1UzJWNVZIbHdaU3hjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4RGIyNTBaWGgwUEVaaFluSnBZME52Ym5SeVlXTjBSbXhoWjNNK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVDd2diRzluSUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5KbFlXUXBPMXh1SUNBZ0lHeHZaeTVwYm1adktHQnBiaUJCUkVGUVZFVlNJSEpsWVdRZ2QybDBhQ0JoY21keklDUjdZWEpuYzMxZ0tUdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvWTJ4aGVub3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1kyOXRjRzl6WldSTFpYa2dQU0JqZEhndWMzUjFZaTVqY21WaGRHVkRiMjF3YjNOcGRHVkxaWGtvZEdGaWJHVk9ZVzFsTENCYlUzUnlhVzVuS0dsa0tWMHBPMXh1SUNBZ0lHTnZibk4wSUcxcGNuSnZja052Ykd4bFkzUnBiMjRnUFNCamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnRhWEp5YjNKRGIyeHNaV04wYVc5dVhDSXBJR0Z6WEc0Z0lDQWdJQ0I4SUhOMGNtbHVaMXh1SUNBZ0lDQWdmQ0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdZMjl1YzNRZ2FYTk5hWEp5YjNJZ1BTQmpkSGd1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p0YVhKeWIzSmNJaWtnWVhNZ1ltOXZiR1ZoYmlCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9hWE5OYVhKeWIzSWdKaVlnYldseWNtOXlRMjlzYkdWamRHbHZiaWtnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUhSb2FYTXVabTl5VUhKcGRtRjBaU2h0YVhKeWIzSkRiMnhzWldOMGFXOXVLUzV5WldGa1UzUmhkR1VvWEc0Z0lDQWdJQ0FnSUNBZ1kyOXRjRzl6WldSTFpYa3NYRzRnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJSFJvYVhNdWNHRnljMlZGY25KdmNpaGxJR0Z6SUVWeWNtOXlLVHRjYmlBZ0lDQWdJSDBnWm1sdVlXeHNlU0I3WEc0Z0lDQWdJQ0FnSUdOMGVDNXdkWFFvWENKdGFYSnliM0pjSWlCaGN5QmhibmtzSUhWdVpHVm1hVzVsWkNrN1hHNGdJQ0FnSUNBZ0lHTjBlQzV3ZFhRb1hDSnRhWEp5YjNKRGIyeHNaV04wYVc5dVhDSWdZWE1nWVc1NUxDQjFibVJsWm1sdVpXUXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0J0YjJSbGJEb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQanRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCdGIyUmxiQ0E5SUdOMGVDNXBjMFoxYkd4NVUyVm5jbVZuWVhSbFpGeHVJQ0FnSUNBZ0lDQS9JSHQ5WEc0Z0lDQWdJQ0FnSURvZ1lYZGhhWFFnZEdocGN5NXlaV0ZrVTNSaGRHVW9ZMjl0Y0c5elpXUkxaWGtzSUdOMGVDazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2RHaHBjeTV3WVhKelpVVnljbTl5S0dVZ1lYTWdSWEp5YjNJcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSEpsWVdSRGIyeHNaV04wYVc5dWN5QTlJRzVsZHlCVFpYUThjM1J5YVc1blBpaGJYRzRnSUNBZ0lDQXVMaTRvWTNSNExtZGxkRkpsWVdSRGIyeHNaV04wYVc5dWN5Z3BJSHg4SUZ0ZEtTeGNiaUFnSUNBZ0lDNHVMaWhqZEhndVkyOXVjM1Z0WlZKbFlXUkRiMnhzWldOMGFXOXVjeWdwSUh4OElGdGRLU3hjYmlBZ0lDQmRLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR052YkNCdlppQnlaV0ZrUTI5c2JHVmpkR2x2Ym5NcElIdGNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9YRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXd3NYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1bWIzSlFjbWwyWVhSbEtHTnZiQ2t1Y21WaFpGTjBZWFJsS0dOdmJYQnZjMlZrUzJWNUxDQmpkSGdwWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhjbk5sWkNBOUlIUm9hWE11Y0dGeWMyVkZjbkp2Y2lobElHRnpJRVZ5Y205eUtUdGNiaUFnSUNBZ0lDQWdhV1lnS0hCaGNuTmxaQ0JwYm5OMFlXNWpaVzltSUU1dmRFWnZkVzVrUlhKeWIzSXBJR052Ym5ScGJuVmxPMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QndZWEp6WldRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNnaFQySnFaV04wTG10bGVYTW9iVzlrWld3cExteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCeVpXTnZjbVFnZDJsMGFDQnBaQ0FrZTJsa2ZTQnBiaUIwWVdKc1pTQWtlM1JoWW14bFRtRnRaWDBnWkc5bGN5QnViM1FnWlhocGMzUmdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYlc5a1pXdzdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxkSEpwWlhabGN5QnRkV3gwYVhCc1pTQnlaV052Y21SeklHWnliMjBnZEdobElHUmhkR0ZpWVhObFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVabGRHTm9aWE1nYlhWc2RHbHdiR1VnY21WamIzSmtjeUIzYVhSb0lIUm9aU0JuYVhabGJpQkpSSE1nWm5KdmJTQjBhR1VnYzNCbFkybG1hV1ZrSUhSaFlteGxYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXSnNaVTVoYldVZ0xTQlVhR1VnYm1GdFpTQnZaaUIwYUdVZ2RHRmliR1VnZEc4Z2NtVmhaQ0JtY205dFhHNGdJQ0FxSUVCd1lYSmhiU0JwWkNBdElGUm9aU0JwWkdWdWRHbG1hV1Z5Y3lCdlppQjBhR1VnY21WamIzSmtjeUIwYnlCeVpYUnlhV1YyWlZ4dUlDQWdLaUJBY0dGeVlXMGdleTR1TG1GdWVWdGRmU0JoY21keklDMGdRV1JrYVhScGIyNWhiQ0JoY21kMWJXVnVkSE1nYzNCbFkybG1hV01nZEc4Z2RHaGxJR0ZrWVhCMFpYSWdhVzF3YkdWdFpXNTBZWFJwYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUJCSUhCeWIyMXBjMlVnZEdoaGRDQnlaWE52YkhabGN5QjBieUJoYmlCaGNuSmhlU0J2WmlCeVpYUnlhV1YyWldRZ2NtVmpiM0prYzF4dUlDQWdLaTljYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nY21WaFpFRnNiRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QaXhjYmlBZ0lDQnBaRG9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4RGIyNTBaWGgwUEVaaFluSnBZME52Ym5SeVlXTjBSbXhoWjNNK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1YlhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNtVmhaRUZzYkNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCc2IyY3VaR1ZpZFdjb1lGSmxZV1JwYm1jZ0pIdHBaQzVzWlc1bmRHaDlJR1Z1ZEhKcFpYTWdKSHQwWVdKc1pVNWhiV1Y5SUhSaFlteGxZQ2s3WEc0Z0lDQWdZMjl1YzNRZ1luSmxZV3RQYmxOcGJtZHNaVVpoYVd4MWNtVWdQU0JqZEhndVoyVjBLRndpWW5KbFlXdFBibE5wYm1kc1pVWmhhV3gxY21WSmJrSjFiR3RjSWlrZ1B6OGdkSEoxWlR0Y2JpQWdJQ0JqYjI1emRDQmpiMjUwYVc1MVpVOXVSWEp5YjNJZ1BTQWhZbkpsWVd0UGJsTnBibWRzWlVaaGFXeDFjbVU3WEc1Y2JpQWdJQ0JqYjI1emRDQnRhWEp5YjNKRGIyeHNaV04wYVc5dUlEMGdZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpYldseWNtOXlRMjlzYkdWamRHbHZibHdpS1NCaGMxeHVJQ0FnSUNBZ2ZDQnpkSEpwYm1kY2JpQWdJQ0FnSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUdOdmJuTjBJR2x6VFdseWNtOXlJRDBnWTNSNExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aWJXbHljbTl5WENJcElHRnpJR0p2YjJ4bFlXNGdmQ0IxYm1SbFptbHVaV1E3WEc1Y2JpQWdJQ0JqYjI1emRDQnlaV0ZrVFdseWNtOXlJRDBnWVhONWJtTWdQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ0lDQmpiR0Y2ZWpvZ1EyOXVjM1J5ZFdOMGIzSThUVDRzWEc0Z0lDQWdJQ0JwWkRvZ1VISnBiV0Z5ZVV0bGVWUjVjR1VzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eERiMjUwWlhoMFBFWmhZbkpwWTBOdmJuUnlZV04wUm14aFozTStQbHh1SUNBZ0lDa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tDRnRhWEp5YjNKRGIyeHNaV04wYVc5dUtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRbUZrVW1WeGRXVnpkRVZ5Y205eUtGd2lUV2x6YzJsdVp5QnRhWEp5YjNJZ1kyOXNiR1ZqZEdsdmJpQm1iM0lnYldseWNtOXlJSEpsWVdSY0lpazdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0I3SUdOMGVDd2diRzluSUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQnlaV0ZrVFdseWNtOXlLVHRjYmlBZ0lDQWdJQ0FnYkc5bkxtbHVabThvWUdsdUlFRkVRVkJVUlZJZ2NtVmhaQ0IzYVhSb0lHRnlaM01nSkh0aGNtZHpmV0FwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvWTJ4aGVub3BPMXh1WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR052YlhCdmMyVmtTMlY1SUQwZ1kzUjRMbk4wZFdJdVkzSmxZWFJsUTI5dGNHOXphWFJsUzJWNUtIUmhZbXhsVG1GdFpTd2dXMXh1SUNBZ0lDQWdJQ0FnSUZOMGNtbHVaeWhwWkNrc1hHNGdJQ0FnSUNBZ0lGMHBPMXh1WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQjBhR2x6TG1admNsQnlhWFpoZEdVb2JXbHljbTl5UTI5c2JHVmpkR2x2YmlrdWNtVmhaRk4wWVhSbEtGeHVJQ0FnSUNBZ0lDQWdJR052YlhCdmMyVmtTMlY1TEZ4dUlDQWdJQ0FnSUNBZ0lHTjBlRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCMGFHbHpMbkJoY25ObFJYSnliM0lvWlNCaGN5QkZjbkp2Y2lrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlR0Y2JseHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMFlYTnJjeUE5SUdsa0xtMWhjQ2hjYmlBZ0lDQWdJQ0FnS0drcElEMCtJQ2dwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdhWE5OYVhKeWIzSWdKaVlnYldseWNtOXlRMjlzYkdWamRHbHZibHh1SUNBZ0lDQWdJQ0FnSUNBZ1B5QnlaV0ZrVFdseWNtOXlLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR05zWVhwNkxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMaTR1WVhKbmN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9ZM1I0SUdGeklHRnVlU2t1YjNabGNuSnBaR1VvZXlCdWIwVnRhWFJUYVc1bmJHVTZJSFJ5ZFdVZ2ZTbGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCMGFHbHpMbkpsWVdRb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyeGhlbm9zWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNWhjbWR6TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNoamRIZ2dZWE1nWVc1NUtTNXZkbVZ5Y21sa1pTaDdJRzV2UlcxcGRGTnBibWRzWlRvZ2RISjFaU0I5S1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0J5WVhkU1pYTjFiSFFnUFNCamIyNTBhVzUxWlU5dVJYSnliM0pjYmlBZ0lDQWdJQ0FnUHlCaGQyRnBkQ0J3Y205dGFYTmxVMlZ4ZFdWdVkyVW9kR0Z6YTNNc0lIUnlkV1VwWEc0Z0lDQWdJQ0FnSURvZ1lYZGhhWFFnY0hKdmJXbHpaVk5sY1hWbGJtTmxLSFJoYzJ0ektUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpYTnZiSFpsUW5Wc2ExTmxjWFZsYm1ObFVtVnpkV3gwS0Z4dUlDQWdJQ0FnSUNCeVlYZFNaWE4xYkhRc1hHNGdJQ0FnSUNBZ0lHTnZiblJwYm5WbFQyNUZjbkp2Y2l4Y2JpQWdJQ0FnSUNBZ2JHOW5MRnh1SUNBZ0lDQWdJQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNdVVrVkJSRjlCVEV4Y2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDBnWm1sdVlXeHNlU0I3WEc0Z0lDQWdJQ0JqZEhndWNIVjBLRndpYldseWNtOXlYQ0lnWVhNZ1lXNTVMQ0IxYm1SbFptbHVaV1FwTzF4dUlDQWdJQ0FnWTNSNExuQjFkQ2hjSW0xcGNuSnZja052Ykd4bFkzUnBiMjVjSWlCaGN5QmhibmtzSUhWdVpHVm1hVzVsWkNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJWY0dSaGRHVnpJR0VnY21WamIzSmtJR2x1SUhSb1pTQnpkR0YwWlNCa1lYUmhZbUZ6WlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JUWlhKcFlXeHBlbVZ6SUdFZ2JXOWtaV3dnWVc1a0lIVndaR0YwWlhNZ2FYUWdhVzRnZEdobElFWmhZbkpwWXlCemRHRjBaU0JrWVhSaFltRnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHRmliR1ZPWVcxbElDMGdWR2hsSUc1aGJXVWdiMllnZEdobElIUmhZbXhsTDJOdmJHeGxZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFcxaVpYSjlJR2xrSUMwZ1ZHaGxJSEpsWTI5eVpDQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQndZWEpoYlNCN1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBuMGdiVzlrWld3Z0xTQlVhR1VnZFhCa1lYUmxaQ0J5WldOdmNtUWdaR0YwWVZ4dUlDQWdLaUJBY0dGeVlXMGdlMUpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDU5SUhSeVlXNXphV1Z1ZENBdElGUnlZVzV6YVdWdWRDQmtZWFJoSUNodWIzUWdkWE5sWkNCcGJpQjBhR2x6SUdsdGNHeGxiV1Z1ZEdGMGFXOXVLVnh1SUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMbUZ1ZVZ0ZGZTQmhjbWR6SUMwZ1FXUmthWFJwYjI1aGJDQmhjbWQxYldWdWRITXNJR2x1WTJ4MVpHbHVaeUIwYUdVZ1kyaGhhVzVqYjJSbElITjBkV0lnWVc1a0lHeHZaMmRsY2x4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQrZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnZFhCa1lYUmxaQ0J5WldOdmNtUmNiaUFnSUNvdlhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklIVndaR0YwWlR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0JwWkRvZ1VISnBiV0Z5ZVV0bGVWUjVjR1VzWEc0Z0lDQWdiVzlrWld3NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004UTI5dWRHVjRkRHhHWVdKeWFXTkRiMjUwY21GamRFWnNZV2R6UGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnc0lHeHZaeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTUxY0dSaGRHVXBPMXh1WEc0Z0lDQWdkR2hwY3k1bGJtWnZjbU5sVFdseWNtOXlRWFYwYUc5eWFYcGhkR2x2YmloamJHRjZlaXdnWTNSNEtUdGNiaUFnSUNCc2IyY3VhVzVtYnloZ2FXNGdRVVJCVUZSRlVpQjFjR1JoZEdVZ2QybDBhQ0JoY21keklDUjdZWEpuYzMxZ0tUdGNiaUFnSUNCamIyNXpkQ0IwWVdKc1pVNWhiV1VnUFNCTmIyUmxiQzUwWVdKc1pVNWhiV1VvWTJ4aGVub3BPMXh1SUNBZ0lHTnZibk4wSUdOdmJYQnZjMlZrUzJWNUlEMGdZM1I0TG5OMGRXSXVZM0psWVhSbFEyOXRjRzl6YVhSbFMyVjVLSFJoWW14bFRtRnRaU3dnVzFOMGNtbHVaeWhwWkNsZEtUdGNiaUFnSUNCamIyNXpkQ0J0YVhKeWIzSkRiMnhzWldOMGFXOXVJRDBnWTNSNExtZGxkRTl5Vlc1a1pXWnBibVZrS0Z3aWJXbHljbTl5UTI5c2JHVmpkR2x2Ymx3aUtTQmhjMXh1SUNBZ0lDQWdmQ0J6ZEhKcGJtZGNiaUFnSUNBZ0lId2dkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUd4dlp5NXBibVp2S0dCMWNHUmhkR2x1WnlCbGJuUnllU0JwYmlBa2UzUmhZbXhsVG1GdFpYMGdkR0ZpYkdVZ2QybDBhQ0J3YXlBa2UybGtmV0FwTzF4dVhHNGdJQ0FnSUNCcFppQW9iV2x5Y205eVEyOXNiR1ZqZEdsdmJpa2dlMXh1SUNBZ0lDQWdJQ0J0YjJSbGJDQTlJR0YzWVdsMElIUm9hWE11Wm05eVVISnBkbUYwWlNodGFYSnliM0pEYjJ4c1pXTjBhVzl1S1M1d2RYUlRkR0YwWlNoY2JpQWdJQ0FnSUNBZ0lDQmpiMjF3YjNObFpFdGxlU3hjYmlBZ0lDQWdJQ0FnSUNCdGIyUmxiQ3hjYmlBZ0lDQWdJQ0FnSUNCamRIaGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmxabUYxYkhSeklEMGdkR2hwY3k1blpYUk5iMlJsYkVSbFptRjFiSFJ6S0dOc1lYcDZLVHRjYmlBZ0lDQWdJQ0FnTHk4Z2FHRnVaR3hsSUhCMVlteHBZeUJrWVhSaFhHNGdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCUFltcGxZM1F1YTJWNWN5aHRiMlJsYkNrdVptbHNkR1Z5S0NocktTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvYXlBOVBUMGdRMjkxWTJoRVFrdGxlWE11VkVGQ1RFVXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQWhLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmtaV1poZFd4MGN5QW1KbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnJJR2x1SUdSbFptRjFiSFJ6SUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdSbFptRjFiSFJ6VzJzZ1lYTWdhMlY1YjJZZ1RWMGdQVDA5SUcxdlpHVnNXMnRkWEc0Z0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUgwcExteGxibWQwYUZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBZ0lDQWdiVzlrWld3Z1BTQmhkMkZwZENCMGFHbHpMbkIxZEZOMFlYUmxLR052YlhCdmMyVmtTMlY1TENCdGIyUmxiQ3dnWTNSNEtUdGNibHh1SUNBZ0lDQWdJQ0F2THlCb1lXNWtiR1VnYzJWbmNtVm5ZWFJsWkNCM2NtbDBaWE5jYmlBZ0lDQWdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlHTjBlQzVuWlhSR2NtOXRRMmhwYkdSeVpXNG9YQ0p6WldkeVpXZGhkR1ZrUkdGMFlWd2lLVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHUmhkR0VwSUh0Y2JpQWdJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR052Ykd4bFkzUnBiMjRnYVc0Z1pHRjBZU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdUMkpxWldOMExtRnpjMmxuYmloY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYlc5a1pXd3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHRjNZV2wwSUhSb2FYTXVabTl5VUhKcGRtRjBaU2hqYjJ4c1pXTjBhVzl1S1M1d2RYUlRkR0YwWlNoY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyMXdiM05sWkV0bGVTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmtZWFJoVzJOdmJHeGxZM1JwYjI1ZFcybGtJR0Z6SUdGdWVWMHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnRiMlJsYkR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUkdWc1pYUmxjeUJoSUhKbFkyOXlaQ0JtY205dElIUm9aU0J6ZEdGMFpTQmtZWFJoWW1GelpWeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCU1pYUnlhV1YyWlhNZ1lTQnlaV052Y21RZ1lXNWtJSFJvWlc0Z2NtVnRiM1psY3lCcGRDQm1jbTl0SUhSb1pTQkdZV0p5YVdNZ2MzUmhkR1VnWkdGMFlXSmhjMlZjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmhZbXhsVG1GdFpTQXRJRlJvWlNCdVlXMWxJRzltSUhSb1pTQjBZV0pzWlM5amIyeHNaV04wYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5JSHdnYm5WdFltVnlmU0JwWkNBdElGUm9aU0J5WldOdmNtUWdhV1JsYm5ScFptbGxjaUIwYnlCa1pXeGxkR1ZjYmlBZ0lDb2dRSEJoY21GdElIc3VMaTVoYm5sYlhYMGdZWEpuY3lBdElFRmtaR2wwYVc5dVlXd2dZWEpuZFcxbGJuUnpMQ0JwYm1Oc2RXUnBibWNnZEdobElHTm9ZV2x1WTI5a1pTQnpkSFZpSUdGdVpDQnNiMmRuWlhKY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrUG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUdSbGJHVjBaV1FnY21WamIzSmtYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QmtaV3hsZEdVOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdRNklGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQWdJQzR1TG1GeVozTTZJRU52Ym5SbGVIUjFZV3hCY21kelBFTnZiblJsZUhROFJtRmljbWxqUTI5dWRISmhZM1JHYkdGbmN6NCtYRzRnSUNrNklGQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRMQ0JzYjJjZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdVpHVnNaWFJsS1R0Y2JseHVJQ0FnSUhSb2FYTXVaVzVtYjNKalpVMXBjbkp2Y2tGMWRHaHZjbWw2WVhScGIyNG9ZMnhoZW5vc0lHTjBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtHTnNZWHA2S1R0Y2JseHVJQ0FnSUdOdmJuTjBJR052YlhCdmMyVmtTMlY1SUQwZ1kzUjRMbk4wZFdJdVkzSmxZWFJsUTI5dGNHOXphWFJsUzJWNUtIUmhZbXhsVG1GdFpTd2dXMU4wY21sdVp5aHBaQ2xkS1R0Y2JpQWdJQ0JqYjI1emRDQnRhWEp5YjNKRGIyeHNaV04wYVc5dUlEMGdZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpYldseWNtOXlRMjlzYkdWamRHbHZibHdpS1NCaGMxeHVJQ0FnSUNBZ2ZDQnpkSEpwYm1kY2JpQWdJQ0FnSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUd4bGRDQnRiMlJsYkRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqdGNibHh1SUNBZ0lHbG1JQ2h0YVhKeWIzSkRiMnhzWldOMGFXOXVLU0I3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQnRiMlJsYkNBOUlHRjNZV2wwSUhSb2FYTXVabTl5VUhKcGRtRjBaU2h0YVhKeWIzSkRiMnhzWldOMGFXOXVLUzV5WldGa1UzUmhkR1VvWEc0Z0lDQWdJQ0FnSUNBZ1kyOXRjRzl6WldSTFpYa3NYRzRnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11Wm05eVVISnBkbUYwWlNodGFYSnliM0pEYjJ4c1pXTjBhVzl1S1M1a1pXeGxkR1ZUZEdGMFpTaGpiMjF3YjNObFpFdGxlU3dnWTNSNEtUdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dkR2hwY3k1d1lYSnpaVVZ5Y205eUtHVWdZWE1nUlhKeWIzSXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0J0YjJSbGJDQTlJR04wZUM1cGMwWjFiR3g1VTJWbmNtVm5ZWFJsWkZ4dUlDQWdJQ0FnSUNBZ0lEOGdlMzFjYmlBZ0lDQWdJQ0FnSUNBNklHRjNZV2wwSUhSb2FYTXVjbVZoWkZOMFlYUmxLR052YlhCdmMyVmtTMlY1TENCamRIZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb0lXTjBlQzVwYzBaMWJHeDVVMlZuY21WbllYUmxaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGdSR1ZzWlhScGJtY2daVzUwY25rZ0pIdGpiMjF3YjNObFpFdGxlWDBnWm5KdmJTQndkV0pzYVdNZ2JHVmtaMlZ5WUNrN1hHNGdJQ0FnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVrWld4bGRHVlRkR0YwWlNoamIyMXdiM05sWkV0bGVTd2dZM1I0S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QjBhR2x6TG5CaGNuTmxSWEp5YjNJb1pTQmhjeUJGY25KdmNpazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR052Ym5OMElHTnZiR3hsWTNScGIyNXpJRDBnWTNSNExtZGxkRkpsWVdSRGIyeHNaV04wYVc5dWN5Z3BPMXh1SUNBZ0lDQWdhV1lnS0dOdmJHeGxZM1JwYjI1eklDWW1JR052Ykd4bFkzUnBiMjV6TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCbWIzSWdLR052Ym5OMElHTnZiQ0J2WmlCamIyeHNaV04wYVc5dWN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUd4dlp5NWtaV0oxWnloY2JpQWdJQ0FnSUNBZ0lDQWdJR0JsYm5OMWNtbHVaeUJqYjJ4c1pXTjBhVzl1SUNSN1kyOXNmU0JvWVhNZ1pXNTBjbmtnWm05eUlHbGtJQ1I3WTI5dGNHOXpaV1JMWlhsOUlHSmxabTl5WlNCa1pXeGxkR2x1WjJCY2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9YRzRnSUNBZ0lDQWdJQ0FnSUNCdGIyUmxiQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHRjNZV2wwSUhSb2FYTXVabTl5VUhKcGRtRjBaU2hqYjJ3cExuSmxZV1JUZEdGMFpTaGpiMjF3YjNObFpFdGxlU3dnWTNSNEtWeHVJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ0lDQWdJQ0FnWUVSbGJHVjBhVzVuSUhCeWFYWmhkR1VnWTI5c2JHVmpkR2x2YmlBa2UyTnZiSDBnWlc1MGNua2dabTl5SUdsa0lDUjdZMjl0Y0c5elpXUkxaWGw5WUZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1bWIzSlFjbWwyWVhSbEtHTnZiQ2t1WkdWc1pYUmxVM1JoZEdVb1kyOXRjRzl6WldSTFpYa3NJR04wZUNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRzF2WkdWc08xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR0Z6ZVc1aklHUmxiR1YwWlZOMFlYUmxLR2xrT2lCemRISnBibWNzSUdOdmJuUmxlSFE2SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa2dlMXh1SUNBZ0lHRjNZV2wwSUdOdmJuUmxlSFF1YzNSMVlpNWtaV3hsZEdWVGRHRjBaU2hwWkNrN1hHNGdJSDFjYmx4dUlDQm1iM0pRY21sMllYUmxLR052Ykd4bFkzUnBiMjQ2SUhOMGNtbHVaeWs2SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpQjdYRzRnSUNBZ1kyOXVjM1FnZEc5UGRtVnljbWxrWlNBOUlGdGNiaUFnSUNBZ0lIUm9hWE11Y0hWMFUzUmhkR1VzWEc0Z0lDQWdJQ0IwYUdsekxuSmxZV1JUZEdGMFpTeGNiaUFnSUNBZ0lIUm9hWE11WkdWc1pYUmxVM1JoZEdVc1hHNGdJQ0FnSUNCMGFHbHpMbkYxWlhKNVVtVnpkV3gwTEZ4dUlDQWdJQ0FnZEdocGN5NXhkV1Z5ZVZKbGMzVnNkRkJoWjJsdVlYUmxaQ3hjYmlBZ0lDQmRMbTFoY0Nnb1ptNHBJRDArSUdadUxtNWhiV1VwTzF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnVUhKdmVIa29kR2hwY3l3Z2UxeHVJQ0FnSUNBZ1oyVjBLSFJoY21kbGRDd2djSEp2Y0N3Z2NtVmpaV2wyWlhJcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGMGIwOTJaWEp5YVdSbExtbHVZMngxWkdWektIQnliM0FnWVhNZ2MzUnlhVzVuS1NsY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1VtVm1iR1ZqZEM1blpYUW9kR0Z5WjJWMExDQndjbTl3TENCeVpXTmxhWFpsY2lrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCdVpYY2dVSEp2ZUhrb0tIUmhjbWRsZENCaGN5QmhibmtwVzNCeWIzQmRMQ0I3WEc0Z0lDQWdJQ0FnSUNBZ1lYTjVibU1nWVhCd2JIa29abTRzSUhSb2FYTkJjbWNzSUdGeVozTk1hWE4wS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6ZDJsMFkyZ2dLSEJ5YjNBcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1kyRnpaU0JjSW5CMWRGTjBZWFJsWENJNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJ3ZFhSVGRHRjBaU0J6YVdkdVlYUjFjbVU2SUNocFpEb2djM1J5YVc1bkxDQnRiMlJsYkRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpd2dZM1I0T2lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXBYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1cybGtMQ0J0YjJSbGJDd2dZM1I0WFNBOUlHRnlaM05NYVhOME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4dlp5QTlJR04wZUM1c2IyZG5aWEl1Wm05eUtIQnliM0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4dlp5NWtaV0oxWnloY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHQlFjbWwyWVhSbElIZHlhWFJsSUhSdklDUjdZMjlzYkdWamRHbHZibjBnWm05eUlDUjdhV1F1ZEc5VGRISnBibWNvS1gxZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCa1lYUmhJRDBnUW5WbVptVnlMbVp5YjIwb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEl1YzJWeWFXRnNhWHBsY2k1elpYSnBZV3hwZW1Vb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzF2WkdWc0lHRnpJRTF2WkdWc0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JtWVd4elpWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdZM1I0TG5OMGRXSXVjSFYwVUhKcGRtRjBaVVJoZEdFb1kyOXNiR1ZqZEdsdmJpd2dhV1F1ZEc5VGRISnBibWNvS1N3Z1pHRjBZU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJRzF2WkdWc08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdOaGMyVWdYQ0prWld4bGRHVlRkR0YwWlZ3aU9pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnWkdWc1pYUmxVM1JoZEdVZ2MybG5ibUYwZFhKbE9pQW9hV1E2SUhOMGNtbHVaeXdnWTI5dWRHVjRkRG9nUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMEtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUZ0cFpDd2dZM1I0WFNBOUlHRnlaM05NYVhOME8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4dlp5QTlJR04wZUM1c2IyZG5aWEl1Wm05eUtIQnliM0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUd4dlp5NWtaV0oxWnloY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHQlFjbWwyWVhSbElHUmxiR1YwWlNCdmJpQWtlMk52Ykd4bFkzUnBiMjU5SUdadmNpQWtlMmxrTG5SdlUzUnlhVzVuS0NsOVlGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZWGRoYVhRZ1kzUjRMbk4wZFdJdVpHVnNaWFJsVUhKcGRtRjBaVVJoZEdFb1kyOXNiR1ZqZEdsdmJpd2dhV1F1ZEc5VGRISnBibWNvS1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR05oYzJVZ1hDSnlaV0ZrVTNSaGRHVmNJam9nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUM4dklISmxZV1JUZEdGMFpTQnphV2R1WVhSMWNtVTZJQ2hwWkRvZ2MzUnlhVzVuTENCamRIZzZJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENsY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JiYVdRc0lHTjBlRjBnUFNCaGNtZHpUR2x6ZER0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzYjJjZ1BTQmpkSGd1Ykc5bloyVnlMbVp2Y2lod2NtOXdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCZ1VISnBkbUYwWlNCeVpXRmtJR1p5YjIwZ0pIdGpiMnhzWldOMGFXOXVmU0JtYjNJZ0pIdHBaQzUwYjFOMGNtbHVaeWdwZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdSaGRHRWdQU0JoZDJGcGRDQmpkSGd1YzNSMVlpNW5aWFJRY21sMllYUmxSR0YwWVNoamIyeHNaV04wYVc5dUxDQnBaQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tDRmtZWFJoSUh4OElDRmtZWFJoTG5SdlUzUnlhVzVuS0NrdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvWUZKbFkyOXlaQ0IzYVhSb0lHbGtJQ1I3YVdSOUlHNXZkQ0JtYjNWdVpHQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMbk5sY21saGJHbDZaWEl1WkdWelpYSnBZV3hwZW1Vb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JoZEdFdWRHOVRkSEpwYm1jb1hDSjFkR1k0WENJcFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR1JoZEdFdWRHOVRkSEpwYm1jb1hDSjFkR1k0WENJcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCallYTmxJRndpY1hWbGNubFNaWE4xYkhSY0lqb2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElGdHpkSFZpTENCeVlYZEpibkIxZEN3Z0xpNHVZWEpuYzEwZ1BTQmhjbWR6VEdsemREdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCN0lHeHZaeUI5SUQwZ2RHaHBjMEZ5WjF0Y0lteHZaME4wZUZ3aVhTaGhjbWR6TENCd2NtOXdLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJRzV2Y20xaGJHbDZaV1JKYm5CMWRDQTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdWJtOXliV0ZzYVhwbFRXRnVaMjlSZFdWeWVVWnZja1Y0WldOMWRHbHZiaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtRjNTVzV3ZFhSY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnhkV1Z5ZVVwemIyNGdQU0JLVTA5T0xuTjBjbWx1WjJsbWVTaHViM0p0WVd4cGVtVmtTVzV3ZFhRcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWUZGMVpYSjVhVzVuSUhCeWFYWmhkR1VnWTI5c2JHVmpkR2x2YmlBa2UyTnZiR3hsWTNScGIyNTlJSGRwZEdnZ1RXRnVaMjhnY1hWbGNuazZJQ1I3Y1hWbGNubEtjMjl1ZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKbGN5QTlJR0YzWVdsMElDaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNSMVlpQmhjeUJEYUdGcGJtTnZaR1ZUZEhWaVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBMbWRsZEZCeWFYWmhkR1ZFWVhSaFVYVmxjbmxTWlhOMWJIUW9ZMjlzYkdWamRHbHZiaXdnY1hWbGNubEtjMjl1S1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FYUmxjbUYwYjNJZ1BTQW9jbVZ6SUdGeklHRnVlU2t1YVhSbGNtRjBiM0lnZkh3Z2NtVnpPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9JV2wwWlhKaGRHOXlJSHg4SUhSNWNHVnZaaUJwZEdWeVlYUnZjaTV1WlhoMElDRTlQU0JjSW1aMWJtTjBhVzl1WENJcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZGMVpYSjVSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWUZCeWFYWmhkR1VnY1hWbGNua2diMjRnWTI5c2JHVmpkR2x2YmlBa2UyTnZiR3hsWTNScGIyNTlJR1JwWkNCdWIzUWdjbVYwZFhKdUlHRWdkbUZzYVdRZ2FYUmxjbUYwYjNKZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnBkR1Z5WVhSdmNqdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCc2IyY3VaWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRnRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmdVSEpwZG1GMFpTQk5ZVzVuYnlCeGRXVnllU0JtWVdsc1pXUmdMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHQmpiMnhzWldOMGFXOXVQU1I3WTI5c2JHVmpkR2x2Ym4xZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdCeGRXVnllVDBrZTNGMVpYSjVTbk52Ym4xZ0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdCbGNuSnZjajBrZTJVZ2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2lBL0lHVXVjM1JoWTJzZ2ZId2daUzV0WlhOellXZGxJRG9nVTNSeWFXNW5LR1VwZldBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRjB1YW05cGJpaGNJbHhjYmx3aUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdLVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2RHaHliM2NnZEdocGMwRnlaeTV3WVhKelpVVnljbTl5SUQ4Z2RHaHBjMEZ5Wnk1d1lYSnpaVVZ5Y205eUtHVWdZWE1nUlhKeWIzSXBJRG9nWlR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTJGelpTQmNJbkYxWlhKNVVtVnpkV3gwVUdGbmFXNWhkR1ZrWENJNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCYmMzUjFZaXdnY21GM1NXNXdkWFFzSUd4cGJXbDBMQ0J6YTJsd0xDQmliMjlyYldGeWF5d2dMaTR1WVhKbmMxMGdQVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWVhKbmMweHBjM1E3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlQ0I5SUQwZ2RHaHBjMEZ5WjF0Y0lteHZaME4wZUZ3aVhTaGhjbWR6TENCd2NtOXdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb2MydHBjQ0FoUFQwZ2RXNWtaV1pwYm1Wa0lDWW1JSE5yYVhBZ0lUMDlJRzUxYkd3Z0ppWWdUblZ0WW1WeUtITnJhWEFwSUQ0Z01Da2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZCaFoybHVaMFZ5Y205eUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JjSWxCeWFYWmhkR1VnVFdGdVoyOGdjR0ZuYVc1aGRHbHZiaUJrYjJWeklHNXZkQ0J6ZFhCd2IzSjBJSE5yYVhBdmIyWm1jMlYwSUhCaFoybHVZWFJwYjI0dUlGVnpaU0IwYUdVZ2NtVjBkWEp1WldRZ2MzbHVkR2hsZEdsaklHSnZiMnR0WVhKcklHbHVjM1JsWVdRdVhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnY0dGblpWTnBlbVVnUFNCTllYUm9MbTFoZUNneExDQk9kVzFpWlhJb2JHbHRhWFFwSUh4OElESTFNQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjWFZsY25rZ1BTQjdJQzR1TG5KaGQwbHVjSFYwSUgwZ1lYTWdUV0Z1WjI5UmRXVnllVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnhkV1Z5ZVVsdWNIVjBJRDBnY1hWbGNua2dZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGp0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J4ZFdWeWVWQnJSbWxsYkdRZ1BWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkSGx3Wlc5bUlIRjFaWEo1U1c1d2RYUmJYQ0pmWDNCclJtbGxiR1JjSWwwZ1BUMDlJRndpYzNSeWFXNW5YQ0lnSmlaY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIRjFaWEo1U1c1d2RYUmJYQ0pmWDNCclJtbGxiR1JjSWwwdWRISnBiU2dwTG14bGJtZDBhRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBL0lGTjBjbWx1WnloeGRXVnllVWx1Y0hWMFcxd2lYMTl3YTBacFpXeGtYQ0pkS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQTZJRk4wY21sdVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTjBlRDh1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p3Y21sMllYUmxVR0ZuYVc1aGRHbHZibFJwWlVKeVpXRnJaWEpjSWlrZ2ZIeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYQ0pwWkZ3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXeGxkR1VnY1hWbGNubEpibkIxZEZ0Y0lsOWZjR3RHYVdWc1pGd2lYVHRjYmx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE41Ym5Sb1pYUnBZME4xY25OdmNpQTlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdWNHRnljMlZUZVc1MGFHVjBhV05RY21sMllYUmxRbTl2YTIxaGNtc29ZbTl2YTIxaGNtc3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbTl2YTIxaGNtc2dJVDA5SUhWdVpHVm1hVzVsWkNBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZbTl2YTIxaGNtc2dJVDA5SUc1MWJHd2dKaVpjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdKdmIydHRZWEpySUNFOVBTQmNJbHdpSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWhjM2x1ZEdobGRHbGpRM1Z5YzI5eVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVUdGbmFXNW5SWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRndpVUhKcGRtRjBaU0JOWVc1bmJ5QndZV2RwYm1GMGFXOXVJRzl1YkhrZ2MzVndjRzl5ZEhNZ1lXUmhjSFJsY2kxblpXNWxjbUYwWldRZ2MzbHVkR2hsZEdsaklHSnZiMnR0WVhKcmN5NWNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvSVVGeWNtRjVMbWx6UVhKeVlYa29jWFZsY25rdWMyOXlkQ2tnZkh3Z0lYRjFaWEo1TG5OdmNuUXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVUdGbmFXNW5SWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRndpVUhKcGRtRjBaU0JOWVc1bmJ5QndZV2RwYm1GMGFXOXVJSEpsY1hWcGNtVnpJR0Z1SUdWNGNHeHBZMmwwSUhOdmNuUXVJRUZrWkNCdmNtUmxja0o1S0M0dUxpa2djMjhnWVNCemRHRmliR1VnWjJWdVpYSmhkR1ZrSUdsdVpHVjRJR05oYmlCaVpTQnpaV3hsWTNSbFpDNWNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnpiM0owUm1sbGJHUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JrYVhKbFkzUnBiMjQ2SUhOdmNuUkVhWEpsWTNScGIyNHNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWkVacFpXeGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSDBnUFNCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVaVzV6ZFhKbFJHVjBaWEp0YVc1cGMzUnBZMUJ5YVhaaGRHVlRiM0owS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NYVmxjbmtzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCeGRXVnllVkJyUm1sbGJHUmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZDJGeWJsTmpZVzVRY205dVpVMWhibWR2VDNCbGNtRjBiM0p6S0hGMVpYSjVMbk5sYkdWamRHOXlJSHg4SUh0OUxDQnNiMmNwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm05eWJXRnNhWHBsWkZGMVpYSjVJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNXViM0p0WVd4cGVtVk5ZVzVuYjFGMVpYSjVSbTl5UlhobFkzVjBhVzl1S0hGMVpYSjVLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdVlYUjBZV05vUjJWdVpYSmhkR1ZrVUhKcGRtRjBaVlZ6WlVsdVpHVjRLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm05eWJXRnNhWHBsWkZGMVpYSjVMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYkc5blhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdCUWNtbDJZWFJsSUhCaFoybHVZWFJsWkNCeGRXVnllU0JwYm5CMWRDQmpiMnhzWldOMGFXOXVQU1I3WTI5c2JHVmpkR2x2Ym4wZ2JHbHRhWFE5Skh0c2FXMXBkSDBnYzJ0cGNEMGtlM05yYVhCOUlHSnZiMnR0WVhKclBTUjdZbTl2YTIxaGNtdDlJSE52Y25SR2FXVnNaRDBrZTNOdmNuUkdhV1ZzWkgwZ1pHbHlaV04wYVc5dVBTUjdjMjl5ZEVScGNtVmpkR2x2Ym4wZ2MzbHVkR2hsZEdsalBTUjdRbTl2YkdWaGJpaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzNsdWRHaGxkR2xqUTNWeWMyOXlYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdibTl5YldGc2FYcGxaRkYxWlhKNUxteHBiV2wwSUQwZ2NHRm5aVk5wZW1VZ0t5QXhPMXh1WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjWFZsY25sSVlYTm9JRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNXdjbWwyWVhSbFVYVmxjbmxJWVhOb0tHNXZjbTFoYkdsNlpXUlJkV1Z5ZVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLSE41Ym5Sb1pYUnBZME4xY25OdmNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tITjViblJvWlhScFkwTjFjbk52Y2k1eGRXVnllVWhoYzJnZ0lUMDlJSEYxWlhKNVNHRnphQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dVR0ZuYVc1blJYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdYQ0pRY21sMllYUmxJRTFoYm1kdklHSnZiMnR0WVhKcklHUnZaWE1nYm05MElHMWhkR05vSUhSb1pTQmpkWEp5Wlc1MElIRjFaWEo1TGx3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NYVmxjbWxsY3lBOUlITjViblJvWlhScFkwTjFjbk52Y2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1B5QkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEl1WW5WcGJHUlBjbXhsYzNOTFpYbHpaWFJEYjI1MGFXNTFZWFJwYjI1UmRXVnlhV1Z6S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRzV2Y20xaGJHbDZaV1JSZFdWeWVTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCemVXNTBhR1YwYVdORGRYSnpiM0lzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0ZuWlZOcGVtVmNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ09pQmJleUF1TGk1dWIzSnRZV3hwZW1Wa1VYVmxjbmtzSUd4cGJXbDBPaUJ3WVdkbFUybDZaU0FySURFZ2ZTQmhjeUJOWVc1bmIxRjFaWEo1WFR0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhCaFoyVmtJRDFjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdGM1lXbDBJRVpoWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2k1bGVHVmpkWFJsVUhKcGRtRjBaVTFoYm1kdlVHRm5aVkYxWlhKcFpYTW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhOMGRXSWdZWE1nUTJoaGFXNWpiMlJsVTNSMVlpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5c2JHVmpkR2x2Yml4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdjWFZsY21sbGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY0dGblpWTnBlbVVzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHeHZaMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUdoaGMwMXZjbVVnUFNCd1lXZGxaQzVzWlc1bmRHZ2dQaUJ3WVdkbFUybDZaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmtiMk56SUQwZ2FHRnpUVzl5WlNBL0lIQmhaMlZrTG5Oc2FXTmxLREFzSUhCaFoyVlRhWHBsS1NBNklIQmhaMlZrTzF4dVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2JHVjBJRzVsZUhSQ2IyOXJiV0Z5YXlBOUlGd2lYQ0k3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYVdZZ0tHaGhjMDF2Y21VZ0ppWWdaRzlqY3k1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUd4aGMzUWdQU0JrYjJOelcyUnZZM011YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCc1lYTjBSRzlqSUQwZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMbkJoY25ObFVISnBkbUYwWlZKbGMzVnNkRlpoYkhWbEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzWVhOMExuWmhiSFZsWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb0lTaHpiM0owUm1sbGJHUWdhVzRnYkdGemRFUnZZeWtwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRkJoWjJsdVowVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR0JEWVc1dWIzUWdZblZwYkdRZ2NISnBkbUYwWlNCd1lXZHBibUYwYVc5dUlHSnZiMnR0WVhKck9pQnpiM0owWldRZ1ptbGxiR1FnWENJa2UzTnZjblJHYVdWc1pIMWNJaUJwY3lCdGFYTnphVzVuSUdaeWIyMGdkR2hsSUd4aGMzUWdjbVZ6ZFd4MFlGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQnNZWE4wU1dSV1lXeDFaU0E5SUd4aGMzUkViMk5iYVdSR2FXVnNaRjA3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9iR0Z6ZEVsa1ZtRnNkV1VnUFQwOUlIVnVaR1ZtYVc1bFpDQjhmQ0JzWVhOMFNXUldZV3gxWlNBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVUdGbmFXNW5SWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWUVOaGJtNXZkQ0JpZFdsc1pDQndjbWwyWVhSbElIQmhaMmx1WVhScGIyNGdZbTl2YTIxaGNtczZJR2xrSUdacFpXeGtJRndpSkh0cFpFWnBaV3hrZlZ3aUlHbHpJRzFwYzNOcGJtY2dabkp2YlNCMGFHVWdiR0Z6ZENCeVpYTjFiSFJnWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHNWxlSFJDYjI5cmJXRnlheUE5WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTVpZFdsc1pGTjViblJvWlhScFkxQnlhWFpoZEdWQ2IyOXJiV0Z5YXloN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYzI5eWRFWnBaV3hrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1JwY21WamRHbHZiam9nYzI5eWRFUnBjbVZqZEdsdmJpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFpFWnBaV3hrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hoYzNSV1lXeDFaVG9nYkdGemRFUnZZMXR6YjNKMFJtbGxiR1JkTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR3hoYzNSSlpEb2dVM1J5YVc1bktHeGhjM1JKWkZaaGJIVmxLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnhkV1Z5ZVVoaGMyZ3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEl1ZEc5R1lXSnlhV05RWVdkcGJtRjBhVzl1VW1WemNHOXVjMlVvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCa2IyTnpMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm1WNGRFSnZiMnR0WVhKclhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWUZWdWMzVndjRzl5ZEdWa0lHMWxkR2h2WkNCdmRtVnljbWxrWlNBa2UxTjBjbWx1Wnlod2NtOXdLWDFnWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1lYTjVibU1nY0hWMFUzUmhkR1VvWEc0Z0lDQWdhV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnRiMlJsYkRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpeGNiaUFnSUNCamRIZzZJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEZ4dUlDQXBJSHRjYmlBZ0lDQnNaWFFnWkdGMFlUb2dRblZtWm1WeU8xeHVYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR1JoZEdFZ1BTQkNkV1ptWlhJdVpuSnZiU2hjYmlBZ0lDQWdJQ0FnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxuTmxjbWxoYkdsNlpYSXVjMlZ5YVdGc2FYcGxLRzF2WkdWc0lHRnpJRTF2WkdWc0xDQm1ZV3h6WlNsY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGTmxjbWxoYkdsNllYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRVpoYVd4bFpDQjBieUJ6WlhKcFlXeHBlbVVnY21WamIzSmtJSGRwZEdnZ2FXUWdKSHRwWkgwNklDUjdaWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmlBZ0lDQmhkMkZwZENCamRIZ3VjM1IxWWk1d2RYUlRkR0YwWlNocFpDNTBiMU4wY21sdVp5Z3BMQ0JrWVhSaEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCdGIyUmxiRHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJ5WldGa1UzUmhkR1VvYVdRNklITjBjbWx1Wnl3Z1kzUjRPaUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRcElIdGNiaUFnSUNCc1pYUWdjbVZ6ZFd4ME9pQmhibms3WEc1Y2JpQWdJQ0JqYjI1emRDQjdJR3h2WnlCOUlEMGdkR2hwY3k1c2IyZERkSGdvVzJOMGVGMHNJSFJvYVhNdWNtVmhaRk4wWVhSbEtUdGNiaUFnSUNCamIyNXpkQ0J5WlhNZ1BTQW9ZWGRoYVhRZ1kzUjRMbk4wZFdJdVoyVjBVM1JoZEdVb2FXUXVkRzlUZEhKcGJtY29LU2twTG5SdlUzUnlhVzVuS0NrN1hHNGdJQ0FnYVdZZ0tDRnlaWE1wSUhSb2NtOTNJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLR0JTWldOdmNtUWdkMmwwYUNCcFpDQWtlMmxrZlNCdWIzUWdabTkxYm1SZ0tUdGNiaUFnSUNCc2IyY3VjMmxzYkhrb1lITjBZWFJsSUhKbGRISnBaWFpsWkNCMWJtUmxjaUJwWkNBa2UybGtmV0FwTzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCeVpYTjFiSFFnUFNCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVjMlZ5YVdGc2FYcGxjaTVrWlhObGNtbGhiR2w2WlNoeVpYTXVkRzlUZEhKcGJtY29LU2s3WEc0Z0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZObGNtbGhiR2w2WVhScGIyNUZjbkp2Y2loZ1JtRnBiR1ZrSUhSdklIQmhjbk5sSUhKbFkyOXlaRG9nSkh0bGZXQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1lYTjVibU1nY1hWbGNubFNaWE4xYkhRb1hHNGdJQ0FnYzNSMVlqb2dRMmhoYVc1amIyUmxVM1IxWWl4Y2JpQWdJQ0J5WVhkSmJuQjFkRG9nWVc1NUxGeHVJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRkVzUxYzJWa0xYWmhjbk5jYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrNklGQnliMjFwYzJVOFNYUmxjbUYwYjNKekxsTjBZWFJsVVhWbGNubEpkR1Z5WVhSdmNqNGdlMXh1SUNBZ0lHTnZibk4wSUc1dmNtMWhiR2w2WldSSmJuQjFkQ0E5WEc0Z0lDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdWJtOXliV0ZzYVhwbFRXRnVaMjlSZFdWeWVVWnZja1Y0WldOMWRHbHZiaWh5WVhkSmJuQjFkQ2s3WEc0Z0lDQWdSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TG1GMGRHRmphRWRsYm1WeVlYUmxaRkJ5YVhaaGRHVlZjMlZKYm1SbGVDaHViM0p0WVd4cGVtVmtTVzV3ZFhRcE8xeHVJQ0FnSUhKbGRIVnliaUJ6ZEhWaUxtZGxkRkYxWlhKNVVtVnpkV3gwS0VwVFQwNHVjM1J5YVc1bmFXWjVLRzV2Y20xaGJHbDZaV1JKYm5CMWRDa3BPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUdGemVXNWpJSEYxWlhKNVVtVnpkV3gwVUdGbmFXNWhkR1ZrS0Z4dUlDQWdJSE4wZFdJNklFTm9ZV2x1WTI5a1pWTjBkV0lzWEc0Z0lDQWdjbUYzU1c1d2RYUTZJR0Z1ZVN4Y2JpQWdJQ0JzYVcxcGREb2diblZ0WW1WeUlEMGdNalV3TEZ4dUlDQWdJSEJoWjJVL09pQnVkVzFpWlhJc1hHNGdJQ0FnWW05dmEyMWhjbXMvT2lCemRISnBibWNnZkNCdWRXMWlaWElzWEc0Z0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1YnkxMWJuVnpaV1F0ZG1GeWMxeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFUzUmhkR1ZSZFdWeWVWSmxjM0J2Ym5ObFBFbDBaWEpoZEc5eWN5NVRkR0YwWlZGMVpYSjVTWFJsY21GMGIzSStQaUI3WEc0Z0lDQWdZMjl1YzNRZ2JtOXliV0ZzYVhwbFpFbHVjSFYwSUQxY2JpQWdJQ0FnSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNXViM0p0WVd4cGVtVk5ZVzVuYjFGMVpYSjVSbTl5UlhobFkzVjBhVzl1S0hKaGQwbHVjSFYwS1R0Y2JpQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdVlYUjBZV05vUjJWdVpYSmhkR1ZrVUhKcGRtRjBaVlZ6WlVsdVpHVjRLRzV2Y20xaGJHbDZaV1JKYm5CMWRDazdYRzRnSUNBZ2NtVjBkWEp1SUhOMGRXSXVaMlYwVVhWbGNubFNaWE4xYkhSWGFYUm9VR0ZuYVc1aGRHbHZiaWhjYmlBZ0lDQWdJRXBUVDA0dWMzUnlhVzVuYVdaNUtHNXZjbTFoYkdsNlpXUkpibkIxZENrc1hHNGdJQ0FnSUNCc2FXMXBkQ3hjYmlBZ0lDQWdJR0p2YjJ0dFlYSnJQeTUwYjFOMGNtbHVaeWdwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZqYjJSbGN5QmlhVzVoY25rZ1pHRjBZU0IwYnlCemRISnBibWRjYmlBZ0lDb2dRSE4xYlcxaGNua2dRMjl1ZG1WeWRITWdZU0JWYVc1ME9FRnljbUY1SUhSdklHRWdjM1J5YVc1bklIVnphVzVuSUZWVVJpMDRJR1Z1WTI5a2FXNW5YRzRnSUNBcUlFQndZWEpoYlNCN1ZXbHVkRGhCY25KaGVYMGdZblZtWm1WeUlDMGdWR2hsSUdKcGJtRnllU0JrWVhSaElIUnZJR1JsWTI5a1pWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUZSb1pTQmtaV052WkdWa0lITjBjbWx1WjF4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHUmxZMjlrWlNoaWRXWm1aWEk2SUZWcGJuUTRRWEp5WVhrcElIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUxuUmxlSFJFWldOdlpHVnlMbVJsWTI5a1pTaGlkV1ptWlhJcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGNtVmhkR1Z6SUc5d1pYSmhkR2x2YmlCbWJHRm5jeUJtYjNJZ1JtRmljbWxqSUdOdmJuUnlZV04wSUc5d1pYSmhkR2x2Ym5OY2JpQWdJQ29nUUhOMWJXMWhjbmtnVFdWeVoyVnpJR1JsWm1GMWJIUWdabXhoWjNNZ2QybDBhQ0JHWVdKeWFXTXRjM0JsWTJsbWFXTWdZMjl1ZEdWNGRDQnBibVp2Y20xaGRHbHZibHh1SUNBZ0tpQkFkR1Z0Y0d4aGRHVWdUU0F0SUZSNWNHVWdaWGgwWlc1a2FXNW5JRTF2WkdWc1hHNGdJQ0FxSUVCd1lYSmhiU0I3VDNCbGNtRjBhVzl1UzJWNWMzMGdiM0JsY21GMGFXOXVJQzBnVkdobElHOXdaWEpoZEdsdmJpQmlaV2x1WnlCd1pYSm1iM0p0WldSY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1emRISjFZM1J2Y2p4TlBuMGdiVzlrWld3Z0xTQlVhR1VnYlc5a1pXd2dZMjl1YzNSeWRXTjBiM0pjYmlBZ0lDb2dRSEJoY21GdElIdFFZWEowYVdGc1BFWmhZbkpwWTBOdmJuUnlZV04wUm14aFozTStmU0JtYkdGbmN5QXRJRkJoY25ScFlXd2dabXhoWjNNZ2RHOGdiV1Z5WjJVZ2QybDBhQ0JrWldaaGRXeDBjMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTjBlSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpmU0JVYUdVZ2JXVnlaMlZrSUdac1lXZHpYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnYjNabGNuSnBaR1VnWVhONWJtTWdabXhoWjNNOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0J2Y0dWeVlYUnBiMjQ2SUVGc2JFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lDQWdiVzlrWld3NklFTnZibk4wY25WamRHOXlQRTArSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUdac1lXZHpPaUJRWVhKMGFXRnNQRVpoWW5KcFkwTnZiblJ5WVdOMFJteGhaM00rSUh3Z1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBJSHdnUTNSNElId2dZVzU1WEc0Z0lDazZJRkJ5YjIxcGMyVThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejRnZTF4dUlDQWdJR3hsZENCaVlYTmxSbXhoWjNNZ1BTQjdYRzRnSUNBZ0lDQnpaV2R5WldkaGRHVmtPaUJtWVd4elpTeGNiaUFnSUNBZ0lISmxZblZwYkdSWGFYUm9WSEpoYm5OcFpXNTBPaUJtWVd4elpTeGNiaUFnSUNBZ0lHWjFiR3g1VTJWbmNtVm5ZWFJsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0J6ZEhKcFkzUlFjbWwyWVhSbFRXRnVaMjlRWVdkcGJtRjBhVzl1T2lCMGNuVmxMRnh1SUNBZ0lDQWdjSEpwZG1GMFpWQmhaMmx1WVhScGIyNVVhV1ZDY21WaGEyVnlPaUJjSW1sa1hDSXNYRzRnSUNBZ2ZUdGNiaUFnSUNCcFppQW9abXhoWjNNZ2FXNXpkR0Z1WTJWdlppQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFnZkh3Z1pteGhaM01nYVc1emRHRnVZMlZ2WmlCRGIyNTBaWGgwS1NCN1hHNGdJQ0FnSUNCbWJHRm5jeUE5SUdac1lXZHpMblJ2VDNabGNuSnBaR1Z6S0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWW1GelpVWnNZV2R6SUQwZ1QySnFaV04wTG1GemMybG5iaWhpWVhObFJteGhaM01zSUdac1lXZHpLVHRjYmlBZ0lDQmpiMjV6ZENCemRIVmlSbkp2YlVac1lXZHpJRDFjYmlBZ0lDQWdJQ2htYkdGbmN5QmhjeUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRcExuTjBkV0lnZkh3Z0tHWnNZV2R6SUdGeklFTjBlQ2t1YzNSMVlqdGNiaUFnSUNCamIyNXpkQ0JwWkdWdWRHbDBlVVp5YjIxR2JHRm5jeUE5WEc0Z0lDQWdJQ0FvWm14aFozTWdZWE1nUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMEtTNXBaR1Z1ZEdsMGVTQjhmRnh1SUNBZ0lDQWdLR1pzWVdkeklHRnpJRU4wZUNrdVkyeHBaVzUwU1dSbGJuUnBkSGs3WEc0Z0lDQWdhV1lnS0hOMGRXSkdjbTl0Um14aFozTWdKaVlnYVdSbGJuUnBkSGxHY205dFJteGhaM01wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSFI0U1dRZ1BTQnpkSFZpUm5KdmJVWnNZV2R6TG1kbGRGUjRTVVFvS1R0Y2JpQWdJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9ZbUZ6WlVac1lXZHpMQ0I3WEc0Z0lDQWdJQ0FnSUhOMGRXSTZJSE4wZFdKR2NtOXRSbXhoWjNNc1hHNGdJQ0FnSUNBZ0lHbGtaVzUwYVhSNU9pQnBaR1Z1ZEdsMGVVWnliMjFHYkdGbmN5eGNiaUFnSUNBZ0lDQWdZMlZ5ZERvZ2FXUmxiblJwZEhsR2NtOXRSbXhoWjNNdVoyVjBTVVJDZVhSbGN5Z3BMblJ2VTNSeWFXNW5LQ2tzWEc0Z0lDQWdJQ0FnSUhKdmJHVnpPaUJwWkdWdWRHbDBlVVp5YjIxR2JHRm5jeTVuWlhSQmRIUnlhV0oxZEdWV1lXeDFaU2hjSW5KdmJHVnpYQ0lwTEZ4dUlDQWdJQ0FnSUNCc2IyZG5aWEk2SUV4dloyZHBibWN1Wm05eUtGeHVJQ0FnSUNBZ0lDQWdJRzl3WlhKaGRHbHZiaXhjYmlBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYjJkTVpYWmxiRG9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJQ0FnSUNCMGFXMWxjM1JoYlhBNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl5Y21Wc1lYUnBiMjVKWkRvZ2RIaEpaQ3hjYmlBZ0lDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQWdJR1pzWVdkelhHNGdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJR052Y25KbGJHRjBhVzl1U1dRNklIUjRTV1FzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZbUZ6WlVac1lXZHpJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaGlZWE5sUm14aFozTXNJR1pzWVdkeklIeDhJSHQ5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElITjFjR1Z5TG1ac1lXZHpLRnh1SUNBZ0lDQWdiM0JsY21GMGFXOXVMRnh1SUNBZ0lDQWdiVzlrWld3c1hHNGdJQ0FnSUNCaVlYTmxSbXhoWjNNZ1lYTWdZVzU1WEc0Z0lDQWdLU2tnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JHYkdGbmN6dGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EzSmxZWFJsY3lCaGJpQnBibVJsZUNCbWIzSWdZU0J0YjJSbGJGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVWFHbHpJRzFsZEdodlpDQnBjeUJ1YjNRZ2FXMXdiR1Z0Wlc1MFpXUWdabTl5SUVaaFluSnBZeUJqYjI1MGNtRmpkSE1nWVc1a0lISmxkSFZ5Ym5NZ1lTQnlaWE52YkhabFpDQndjbTl0YVhObFhHNGdJQ0FxSUVCMFpXMXdiR0YwWlNCTklDMGdWSGx3WlNCbGVIUmxibVJwYm1jZ1RXOWtaV3hjYmlBZ0lDb2dRSEJoY21GdElIdERiMjV6ZEhKMVkzUnZjanhOUG4wZ2JXOWtaV3h6SUMwZ1ZHaGxJRzF2WkdWc0lHTnZibk4wY25WamRHOXlYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOGRtOXBaRDU5SUZCeWIyMXBjMlVnZEdoaGRDQnlaWE52YkhabGN5QnBiVzFsWkdsaGRHVnNlVnh1SUNBZ0tpOWNiaUFnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dWJ5MTFiblZ6WldRdGRtRnljMXh1SUNCd2NtOTBaV04wWldRZ2FXNWtaWGc4VFQ0b2JXOWtaV3h6T2lCRGIyNXpkSEoxWTNSdmNqeE5QaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lISmxkSFZ5YmlCUWNtOXRhWE5sTG5KbGMyOXNkbVVvZFc1a1pXWnBibVZrS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVUhKdlkyVnpjMlZ6SUhKbGMzVnNkSE1nWm5KdmJTQmhJSE4wWVhSbElIRjFaWEo1SUdsMFpYSmhkRzl5WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRWwwWlhKaGRHVnpJSFJvY205MVoyZ2djWFZsY25rZ2NtVnpkV3gwY3lCaGJtUWdZMjl1ZG1WeWRITWdkR2hsYlNCMGJ5QmhJSE4wY25WamRIVnlaV1FnWm05eWJXRjBYRzRnSUNBcUlFQndZWEpoYlNCN1RHOW5aMlZ5ZlNCc2IyY2dMU0JNYjJkblpYSWdhVzV6ZEdGdVkyVWdabTl5SUdSbFluVm5aMmx1WjF4dUlDQWdLaUJBY0dGeVlXMGdlMGwwWlhKaGRHOXljeTVUZEdGMFpWRjFaWEo1U1hSbGNtRjBiM0o5SUdsMFpYSmhkRzl5SUMwZ1ZHaGxJSE4wWVhSbElIRjFaWEo1SUdsMFpYSmhkRzl5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdZbTl2YkdWaGJuMGdXMmx6U0dsemRHOXllVDFtWVd4elpWMGdMU0JYYUdWMGFHVnlJSFJvYVhNZ2FYTWdZU0JvYVhOMGIzSjVJSEYxWlhKNVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4WVc1NVcxMCtmU0JRY205dGFYTmxJSEpsYzI5c2RtbHVaeUIwYnlCaGJpQmhjbkpoZVNCdlppQndjbTlqWlhOelpXUWdjbVZ6ZFd4MGMxeHVJQ0FnS2lCQWJXVnliV0ZwWkZ4dUlDQWdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEWVd4c1pYSmNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JTWlhOMWJIUkpkR1Z5WVhSdmNseHVJQ0FnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRWwwWlhKaGRHOXlYRzRnSUNBcVhHNGdJQ0FxSUNBZ1EyRnNiR1Z5TFQ0K1VtVnpkV3gwU1hSbGNtRjBiM0k2SUhKbGMzVnNkRWwwWlhKaGRHOXlLR3h2Wnl3Z2FYUmxjbUYwYjNJc0lHbHpTR2x6ZEc5eWVTbGNiaUFnSUNvZ0lDQnNiMjl3SUZWdWRHbHNJR1J2Ym1WY2JpQWdJQ29nSUNBZ0lGSmxjM1ZzZEVsMFpYSmhkRzl5TFQ0K1NYUmxjbUYwYjNJNklHNWxlSFFvS1Z4dUlDQWdLaUFnSUNBZ1NYUmxjbUYwYjNJdExUNCtVbVZ6ZFd4MFNYUmxjbUYwYjNJNklIc2dkbUZzZFdVc0lHUnZibVVnZlZ4dUlDQWdLaUFnSUNBZ1lXeDBJRWhoY3lCMllXeDFaVnh1SUNBZ0tpQWdJQ0FnSUNCU1pYTjFiSFJKZEdWeVlYUnZjaTArUGxKbGMzVnNkRWwwWlhKaGRHOXlPaUJRY205alpYTnpJSFpoYkhWbElHSmhjMlZrSUc5dUlHbHpTR2x6ZEc5eWVWeHVJQ0FnS2lBZ0lDQWdJQ0JTWlhOMWJIUkpkR1Z5WVhSdmNpMCtQbEpsYzNWc2RFbDBaWEpoZEc5eU9pQkJaR1FnZEc4Z2NtVnpkV3gwY3lCaGNuSmhlVnh1SUNBZ0tpQWdJQ0FnWlc1a1hHNGdJQ0FxSUNBZ1pXNWtYRzRnSUNBcUlDQWdVbVZ6ZFd4MFNYUmxjbUYwYjNJdFBqNUpkR1Z5WVhSdmNqb2dZMnh2YzJVb0tWeHVJQ0FnS2lBZ0lGSmxjM1ZzZEVsMFpYSmhkRzl5TFMwK1BrTmhiR3hsY2pvZ1lXeHNVbVZ6ZFd4MGMxeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR0Z6ZVc1aklISmxjM1ZzZEVsMFpYSmhkRzl5S0Z4dUlDQWdJR3h2WnpvZ1RHOW5aMlZ5TEZ4dUlDQWdJR2wwWlhKaGRHOXlPaUJKZEdWeVlYUnZjbk11VTNSaGRHVlJkV1Z5ZVVsMFpYSmhkRzl5TEZ4dUlDQWdJR2x6U0dsemRHOXllU0E5SUdaaGJITmxYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJR0ZzYkZKbGMzVnNkSE1nUFNCYlhUdGNiaUFnSUNCc1pYUWdjbVZ6T2lCN0lIWmhiSFZsT2lCaGJuazdJR1J2Ym1VNklHSnZiMnhsWVc0Z2ZTQTlJR0YzWVdsMElHbDBaWEpoZEc5eUxtNWxlSFFvS1R0Y2JpQWdJQ0IzYUdsc1pTQW9JWEpsY3k1a2IyNWxLU0I3WEc0Z0lDQWdJQ0JwWmlBb2NtVnpMblpoYkhWbElDWW1JSEpsY3k1MllXeDFaUzUyWVd4MVpTNTBiMU4wY21sdVp5Z3BLU0I3WEc0Z0lDQWdJQ0FnSUd4bGRDQnFjMjl1VW1Wek9pQmhibmtnUFNCN2ZUdGNiaUFnSUNBZ0lDQWdiRzluTG1SbFluVm5LSEpsY3k1MllXeDFaUzUyWVd4MVpTNTBiMU4wY21sdVp5aGNJblYwWmpoY0lpa3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTklhWE4wYjNKNUlDOHFJQ1ltSUdselNHbHpkRzl5ZVNBOVBUMGdkSEoxWlNvdktTQjdYRzRnSUNBZ0lDQWdJQ0FnYW5OdmJsSmxjeTVVZUVsa0lEMGdjbVZ6TG5aaGJIVmxMblI0U1dRN1hHNGdJQ0FnSUNBZ0lDQWdhbk52YmxKbGN5NVVhVzFsYzNSaGJYQWdQU0J5WlhNdWRtRnNkV1V1ZEdsdFpYTjBZVzF3TzF4dUlDQWdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnFjMjl1VW1WekxsWmhiSFZsSUQwZ1NsTlBUaTV3WVhKelpTaHlaWE11ZG1Gc2RXVXVkbUZzZFdVdWRHOVRkSEpwYm1jb1hDSjFkR1k0WENJcEtUdGNiaUFnSUNBZ0lDQWdJQ0I5SUdOaGRHTm9JQ2hsY25JNklHRnVlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdiRzluTG1WeWNtOXlLR1Z5Y2lrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JxYzI5dVVtVnpMbFpoYkhWbElEMGdjbVZ6TG5aaGJIVmxMblpoYkhWbExuUnZVM1J5YVc1bktGd2lkWFJtT0Z3aUtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHcHpiMjVTWlhNZ1BTQktVMDlPTG5CaGNuTmxLSEpsY3k1MllXeDFaUzUyWVd4MVpTNTBiMU4wY21sdVp5aGNJblYwWmpoY0lpa3BPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNqb2dZVzU1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYjJjdVpYSnliM0lvWlhKeUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdwemIyNVNaWE1nUFNCeVpYTXVkbUZzZFdVdWRtRnNkV1V1ZEc5VGRISnBibWNvWENKMWRHWTRYQ0lwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JoYkd4U1pYTjFiSFJ6TG5CMWMyZ29hbk52YmxKbGN5azdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWE1nUFNCaGQyRnBkQ0JwZEdWeVlYUnZjaTV1WlhoMEtDazdYRzRnSUNBZ2ZWeHVJQ0FnSUd4dlp5NWtaV0oxWnloZ1EyeHZjMmx1WnlCcGRHVnlZWFJ2Y2lCaFpuUmxjaUFrZTJGc2JGSmxjM1ZzZEhNdWJHVnVaM1JvZlNCeVpYTjFiSFJ6WUNrN1hHNGdJQ0FnWVhkaGFYUWdhWFJsY21GMGIzSXVZMnh2YzJVb0tUdGNiaUFnSUNCeVpYUjFjbTRnWVd4c1VtVnpkV3gwY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlhobFkzVjBaWE1nWVNCeVlYY2djWFZsY25rZ1lXZGhhVzV6ZENCMGFHVWdjM1JoZEdVZ1pHRjBZV0poYzJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnVUdWeVptOXliWE1nWVNCeWFXTm9JSEYxWlhKNUlIVnphVzVuSUVOdmRXTm9SRUlnYzNsdWRHRjRJR0ZuWVdsdWMzUWdkR2hsSUVaaFluSnBZeUJ6ZEdGMFpTQmtZWFJoWW1GelpWeHVJQ0FnS2lCQWRHVnRjR3hoZEdVZ1VpQXRJRlJvWlNCeVpYUjFjbTRnZEhsd1pWeHVJQ0FnS2lCQWNHRnlZVzBnZTAxaGJtZHZVWFZsY25sOUlISmhkMGx1Y0hWMElDMGdWR2hsSUUxaGJtZHZJRkYxWlhKNUlIUnZJR1Y0WldOMWRHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCa2IyTnpUMjVzZVNBdElGZG9aWFJvWlhJZ2RHOGdjbVYwZFhKdUlHOXViSGtnWkc5amRXMWxiblJ6SUNodWIzUWdkWE5sWkNCcGJpQjBhR2x6SUdsdGNHeGxiV1Z1ZEdGMGFXOXVLVnh1SUNBZ0tpQkFjR0Z5WVcwZ2V5NHVMbUZ1ZVZ0ZGZTQmhjbWR6SUMwZ1FXUmthWFJwYjI1aGJDQmhjbWQxYldWdWRITXNJR2x1WTJ4MVpHbHVaeUIwYUdVZ1kyaGhhVzVqYjJSbElITjBkV0lnWVc1a0lHeHZaMmRsY2x4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRkkrZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnY1hWbGNua2djbVZ6ZFd4MGMxeHVJQ0FnS2lCQWJXVnliV0ZwWkZ4dUlDQWdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEWVd4c1pYSmNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhKY2JpQWdJQ29nSUNCd1lYSjBhV05wY0dGdWRDQlRkSFZpWEc0Z0lDQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1UzUmhkR1ZFUWx4dUlDQWdLbHh1SUNBZ0tpQWdJRU5oYkd4bGNpMCtQa1poWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2pvZ2NtRjNLSEpoZDBsdWNIVjBMQ0JrYjJOelQyNXNlU3dnWTNSNEtWeHVJQ0FnS2lBZ0lFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTArUGtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNqb2dSWGgwY21GamRDQnNhVzFwZENCaGJtUWdjMnRwY0Z4dUlDQWdLaUFnSUdGc2RDQlhhWFJvSUhCaFoybHVZWFJwYjI1Y2JpQWdJQ29nSUNBZ0lFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaTArUGxOMGRXSTZJR2RsZEZGMVpYSjVVbVZ6ZFd4MFYybDBhRkJoWjJsdVlYUnBiMjRvY1hWbGNua3NJR3hwYldsMExDQnphMmx3S1Z4dUlDQWdLaUFnSUdWc2MyVWdWMmwwYUc5MWRDQndZV2RwYm1GMGFXOXVYRzRnSUNBcUlDQWdJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJdFBqNVRkSFZpT2lCblpYUlJkV1Z5ZVZKbGMzVnNkQ2h4ZFdWeWVTbGNiaUFnSUNvZ0lDQmxibVJjYmlBZ0lDb2dJQ0JUZEhWaUxUNCtVM1JoZEdWRVFqb2dSWGhsWTNWMFpTQnhkV1Z5ZVZ4dUlDQWdLaUFnSUZOMFlYUmxSRUl0TFQ0K1UzUjFZam9nU1hSbGNtRjBiM0pjYmlBZ0lDb2dJQ0JUZEhWaUxTMCtQa1poWW5KcFkwTnZiblJ5WVdOMFFXUmhjSFJsY2pvZ1NYUmxjbUYwYjNKY2JpQWdJQ29nSUNCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXRQajVHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJNklISmxjM1ZzZEVsMFpYSmhkRzl5S0d4dlp5d2dhWFJsY21GMGIzSXBYRzRnSUNBcUlDQWdSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5TFMwK1BrTmhiR3hsY2pvZ2NtVnpkV3gwYzF4dUlDQWdLaTljYmlBZ1lYTjVibU1nY21GM1BGSXNJRVFnWlhoMFpXNWtjeUJpYjI5c1pXRnVQaWhjYmlBZ0lDQnlZWGRKYm5CMWREb2dUV0Z1WjI5UmRXVnllU3hjYmlBZ0lDQmtiMk56VDI1c2VUb2dSQ0E5SUhSeWRXVWdZWE1nUkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThVbUYzVW1WemRXeDBQRklzSUVRK1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUN3Z1kzUjRRWEpuY3lCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1eVlYY3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1pXNWhZbXhsVTJWbmNtVm5ZWFJsY3lBOUlDRmhjbWR6TG14bGJtZDBhQ0I4ZkNCaGNtZHpXekJkSUNFOVBTQjBjblZsTzF4dUlDQWdJR052Ym5OMElHWjFiR3g1VTJWbmNtVm5ZWFJsWkNBOUlHVnVZV0pzWlZObFozSmxaMkYwWlhNZ0ppWWdZM1I0TG1selJuVnNiSGxUWldkeVpXZGhkR1ZrTzF4dVhHNGdJQ0FnWTI5dWMzUWdiM0pwWjJsdVlXeEpibkIxZENBOUlIc2dMaTR1S0hKaGQwbHVjSFYwSUdGeklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHBJSDA3WEc0Z0lDQWdZMjl1YzNRZ2V5QnphMmx3TENCc2FXMXBkQ0I5SUQwZ2IzSnBaMmx1WVd4SmJuQjFkRHRjYmlBZ0lDQmpiMjV6ZENCaWIyOXJiV0Z5YXlBOUlHOXlhV2RwYm1Gc1NXNXdkWFJiWENKaWIyOXJiV0Z5YTF3aVhUdGNiaUFnSUNCamIyNXpkQ0JvWVhOVGIzSjBJRDFjYmlBZ0lDQWdJRUZ5Y21GNUxtbHpRWEp5WVhrb0tHOXlhV2RwYm1Gc1NXNXdkWFFnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpa3VjMjl5ZENrZ0ppWmNiaUFnSUNBZ0lDaHZjbWxuYVc1aGJFbHVjSFYwSUdGeklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHBMbk52Y25RdWJHVnVaM1JvSUQ0Z01EdGNiaUFnSUNCamIyNXpkQ0J3YTBacFpXeGtJRDFjYmlBZ0lDQWdJSFI1Y0dWdlppQnZjbWxuYVc1aGJFbHVjSFYwVzF3aVgxOXdhMFpwWld4a1hDSmRJRDA5UFNCY0luTjBjbWx1WjF3aUlDWW1YRzRnSUNBZ0lDQnZjbWxuYVc1aGJFbHVjSFYwVzF3aVgxOXdhMFpwWld4a1hDSmRMblJ5YVcwb0tTNXNaVzVuZEdoY2JpQWdJQ0FnSUNBZ1B5QlRkSEpwYm1jb2IzSnBaMmx1WVd4SmJuQjFkRnRjSWw5ZmNHdEdhV1ZzWkZ3aVhTbGNiaUFnSUNBZ0lDQWdPaUJUZEhKcGJtY29ZM1I0UHk1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW5CeWFYWmhkR1ZRWVdkcGJtRjBhVzl1VkdsbFFuSmxZV3RsY2x3aUtTQjhmQ0JjSW1sa1hDSXBPMXh1SUNBZ0lHTnZibk4wSUdoaGMxTnJhWEFnUFNCemEybHdJQ0U5UFNCMWJtUmxabWx1WldRZ0ppWWdjMnRwY0NBaFBUMGdiblZzYkNBbUppQk9kVzFpWlhJb2MydHBjQ2tnUGlBd08xeHVJQ0FnSUdOdmJuTjBJR2hoYzBKdmIydHRZWEpySUQxY2JpQWdJQ0FnSUdKdmIydHRZWEpySUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnWW05dmEyMWhjbXNnSVQwOUlHNTFiR3dnSmlZZ1ltOXZhMjFoY21zZ0lUMDlJRndpWENJN1hHNGdJQ0FnWTI5dWMzUWdjR0ZuYVc1aGRHbHZia0ZqZEdsMlpTQTlJRUp2YjJ4bFlXNG9iR2x0YVhRZ2ZId2dhR0Z6VTJ0cGNDQjhmQ0JvWVhOQ2IyOXJiV0Z5YXlrN1hHNGdJQ0FnWTI5dWMzUWdjMmh2ZFd4a1VHRm5hVzVoZEdVZ1BTQkNiMjlzWldGdUtGeHVJQ0FnSUNBZ2NHRm5hVzVoZEdsdmJrRmpkR2wyWlNBbUpseHVJQ0FnSUNBZ0lDQW9aVzVoWW14bFUyVm5jbVZuWVhSbGN5QjhmQ0JvWVhOVGEybHdJSHg4SUdoaGMwSnZiMnR0WVhKcklIeDhJR2hoYzFOdmNuUXBYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JpWVhObFNXNXdkWFE2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0Z1BTQjdJQzR1TG05eWFXZHBibUZzU1c1d2RYUWdmVHRjYmlBZ0lDQmtaV3hsZEdVZ1ltRnpaVWx1Y0hWMFcxd2ljMnRwY0Z3aVhUdGNiaUFnSUNCa1pXeGxkR1VnWW1GelpVbHVjSFYwVzF3aVltOXZhMjFoY210Y0lsMDdYRzRnSUNBZ1pHVnNaWFJsSUdKaGMyVkpibkIxZEZ0Y0lsOWZjR3RHYVdWc1pGd2lYVHRjYmlBZ0lDQnNaWFFnY21WemNDQTlJSHNnWkc5amN6b2dXMTBzSUdKdmIydHRZWEpyT2lCMWJtUmxabWx1WldRZ1lYTWdjM1J5YVc1bklId2dkVzVrWldacGJtVmtJSDA3WEc0Z0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdZSEpoZHlCeGRXVnllU0J6ZEdGeWRDQm1kV3hzZVZObFozSmxaMkYwWldROUpIdG1kV3hzZVZObFozSmxaMkYwWldSOUlHVnVZV0pzWlZObFozSmxaMkYwWlhNOUpIdGxibUZpYkdWVFpXZHlaV2RoZEdWemZTQndZV2RwYm1GMGFXOXVRV04wYVhabFBTUjdjR0ZuYVc1aGRHbHZia0ZqZEdsMlpYMGdiR2x0YVhROUpIdHNhVzFwZEgwZ2MydHBjRDBrZTNOcmFYQjlJR0p2YjJ0dFlYSnJQU1I3WW05dmEyMWhjbXQ5SUhCclJtbGxiR1E5Skh0d2EwWnBaV3hrZlNCeGRXVnllVDBrZTBwVFQwNHVjM1J5YVc1bmFXWjVLRnh1SUNBZ0lDQWdJQ0J2Y21sbmFXNWhiRWx1Y0hWMFhHNGdJQ0FnSUNBcGZXQmNiaUFnSUNBcE8xeHVYRzRnSUNBZ0x5OGdVWFZsY25rZ2NIVmliR2xqSUhOMFlYUmxJRzl1YkhrZ2QyaGxiaUIwYUdVZ2JXOWtaV3dnYVhNZ1RrOVVJR1oxYkd4NUlITmxaM0psWjJGMFpXUmNiaUFnSUNCcFppQW9JV1oxYkd4NVUyVm5jbVZuWVhSbFpDa2dlMXh1SUNBZ0lDQWdiR1YwSUdsMFpYSmhkRzl5T2lCSmRHVnlZWFJ2Y25NdVUzUmhkR1ZSZFdWeWVVbDBaWEpoZEc5eU8xeHVJQ0FnSUNBZ2FXWWdLSE5vYjNWc1pGQmhaMmx1WVhSbEtTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQmhaMmx1WVhSbFpFbHVjSFYwT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdleUF1TGk1aVlYTmxTVzV3ZFhRZ2ZUdGNiaUFnSUNBZ0lDQWdaR1ZzWlhSbElIQmhaMmx1WVhSbFpFbHVjSFYwVzF3aWJHbHRhWFJjSWwwN1hHNGdJQ0FnSUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdJQ0JnVW1WMGNtbGxkbWx1WnlCd2RXSnNhV01nY0dGbmFXNWhkR1ZrSUdsMFpYSmhkRzl5T2lCc2FXMXBkRG9nSkh0c2FXMXBkSDB2SUhOcmFYQTZJQ1I3YzJ0cGNIMGdZbTl2YTIxaGNtczlKSHRpYjI5cmJXRnlhMzFnWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sT2lCVGRHRjBaVkYxWlhKNVVtVnpjRzl1YzJVOFNYUmxjbUYwYjNKekxsTjBZWFJsVVhWbGNubEpkR1Z5WVhSdmNqNGdQVnh1SUNBZ0lDQWdJQ0FnSUNoaGQyRnBkQ0IwYUdsekxuRjFaWEo1VW1WemRXeDBVR0ZuYVc1aGRHVmtLRnh1SUNBZ0lDQWdJQ0FnSUNBZ1kzUjRMbk4wZFdJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J3WVdkcGJtRjBaV1JKYm5CMWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4cGJXbDBJSHg4SURJMU1DeGNiaUFnSUNBZ0lDQWdJQ0FnSUNoemEybHdJR0Z6SUdGdWVTay9MblJ2VTNSeWFXNW5LQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmliMjlyYldGeWF5eGNiaUFnSUNBZ0lDQWdJQ0FnSUM0dUxsdGpkSGdnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBYVnh1SUNBZ0lDQWdJQ0FnSUNrcElHRnpJRk4wWVhSbFVYVmxjbmxTWlhOd2IyNXpaVHhKZEdWeVlYUnZjbk11VTNSaGRHVlJkV1Z5ZVVsMFpYSmhkRzl5UGp0Y2JpQWdJQ0FnSUNBZ2NtVnpjQzVpYjI5cmJXRnlheUE5SUhKbGMzQnZibk5sTG0xbGRHRmtZWFJoTG1KdmIydHRZWEpyTzF4dUlDQWdJQ0FnSUNCcGRHVnlZWFJ2Y2lBOUlISmxjM0J2Ym5ObExtbDBaWEpoZEc5eU8xeHVJQ0FnSUNBZ0lDQnNiMmN1WkdWaWRXY29ZRkpsZEhKcFpYWmxaQ0J3ZFdKc2FXTWdjR0ZuYVc1bklHbDBaWEpoZEc5eVlDazdYRzRnSUNBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnSUNCZ2NIVmliR2xqSUhCaFoybHVZWFJsWkNCeVpYTndiMjV6WlNCaWIyOXJiV0Z5YXowa2UzSmxjM0F1WW05dmEyMWhjbXQ5SUhGMVpYSjVQU1I3U2xOUFRpNXpkSEpwYm1kcFpua29YRzRnSUNBZ0lDQWdJQ0FnSUNCd1lXZHBibUYwWldSSmJuQjFkRnh1SUNBZ0lDQWdJQ0FnSUNsOVlGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdiRzluTG1SbFluVm5LRndpVW1WMGNtbGxkbWx1WnlCc2FYTjBhVzVuSUhCMVlteHBZeUJwZEdWeVlYUnZjbHdpS1R0Y2JpQWdJQ0FnSUNBZ2FYUmxjbUYwYjNJZ1BTQW9ZWGRoYVhRZ2RHaHBjeTV4ZFdWeWVWSmxjM1ZzZENoY2JpQWdJQ0FnSUNBZ0lDQmpkSGd1YzNSMVlpeGNiaUFnSUNBZ0lDQWdJQ0I3SUM0dUxtSmhjMlZKYm5CMWRDQjlMRnh1SUNBZ0lDQWdJQ0FnSUdOMGVGeHVJQ0FnSUNBZ0lDQXBLU0JoY3lCSmRHVnlZWFJ2Y25NdVUzUmhkR1ZSZFdWeWVVbDBaWEpoZEc5eU8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JHOW5MbVJsWW5WbktHQlNaWFJ5YVdWMlpXUWdjSFZpYkdsaklHeHBjM1JwYm1jZ2FYUmxjbUYwYjNKZ0tUdGNibHh1SUNBZ0lDQWdjbVZ6Y0M1a2IyTnpJRDBnS0dGM1lXbDBJSFJvYVhNdWNtVnpkV3gwU1hSbGNtRjBiM0lvYkc5bkxDQnBkR1Z5WVhSdmNpa3BJR0Z6SUdGdWVUdGNiaUFnSUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdZSEpsZEhWeWJtbHVaeUFrZTBGeWNtRjVMbWx6UVhKeVlYa29jbVZ6Y0M1a2IyTnpLU0EvSUhKbGMzQXVaRzlqY3k1c1pXNW5kR2dnT2lBeGZTQnlaWE4xYkhSellGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYkc5bkxtUmxZblZuS0Z3aVUydHBjSEJwYm1jZ2NIVmliR2xqSUhOMFlYUmxJSEYxWlhKNUlDaG1kV3hzZVNCelpXZHlaV2RoZEdWa0lHMXZaR1ZzS1Z3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0JqYjJ4c1pXTjBhVzl1Y3lBOUlHVnVZV0pzWlZObFozSmxaMkYwWlhNZ1B5QmpkSGd1WjJWMFVtVmhaRU52Ykd4bFkzUnBiMjV6S0NrZ09pQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ1lISmxZV1FnWTI5c2JHVmpkR2x2Ym5NZ1ptOXlJSEpoZHlCeGRXVnllVG9nSkh0S1UwOU9Mbk4wY21sdVoybG1lU2hqYjJ4c1pXTjBhVzl1Y3lCOGZDQmJYU2w5WUZ4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JwWmlBb1kyOXNiR1ZqZEdsdmJuTWdKaVlnWTI5c2JHVmpkR2x2Ym5NdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBdkx5QkNkV2xzWkNCaElHWnlaWE5vSUdsdWNIVjBJSGRwZEdnZ2JHbHRhWFF2YzJ0cGNDOWliMjlyYldGeWF5QnlaWE4wYjNKbFpGeHVJQ0FnSUNBZ1kyOXVjM1FnYzJWbmNtVm5ZWFJsWkVsdWNIVjBJRDBnZXlBdUxpNWlZWE5sU1c1d2RYUWdmVHRjYmlBZ0lDQWdJR2xtSUNoc2FXMXBkQ2tnYzJWbmNtVm5ZWFJsWkVsdWNIVjBMbXhwYldsMElEMGdiR2x0YVhRN1hHNGdJQ0FnSUNCcFppQW9jMnRwY0NrZ2MyVm5jbVZuWVhSbFpFbHVjSFYwTG5OcmFYQWdQU0J6YTJsd08xeHVJQ0FnSUNBZ2FXWWdLR0p2YjJ0dFlYSnJLU0J6WldkeVpXZGhkR1ZrU1c1d2RYUmJYQ0ppYjI5cmJXRnlhMXdpWFNBOUlHSnZiMnR0WVhKck8xeHVJQ0FnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ0lDQmdjMlZuY21WbllYUmxaQ0JwYm5CMWRDQndjbVZ3WVhKbFpEb2dKSHRLVTA5T0xuTjBjbWx1WjJsbWVTaHpaV2R5WldkaGRHVmtTVzV3ZFhRcGZXQmNiaUFnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElITmxaM0psWjJGMFpXUTZJR0Z1ZVZ0ZElEMGdXMTA3WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdOdmJHeGxZM1JwYjI0Z2IyWWdZMjlzYkdWamRHbHZibk1wSUh0Y2JpQWdJQ0FnSUNBZ2JHOW5MbVJsWW5WbktHQlJkV1Z5ZVdsdVp5Qm1jbTl0SUNSN1kyOXNiR1ZqZEdsdmJuMWdLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdabkp2YlVOdmJITWdQU0JoZDJGcGRDQjBhR2x6TG1admNsQnlhWFpoZEdVb1kyOXNiR1ZqZEdsdmJpa3VjbUYzS0Z4dUlDQWdJQ0FnSUNBZ0lIc2dMaTR1YzJWbmNtVm5ZWFJsWkVsdWNIVjBJSDBnWVhNZ1RXRnVaMjlSZFdWeWVTeGNiaUFnSUNBZ0lDQWdJQ0JtWVd4elpTeGNiaUFnSUNBZ0lDQWdJQ0IwY25WbExGeHVJQ0FnSUNBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2JHOW5MblpsY21KdmMyVW9YRzRnSUNBZ0lDQWdJQ0FnWUhKbFkyVnBkbVZrSUNSN0tHWnliMjFEYjJ4eklHRnpJSFZ1YTI1dmQyNGdZWE1nWVc1NVcxMHBMbXhsYm1kMGFIMGdabkp2YlNBa2UyTnZiR3hsWTNScGIyNTlZRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCelpXZHlaV2RoZEdWa0xuQjFjMmdvWm5KdmJVTnZiSE1wTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnTHk4Z1VISmxabVZ5SUhSb1pTQnlaWE53YjI1elpTQjNhWFJvSUhSb1pTQnRiM04wSUhKbGMzVnNkSE1nYzI4Z2JXbDRaV1FnWVc1a0lHWjFiR3g1SUhObFozSmxaMkYwWldSY2JpQWdJQ0FnSUM4dklISmxZV1J6SUhKbGRIVnliaUIwYUdVZ1kyOXNiR1ZqZEdsdmJpQjBhR0YwSUdGamRIVmhiR3g1SUcxaGRHTm9aV1FnZEdobElIRjFaWEo1TGx4dUlDQWdJQ0FnY21WemNDQTlJSE5sWjNKbFoyRjBaV1F1Y21Wa2RXTmxLQ2hoWTJNc0lHTjFjbklwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGaFkyTXBJSEpsZEhWeWJpQmpkWEp5TzF4dUlDQWdJQ0FnSUNCcFppQW9ZM1Z5Y2k1a2IyTnpJQ1ltSUdOMWNuSXVaRzlqY3k1c1pXNW5kR2dnUGowZ1lXTmpQeTVrYjJOekxteGxibWQwYUNrZ2NtVjBkWEp1SUdOMWNuSTdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhZMk03WEc0Z0lDQWdJQ0I5TENCeVpYTndLVHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnWUhObFozSmxaMkYwWldRZ2NYVmxjbmtnY21WemIyeDJaV1FnWkc5amN6MGtlMEZ5Y21GNUxtbHpRWEp5WVhrb2NtVnpjQzVrYjJOektTQS9JSEpsYzNBdVpHOWpjeTVzWlc1bmRHZ2dPaUF3ZlNCaWIyOXJiV0Z5YXowa2UzSmxjM0F1WW05dmEyMWhjbXQ5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb1pHOWpjMDl1YkhrcElIdGNiaUFnSUNBZ0lHeHZaeTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdZSEpoZHlCeGRXVnllU0J5WlhSMWNtNXBibWNnWkc5amMwOXViSGs5Skh0a2IyTnpUMjVzZVgwZ1pHOWpjejBrZTBGeWNtRjVMbWx6UVhKeVlYa29jbVZ6Y0M1a2IyTnpLU0EvSUhKbGMzQXVaRzlqY3k1c1pXNW5kR2dnT2lBd2ZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpjQzVrYjJOeklHRnpJR0Z1ZVR0Y2JpQWdJQ0I5WEc0Z0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdZSEpoZHlCeGRXVnllU0J5WlhSMWNtNXBibWNnWkc5amN5OWliMjlyYldGeWF5QmtiMk56UFNSN1FYSnlZWGt1YVhOQmNuSmhlU2h5WlhOd0xtUnZZM01wSUQ4Z2NtVnpjQzVrYjJOekxteGxibWQwYUNBNklEQjlJR0p2YjJ0dFlYSnJQU1I3Y21WemNDNWliMjlyYldGeWEzMWdYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnY21WemNDQmhjeUJoYm5rN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUV4cGMzUnpJR0ZzYkNCeVpXTnZjbVJ6SUc5bUlHRWdiVzlrWld3Z2RYTnBibWNnY21GdVoyVWdjWFZsY21sbGN5QW9aR1YwWlhKdGFXNXBjM1JwWXl3Z2QzSnBkR1V0YzJGbVpTbGNiaUFnSUNvZ1FITjFiVzFoY25rZ1NYUmxjbUYwWlhNZ2NtVmpiM0prY3lCMmFXRWdZR2RsZEZOMFlYUmxRbmxRWVhKMGFXRnNRMjl0Y0c5emFYUmxTMlY1WUNBb2NIVmliR2xqS1NCaGJtUmNiaUFnSUNvZ1lHZGxkRkJ5YVhaaGRHVkVZWFJoUW5sUVlYSjBhV0ZzUTI5dGNHOXphWFJsUzJWNVlDQW9jSEpwZG1GMFpTOXphR0Z5WldRcExDQm1iMnhzYjNkcGJtY2dkR2hsSUhOaGJXVWdZMjlzYkdWamRHbHZiaTF5YjNWMGFXNW5YRzRnSUNBcUlHeHZaMmxqSUdGeklHQnlZWGNvS1dBZ1luVjBJSFZ6YVc1bklFWmhZbkpwWXlCeVlXNW5aU0J4ZFdWeWFXVnpJR2x1YzNSbFlXUWdiMllnVFdGdVoyOGdjMlZzWldOMGIzSnpMbHh1SUNBZ0tpQlZibXhwYTJVZ1lISmhkeWdwWUN3Z2RHaHBjeUJ0WlhSb2IyUWdhWE1nYzJGbVpTQjBieUIxYzJVZ2FXNGdkR2hsSUhOaGJXVWdkSEpoYm5OaFkzUnBiMjRnWVhNZ2QzSnBkR1Z6SUdKbFkyRjFjMlZjYmlBZ0lDb2djbUZ1WjJVZ2NYVmxjbWxsY3lCaGNtVWdaR1YwWlhKdGFXNXBjM1JwWXlCaGJtUWdaRzhnYm05MElHSnNiMk5ySUhOMVluTmxjWFZsYm5RZ1lIQjFkRk4wWVhSbFlDOWdjSFYwVUhKcGRtRjBaVVJoZEdGZ0lHTmhiR3h6TGx4dUlDQWdLaUJBZEdWdGNHeGhkR1VnVFNBdElGUjVjR1VnWlhoMFpXNWthVzVuSUUxdlpHVnNYRzRnSUNBcUlFQndZWEpoYlNCN1EyOXVjM1J5ZFdOMGIzSThUVDU5SUdOc1lYcDZJQzBnVkdobElHMXZaR1ZzSUdOdmJuTjBjblZqZEc5eVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5XMTE5SUZ0aGRIUnlhV0oxZEdWelBWdGRYU0F0SUZCaGNuUnBZV3dnWTI5dGNHOXphWFJsSUd0bGVTQmhkSFJ5YVdKMWRHVnpJSFJ2SUdacGJIUmxjaUJpZVNBb1pXMXdkSGtnUFNCaGJHd2djbVZqYjNKa2N5bGNiaUFnSUNvZ1FIQmhjbUZ0SUhzdUxpNURiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStmU0JoY21keklDMGdRMjl1ZEdWNGRIVmhiQ0JoY21kMWJXVnVkSE1nYVc1amJIVmthVzVuSUhSb1pTQmphR0ZwYm1OdlpHVWdZMjl1ZEdWNGRGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEUxYlhUNTlJRkJ5YjIxcGMyVWdjbVZ6YjJ4MmFXNW5JSFJ2SUdGdUlHRnljbUY1SUc5bUlISmxZMjl1YzNSeWRXTjBaV1FnYlc5a1pXd2dhVzV6ZEdGdVkyVnpYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QnlZVzVuWlV4cGMzUThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUNBZ1lYUjBjbWxpZFhSbGN6b2djM1J5YVc1blcxMGdQU0JiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThUVnRkUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnc0lHeHZaeUI5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTV5WVc1blpVeHBjM1FwTzF4dUlDQWdJR052Ym5OMElIUmhZbXhsVG1GdFpTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaGpiR0Y2ZWlrN1hHNGdJQ0FnWTI5dWMzUWdablZzYkhsVFpXZHlaV2RoZEdWa0lEMGdZM1I0TG1selJuVnNiSGxUWldkeVpXZGhkR1ZrTzF4dVhHNGdJQ0FnWTI5dWMzUWdaR1Z6WlhKcFlXeHBlbVZGYm5SeWVTQTlJQ2h5WVhjNklGVnBiblE0UVhKeVlYa3BPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUh3Z2RXNWtaV1pwYm1Wa0lEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElITjBjaUE5SUVKMVptWmxjaTVtY205dEtISmhkeWt1ZEc5VGRISnBibWNvWENKMWRHWTRYQ0lwTzF4dUlDQWdJQ0FnYVdZZ0tDRnpkSElwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlMbk5sY21saGJHbDZaWEl1WkdWelpYSnBZV3hwZW1Vb2MzUnlLU0JoY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK08xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb2MzUnlLU0JoY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK08xeHVJQ0FnSUNBZ0lDQjlJR05oZEdOb0lIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVHRjYmx4dUlDQWdJQzh2SUVOdmJHeGxZM1FnY21GM0lHUmhkR0VnYTJWNVpXUWdZbmtnWTI5dGNHOXphWFJsSUd0bGVTd2diV1Z5WjJsdVp5QndkV0pzYVdNZ0t5QndjbWwyWVhSbElHbHVJRzl5WkdWeUlDaHpZVzFsSUdGeklISmxZV1FvS1NsY2JpQWdJQ0JqYjI1emRDQnlZWGRDZVV0bGVTQTlJRzVsZHlCTllYQThjM1J5YVc1bkxDQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQaWdwTzF4dVhHNGdJQ0FnYVdZZ0tDRm1kV3hzZVZObFozSmxaMkYwWldRcElIdGNiaUFnSUNBZ0lHeHZaeTVrWldKMVp5aGdjbUZ1WjJWTWFYTjBJSEIxWW14cFl6b2diMkpxWldOMFZIbHdaVDBrZTNSaFlteGxUbUZ0WlgwZ1lYUjBjbWxpZFhSbGN6MGtlMHBUVDA0dWMzUnlhVzVuYVdaNUtHRjBkSEpwWW5WMFpYTXBmV0FwTzF4dUlDQWdJQ0FnWTI5dWMzUWdhWFJsY21GMGIzSWdQU0JoZDJGcGRDQmpkSGd1YzNSMVlpNW5aWFJUZEdGMFpVSjVVR0Z5ZEdsaGJFTnZiWEJ2YzJsMFpVdGxlU2gwWVdKc1pVNWhiV1VzSUdGMGRISnBZblYwWlhNcE8xeHVJQ0FnSUNBZ2JHVjBJRzVsZUhRZ1BTQmhkMkZwZENCcGRHVnlZWFJ2Y2k1dVpYaDBLQ2s3WEc0Z0lDQWdJQ0IzYUdsc1pTQW9JVzVsZUhRdVpHOXVaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9ibVY0ZEM1MllXeDFaVDh1ZG1Gc2RXVXBJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JrWVhSaElEMGdaR1Z6WlhKcFlXeHBlbVZGYm5SeWVTaHVaWGgwTG5aaGJIVmxMblpoYkhWbEtUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb1pHRjBZU2tnY21GM1FubExaWGt1YzJWMEtHNWxlSFF1ZG1Gc2RXVXVhMlY1TENCa1lYUmhLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCdVpYaDBJRDBnWVhkaGFYUWdhWFJsY21GMGIzSXVibVY0ZENncE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1lYZGhhWFFnYVhSbGNtRjBiM0l1WTJ4dmMyVW9LVHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhnY21GdVoyVk1hWE4wSUhCMVlteHBZem9nSkh0eVlYZENlVXRsZVM1emFYcGxmU0JsYm5SeWFXVnpZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJuTWdQU0JqZEhndVoyVjBVbVZoWkVOdmJHeGxZM1JwYjI1ektDazdYRzRnSUNBZ2FXWWdLR052Ykd4bFkzUnBiMjV6UHk1c1pXNW5kR2dwSUh0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQnZaaUJqYjJ4c1pXTjBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ0lDQnNiMmN1WkdWaWRXY29ZSEpoYm1kbFRHbHpkQ0J3Y21sMllYUmxPaUJqYjJ4c1pXTjBhVzl1UFNSN1kyOXNiR1ZqZEdsdmJuMGdiMkpxWldOMFZIbHdaVDBrZTNSaFlteGxUbUZ0WlgwZ1lYUjBjbWxpZFhSbGN6MGtlMHBUVDA0dWMzUnlhVzVuYVdaNUtHRjBkSEpwWW5WMFpYTXBmV0FwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwZEdWeVlYUnZjaUE5SUdGM1lXbDBJR04wZUM1emRIVmlMbWRsZEZCeWFYWmhkR1ZFWVhSaFFubFFZWEowYVdGc1EyOXRjRzl6YVhSbFMyVjVLR052Ykd4bFkzUnBiMjRzSUhSaFlteGxUbUZ0WlN3Z1lYUjBjbWxpZFhSbGN5azdYRzRnSUNBZ0lDQWdJR3hsZENCamIzVnVkQ0E5SURBN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J1WlhoMElEMGdZWGRoYVhRZ2FYUmxjbUYwYjNJdWJtVjRkQ2dwTzF4dUlDQWdJQ0FnSUNCM2FHbHNaU0FvSVc1bGVIUXVaRzl1WlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNodVpYaDBMblpoYkhWbFB5NTJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlHUmxjMlZ5YVdGc2FYcGxSVzUwY25rb2JtVjRkQzUyWVd4MVpTNTJZV3gxWlNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWmlBb1pHRjBZU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQmxlR2x6ZEdsdVp5QTlJSEpoZDBKNVMyVjVMbWRsZENodVpYaDBMblpoYkhWbExtdGxlU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobGVHbHpkR2x1WnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvWlhocGMzUnBibWNzSUdSaGRHRXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmhkMEo1UzJWNUxuTmxkQ2h1WlhoMExuWmhiSFZsTG10bGVTd2daR0YwWVNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5MWJuUXJLenRjYmlBZ0lDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2JtVjRkQ0E5SUdGM1lXbDBJR2wwWlhKaGRHOXlMbTVsZUhRb0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0JoZDJGcGRDQnBkR1Z5WVhSdmNpNWpiRzl6WlNncE8xeHVJQ0FnSUNBZ0lDQnNiMmN1WkdWaWRXY29ZSEpoYm1kbFRHbHpkQ0J3Y21sMllYUmxPaUJqYjJ4c1pXTjBhVzl1UFNSN1kyOXNiR1ZqZEdsdmJuMGdKSHRqYjNWdWRIMGdaVzUwY21sbGMyQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkSE02SUUxYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnVzJOdmJYQnZjMmwwWlV0bGVTd2daR0YwWVYwZ2IyWWdjbUYzUW5sTFpYa3BJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhzZ1lYUjBjbWxpZFhSbGN6b2dhMlY1VUdGeWRITWdmU0E5SUdOMGVDNXpkSFZpTG5Od2JHbDBRMjl0Y0c5emFYUmxTMlY1S0dOdmJYQnZjMmwwWlV0bGVTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHbGtJRDBnYTJWNVVHRnlkSE5iTUYwN1hHNGdJQ0FnSUNBZ0lHbG1JQ2doYVdRcElHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ0lDQnlaWE4xYkhSekxuQjFjMmdvZEdocGN5NXlaWFpsY25Rb1pHRjBZU3dnWTJ4aGVub3NJR2xrTENCMWJtUmxabWx1WldRc0lHTjBlQ2twTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQnNiMmN1ZDJGeWJpaGdjbUZ1WjJWTWFYTjBPaUJ6YTJsd2NHbHVaeUJsYm5SeWVTQWtlMk52YlhCdmMybDBaVXRsZVgwNklDUjdaU0JwYm5OMFlXNWpaVzltSUVWeWNtOXlJRDhnWlM1dFpYTnpZV2RsSURvZ1pYMWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnNiMmN1WkdWaWRXY29ZSEpoYm1kbFRHbHpkRG9nY21WMGRYSnVhVzVuSUNSN2NtVnpkV3gwY3k1c1pXNW5kR2g5SUNSN1kyeGhlbm91Ym1GdFpYMGdhVzV6ZEdGdVkyVnpZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZEhNN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCMmFXVjNQRkkrS0Z4dUlDQWdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym04dGRXNTFjMlZrTFhaaGNuTmNiaUFnSUNCa1pHOWpPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQWdJSFpwWlhkT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQWdJRzl3ZEdsdmJuTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdMeThnWlhOc2FXNTBMV1JwYzJGaWJHVXRibVY0ZEMxc2FXNWxJRUIwZVhCbGMyTnlhWEIwTFdWemJHbHVkQzl1YnkxMWJuVnpaV1F0ZG1GeWMxeHVJQ0FnSUM0dUxsOWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK1hHNGdJQ2s2SUZCeWIyMXBjMlU4Vm1sbGQxSmxjM0J2Ym5ObFBGSStQaUI3WEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRlZ1YzNWd2NHOXlkR1ZrUlhKeWIzSW9YRzRnSUNBZ0lDQmNJa1poWW5KcFl5QmpiMjUwY21GamRITWdaRzhnYm05MElITjFjSEJ2Y25RZ1EyOTFZMmhFUWlCMmFXVjNjeTVjSWx4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCVGRHRjBaVzFsYm5ROFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0J2ZG1WeWNtbGtaWE0vT2lCUVlYSjBhV0ZzUEVGa1lYQjBaWEpHYkdGbmN6NWNiaUFnS1RvZ1JtRmljbWxqVTNSaGRHVnRaVzUwUEUwc0lHRnVlVDRnZTF4dUlDQWdJSEpsZEhWeWJpQnVaWGNnUm1GaWNtbGpVM1JoZEdWdFpXNTBLSFJvYVhNZ1lYTWdZVzU1TENCdmRtVnljbWxrWlhNcE8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ2RYQmtZWFJsUVd4c1BFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnZEdGaWJHVk9ZVzFsT2lCRGIyNXpkSEoxWTNSdmNqeE5QaXhjYmlBZ0lDQnBaRG9nVUhKcGJXRnllVXRsZVZSNWNHVmJYU3hjYmlBZ0lDQnRiMlJsYkRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBsdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRENWNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1cxMCtJSHRjYmlBZ0lDQnBaaUFvYVdRdWJHVnVaM1JvSUNFOVBTQnRiMlJsYkM1c1pXNW5kR2dwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJa2xrY3lCaGJtUWdiVzlrWld4eklHMTFjM1FnYUdGMlpTQjBhR1VnYzJGdFpTQnNaVzVuZEdoY0lpazdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVkWEJrWVhSbFFXeHNLVHRjYmlBZ0lDQmpiMjV6ZENCMFlXSnNaVXhoWW1Wc0lEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUmhZbXhsVG1GdFpTazdYRzRnSUNBZ2JHOW5MbVJsWW5WbktHQlZjR1JoZEdsdVp5QWtlMmxrTG14bGJtZDBhSDBnWlc1MGNtbGxjeUFrZTNSaFlteGxUR0ZpWld4OUlIUmhZbXhsWUNrN1hHNGdJQ0FnY21WMGRYSnVJRkJ5YjIxcGMyVXVZV3hzS0Z4dUlDQWdJQ0FnYVdRdWJXRndLQ2hwTENCamIzVnVkQ2tnUFQ0Z2RHaHBjeTUxY0dSaGRHVW9kR0ZpYkdWT1lXMWxMQ0JwTENCdGIyUmxiRnRqYjNWdWRGMHNJQzR1TG1OMGVFRnlaM01wS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJRzF2WkdWc1hHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J3YTF4dUlDQWdLaUJBY0dGeVlXMGdZWEpuYzF4dUlDQWdLaTljYmlBZ2IzWmxjbkpwWkdVZ2NISmxjR0Z5WlR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJRzF2WkdWc09pQk5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRENWNiaUFnS1RvZ1VISmxjR0Z5WldSTmIyUmxiQ0FtSUh0Y2JpQWdJQ0J6WldkeVpXZGhkR1ZrUHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGo0N1hHNGdJSDBnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ2dmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVjSEpsY0dGeVpTazdYRzRnSUNBZ1kyOXVjM1FnYzNCc2FYUTZJRk5sWjNKbFoyRjBaV1JOYjJSbGJEeE5QaUE5SUUxdlpHVnNMbk5sWjNKbFoyRjBaU2h0YjJSbGJDazdYRzRnSUNBZ1kyOXVjM1FnZEdGaWJHVk9ZVzFsSUQwZ1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0cxdlpHVnNMbU52Ym5OMGNuVmpkRzl5SUdGeklHRnVlU2s3WEc0Z0lDQWdZMjl1YzNRZ2NHc2dQU0JOYjJSbGJDNXdheWh0YjJSbGJDNWpiMjV6ZEhKMVkzUnZjaUJoY3lCaGJua3BPMXh1SUNBZ0lHTnZibk4wSUdsa0lEMGdiVzlrWld4YmNHc2dZWE1nYTJWNWIyWWdUVjA3WEc1Y2JpQWdJQ0JqYjI1emRDQnBjMDFwY25KdmNpQTlJR04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW0xcGNuSnZjbHdpS1NCaGN5QmliMjlzWldGdUlId2dkVzVrWldacGJtVmtPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXRndWRzlTWldOdmNtUWdQU0JtZFc1amRHbHZiaUFvWEc0Z0lDQWdJQ0IwYUdsek9pQkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWElzWEc0Z0lDQWdJQ0J2WW1vNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0lDQnJaWGx6VDNabGNuSnBaR1UvT2lCemRISnBibWRiWFZ4dUlDQWdJQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tHdGxlWE5QZG1WeWNtbGtaU2xjYmlBZ0lDQWdJQ0FnYTJWNWMwOTJaWEp5YVdSbElEMGdXeTR1TG01bGR5QlRaWFFvV3k0dUxtdGxlWE5QZG1WeWNtbGtaU3dnY0dzZ1lYTWdjM1J5YVc1blhTbGRPMXh1SUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1QySnFaV04wTG1WdWRISnBaWE1vYjJKcUtTNXlaV1IxWTJVb1hHNGdJQ0FnSUNBZ0lDaGhZMk4xYlRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpd2dXMnRsZVN3Z2RtRnNYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc0lEMDlQU0JjSW5WdVpHVm1hVzVsWkZ3aUtTQnlaWFIxY200Z1lXTmpkVzA3WEc0Z0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVhOUGRtVnljbWxrWlNBbUppQWhhMlY1YzA5MlpYSnlhV1JsTG1sdVkyeDFaR1Z6S0d0bGVTa3BJSEpsZEhWeWJpQmhZMk4xYlR0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdFlYQndaV1JRY205d0lEMGdUVzlrWld3dVkyOXNkVzF1VG1GdFpTaHRiMlJsYkN3Z2EyVjVJR0Z6SUdGdWVTazdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YVhOU1pYTmxjblpsWkNodFlYQndaV1JRY205d0tTbGNiaUFnSUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLR0JRY205d1pYSjBlU0J1WVcxbElDUjdiV0Z3Y0dWa1VISnZjSDBnYVhNZ2NtVnpaWEoyWldSZ0tUdGNiaUFnSUNBZ0lDQWdJQ0IyWVd3Z1BTQjJZV3dnYVc1emRHRnVZMlZ2WmlCRVlYUmxJRDhnYm1WM0lFUmhkR1VvZG1Gc0tTQTZJSFpoYkR0Y2JpQWdJQ0FnSUNBZ0lDQmhZMk4xYlZ0dFlYQndaV1JRY205d1hTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXTmpkVzA3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lIdDlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdhV1lnS0U5aWFtVmpkQzVyWlhsektISmxjM1ZzZENrdVptbHNkR1Z5S0NocktTQTlQaUJDYjI5c1pXRnVLSEpsYzNWc2RGdHJYU2twTG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBdkx5QkJaR1FnZEdGaWJHVWdhV1JsYm5ScFptbGxjbHh1SUNBZ0lDQWdJQ0J5WlhOMWJIUmJRMjkxWTJoRVFrdGxlWE11VkVGQ1RFVmRJRDBnZEdGaWJHVk9ZVzFsTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnSUNCOUxtSnBibVFvZEdocGN5azdYRzVjYmlBZ0lDQnNiMmN1YzJsc2JIa29YRzRnSUNBZ0lDQmdVSEpsY0dGeWFXNW5JSEpsWTI5eVpDQm1iM0lnSkh0MFlXSnNaVTVoYldWOUlIUmhZbXhsSUhkcGRHZ2djR3NnSkhzb2JXOWtaV3dnWVhNZ1lXNTVLVnR3YTExOVlGeHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6WldkeVpXZGhkR1ZrVjNKcGRHVkxaWGx6SUQwZ1kzUjRMbWRsZEZObFozSmxaMkYwWldSWGNtbDBaWE1vS1R0Y2JpQWdJQ0JqYjI1emRDQnpaV2R5WldkaGRHVmtWM0pwZEdWek9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZTMwN1hHNGdJQ0FnTHk4Z1QyNXNlU0JoY0hCc2VTQnpaV2R5WldkaGRHVmtJSGR5YVhSbGN5QjNhR1Z1SUhSb1pTQmpkWEp5Wlc1MElHMXZaR1ZzSUdGamRIVmhiR3g1SUdoaGN5QmhJSFJ5WVc1emFXVnVkQ0J6Y0d4cGRDNWNiaUFnSUNBdkx5QlVhR1VnYzJGdFpTQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFnWTJGdUlHSmxJSEpsZFhObFpDQmhZM0p2YzNNZ2JtVnpkR1ZrSUc5d1pYSmhkR2x2Ym5NZ0tHWnZjaUJsZUdGdGNHeGxYRzRnSUNBZ0x5OGdjMlZ4ZFdWdVkyVWdkWEJ6WlhKMGN5QmtkWEpwYm1jZ2NHVnljMmx6ZEdWdWRDQjJaWEp6YVc5dUlHZGxibVZ5WVhScGIyNHBMaUJKYmlCMGFHOXpaU0JqWVhObGN5d2dkMlVnYlhWemRDQnViM1JjYmlBZ0lDQXZMeUJoZEhSbGJYQjBJSFJ2SUdGd2NHeDVJSEJoY21WdWRDMXRiMlJsYkNCelpXZHlaV2RoZEdWa0lIZHlhWFJsSUd0bGVYTWdkRzhnZFc1eVpXeGhkR1ZrSUcxdlpHVnNjeTVjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0J6WldkeVpXZGhkR1ZrVjNKcGRHVkxaWGx6SUNZbVhHNGdJQ0FnSUNCemNHeHBkQzUwY21GdWMybGxiblFnSmlaY2JpQWdJQ0FnSUhSNWNHVnZaaUJ6Y0d4cGRDNTBjbUZ1YzJsbGJuUWdQVDA5SUZ3aWIySnFaV04wWENKY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQnBiaUJ6WldkeVpXZGhkR1ZrVjNKcGRHVkxaWGx6S1NCN1hHNGdJQ0FnSUNBZ0lITmxaM0psWjJGMFpXUlhjbWwwWlhOYlkyOXNiR1ZqZEdsdmJsMGdQU0J6WldkeVpXZGhkR1ZrVjNKcGRHVnpXMk52Ykd4bFkzUnBiMjVkSUh4OElIdDlPMXh1SUNBZ0lDQWdJQ0J6WldkeVpXZGhkR1ZrVjNKcGRHVnpXMk52Ykd4bFkzUnBiMjVkVzJsa0lHRnpJR0Z1ZVYwZ1BTQnRZWEJVYjFKbFkyOXlaQ2hjYmlBZ0lDQWdJQ0FnSUNCamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSm1iM0pqWlZObFozSmxaMkYwWlZkeWFYUmxYQ0lwWEc0Z0lDQWdJQ0FnSUNBZ0lDQS9JSE53YkdsMExtMXZaR1ZzWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJQ2h6Y0d4cGRDNTBjbUZ1YzJsbGJuUWdZWE1nWVc1NUtTQjhmQ0I3ZlN4Y2JpQWdJQ0FnSUNBZ0lDQnpaV2R5WldkaGRHVmtWM0pwZEdWTFpYbHpXMk52Ykd4bFkzUnBiMjVkWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1NXNGdiV2x5Y205eUlHMXZaR1VzSUhSb1pTQnlaV052Y21RZ2MyaHZkV3hrSUdOdmJuUmhhVzRnUVV4TUlHMXZaR1ZzSUhCeWIzQmxjblJwWlhNZ0tHWjFiR3dnWTI5d2VTbGNiaUFnSUNCamIyNXpkQ0J5WldOdmNtUWdQU0JwYzAxcGNuSnZjaUEvSUcxaGNGUnZVbVZqYjNKa0tHMXZaR1ZzS1NBNklHMWhjRlJ2VW1WamIzSmtLSE53YkdsMExtMXZaR1ZzS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0J5WldOdmNtUXNYRzRnSUNBZ0lDQnBaRG9nS0cxdlpHVnNJR0Z6SUdGdWVTbGJjR3RkSUdGeklITjBjbWx1Wnl4Y2JpQWdJQ0FnSUhSeVlXNXphV1Z1ZERwY2JpQWdJQ0FnSUNBZ0lXbHpUV2x5Y205eUlDWW1JSE53YkdsMExuUnlZVzV6YVdWdWRDQW1KaUJQWW1wbFkzUXVhMlY1Y3loemNHeHBkQzUwY21GdWMybGxiblFwTG14bGJtZDBhRnh1SUNBZ0lDQWdJQ0FnSUQ4Z2JXRndWRzlTWldOdmNtUW9jM0JzYVhRdWRISmhibk5wWlc1MEtWeHVJQ0FnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnYzJWbmNtVm5ZWFJsWkRvZ2FYTk5hWEp5YjNJZ1B5QjFibVJsWm1sdVpXUWdPaUJ6WldkeVpXZGhkR1ZrVjNKcGRHVnpMRnh1SUNBZ0lIMDdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0J5WlhabGNuUThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCdlltbzZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrT2lCUWNtbHRZWEo1UzJWNVZIbHdaU3hjYmlBZ0lDQjBjbUZ1YzJsbGJuUS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrTEZ4dUlDQWdJQzR1TG1GeVozTTZJRU52Ym5SbGVIUjFZV3hCY21kelBFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkRDVjYmlBZ0tUb2dUU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVDQjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXlaWFpsY25RcE8xeHVJQ0FnSUdOdmJuTjBJRzlpT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzA3WEc0Z0lDQWdZMjl1YzNRZ2NHc2dQU0JOYjJSbGJDNXdheWhqYkdGNmVpazdYRzRnSUNBZ1kyOXVjM1FnY0d0UWNtOXdjeUE5SUUxdlpHVnNMbkJyVUhKdmNITW9ZMnhoZW5vcE8xeHVJQ0FnSUdsbUlDaHdhMUJ5YjNCelB5NTBlWEJsSUQwOVBTQk9kVzFpWlhJZ0ppWWdkSGx3Wlc5bUlHbGtJRDA5UFNCY0luTjBjbWx1WjF3aUtTQjdYRzRnSUNBZ0lDQnBaQ0E5SUU1MWJXSmxjaWhwWkNrN1hHNGdJQ0FnZlZ4dUlDQWdJRzlpVzNCcklHRnpJSE4wY21sdVoxMGdQU0JwWkR0Y2JpQWdJQ0JzYjJjdWMybHNiSGtvWUZKbFluVnBiR1JwYm1jZ2JXOWtaV3dnSkh0amJHRjZlaTV1WVcxbGZTQnBaQ0FrZTJsa2ZXQXBPMXh1WEc0Z0lDQWdablZ1WTNScGIyNGdiV0Z3Vkc5TmIyUmxiQ2h5T2lCU1pXTnZjbVE4WVc1NUxDQmhibmsrS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J0SUQwZ0tGeHVJQ0FnSUNBZ0lDQjBlWEJsYjJZZ1kyeGhlbm9nUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJOYjJSbGJDNWlkV2xzWkNodllpd2dZMnhoZW5vcElEb2dibVYzSUdOc1lYcDZLRzlpS1Z4dUlDQWdJQ0FnS1NCaGN5Qk5PMXh1SUNBZ0lDQWdZMjl1YzNRZ1lYUjBjbWxpZFhSbGN5QTlJRTF2WkdWc0xtZGxkRUYwZEhKcFluVjBaWE1vWTJ4aGVub3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ2EyVjVjeUE5SUdGMGRISnBZblYwWlhNdWJHVnVaM1JvSUQ4Z1lYUjBjbWxpZFhSbGN5QTZJRTlpYW1WamRDNXJaWGx6S0cwcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUd0bGVYTmNiaUFnSUNBZ0lDQWdMbVpwYkhSbGNpZ29heWtnUFQ0Z2F5QWhQVDBnS0hCcklHRnpJSE4wY21sdVp5a3BYRzRnSUNBZ0lDQWdJQzV5WldSMVkyVW9LR0ZqWTNWdE9pQk5MQ0JyWlhrcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNBb1lXTmpkVzBnWVhNZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpbGJhMlY1WFNBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J5VzAxdlpHVnNMbU52YkhWdGJrNWhiV1VvWVdOamRXMHNJR3RsZVNCaGN5QmhibmtwWFR0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXTmpkVzA3WEc0Z0lDQWdJQ0FnSUgwc0lHMHBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0J5WlhOMWJIUWdQU0J0WVhCVWIwMXZaR1ZzS0c5aWFpazdYRzVjYmlBZ0lDQnBaaUFvZEhKaGJuTnBaVzUwSUNZbUlDRjBhR2x6TG5Ob2IzVnNaRkpsWW5WcGJHUlhhWFJvVkhKaGJuTnBaVzUwS0dOMGVDa3BJSHRjYmlBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnWUdacGJIUmxjbWx1WnlCMGNtRnVjMmxsYm5RZ2NISnZjR1Z5ZEdsbGN6b2dKSHRQWW1wbFkzUXVhMlY1Y3loMGNtRnVjMmxsYm5RcExtcHZhVzRvWENJc0lGd2lLWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnY21WemRXeDBJRDBnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9jbVZ6ZFd4MEtTNXlaV1IxWTJVb0tHRmpZeXdnVzJ0bGVTd2dkbDBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdhV1lnS0d0bGVTQTlQVDBnY0dzZ2ZId2dJU2hyWlhrZ2FXNGdkSEpoYm5OcFpXNTBLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHRmpZMXRyWlhrZ1lYTWdhMlY1YjJZZ1RWMGdQU0IyTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaFkyTTdYRzRnSUNBZ0lDQjlMQ0J1WlhjZ1kyeGhlbm9vS1NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSEpsYzNWc2REdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjMmh2ZFd4a1VtVmlkV2xzWkZkcGRHaFVjbUZ1YzJsbGJuUW9ZM1I0T2lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXBPaUJpYjI5c1pXRnVJSHRjYmlBZ0lDQnBaaUFvSVdOMGVDa2djbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJR2xtSUNoamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnlaV0oxYVd4a1YybDBhRlJ5WVc1emFXVnVkRndpS1NrZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUNBZ1kyOXVjM1FnYjNCbGNtRjBhVzl1SUQwZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2liM0JsY21GMGFXOXVYQ0lwSUdGeklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9JVzl3WlhKaGRHbHZiaWtnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJQ0FnWTI5dWMzUWdiM0FnUFNCdmNHVnlZWFJwYjI0dWRHOVRkSEpwYm1jb0tTNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJSEpsZEhWeWJpQWhWSEpoYm5OaFkzUnBiMjVQY0dWeVlYUnBiMjVMWlhsekxtMWhjQ2dvYXlrZ1BUNGdheTUwYjB4dmQyVnlRMkZ6WlNncEtTNXBibU5zZFdSbGN5aHZjQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdkbGRFTnZiblJsZUhSTmMzQW9ZMjl1ZEdWNGREb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1RvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNCamIyNXpkQ0JwWkdWdWRHbDBlU0E5SUdOdmJuUmxlSFF1WjJWMEtGd2lhV1JsYm5ScGRIbGNJaWtnWVhOY2JpQWdJQ0FnSUh3Z2MzUnlhVzVuWEc0Z0lDQWdJQ0I4SUVOc2FXVnVkRWxrWlc1MGFYUjVYRzRnSUNBZ0lDQjhJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQnBaaUFvSVdsa1pXNTBhWFI1S1NCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnYVdSbGJuUnBkSGtnUFQwOUlGd2ljM1J5YVc1blhDSXBJSEpsZEhWeWJpQnBaR1Z1ZEdsMGVUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHbGtaVzUwYVhSNUxtZGxkRTFUVUVsRUtDazdYRzRnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWlc1bWIzSmpaVTFwY25KdmNrRjFkR2h2Y21sNllYUnBiMjQ4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQmpiR0Y2ZWpvZ1EyOXVjM1J5ZFdOMGIzSThUVDRzWEc0Z0lDQWdZM1I0T2lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUmNiaUFnS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2JXbHljbTl5VFdWMFlTQTlJRTF2WkdWc0xtMXBjbkp2Y21Wa1FYUW9ZMnhoZW5vcE8xeHVJQ0FnSUdsbUlDZ2hiV2x5Y205eVRXVjBZU2tnY21WMGRYSnVPMXh1SUNBZ0lHTnZibk4wSUcxemNDQTlJSFJvYVhNdVoyVjBRMjl1ZEdWNGRFMXpjQ2hqZEhncE8xeHVJQ0FnSUdsbUlDZ2hiWE53S1NCeVpYUjFjbTQ3WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnYlhOd0lEMDlQU0J0YVhKeWIzSk5aWFJoTG0xemNFbGtJSHg4WEc0Z0lDQWdJQ0FvYldseWNtOXlUV1YwWVM1amIyNWthWFJwYjI0Z0ppWWdiV2x5Y205eVRXVjBZUzVqYjI1a2FYUnBiMjRvYlhOd0tTbGNiaUFnSUNBcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkJkWFJvYjNKcGVtRjBhVzl1UlhKeWIzSW9YRzRnSUNBZ0lDQWdJR0JQY21kaGJtbDZZWFJwYjI0Z0pIdHRjM0I5SUdseklHNXZkQ0JoZFhSb2IzSnBlbVZrSUhSdklHMXZaR2xtZVNCdGFYSnliM0psWkNCa1lYUmhZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0JqY21WaGRHVlFjbVZtYVhnOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0IwWVdKc1pVNWhiV1U2SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtPaUJRY21sdFlYSjVTMlY1Vkhsd1pTeGNiaUFnSUNCdGIyUmxiRG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBseHVJQ0FwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVZM0psWVhSbFVISmxabWw0S1R0Y2JpQWdJQ0JqYjI1emRDQnlaV052Y21RNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNGdQU0I3ZlR0Y2JpQWdJQ0J5WldOdmNtUmJRMjkxWTJoRVFrdGxlWE11VkVGQ1RFVmRJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLSFJoWW14bFRtRnRaU2s3WEc0Z0lDQWdUMkpxWldOMExtRnpjMmxuYmloeVpXTnZjbVFzSUcxdlpHVnNLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQmJkR0ZpYkdWT1lXMWxMQ0JwWkN3Z2NtVmpiM0prTENBdUxpNWpkSGhCY21kelhTQmhjeUJiWEc0Z0lDQWdJQ0JEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNBZ0lGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQWdJQ0FnVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0FnSUM0dUxtRnVlVnRkTEZ4dUlDQWdJQ0FnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUYwN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQjFjR1JoZEdWUWNtVm1hWGc4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQjBZV0pzWlU1aGJXVTZJRU52Ym5OMGNuVmpkRzl5UEUwK0xGeHVJQ0FnSUdsa09pQlFjbWx0WVhKNVMyVjVWSGx3WlN4Y2JpQWdJQ0J0YjJSbGJEb2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQaXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGx4dUlDQXBPaUJoYm5sYlhTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5Wd1pHRjBaVkJ5WldacGVDazdYRzRnSUNBZ1kyOXVjM1FnY21WamIzSmtPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUQwZ2UzMDdYRzRnSUNBZ2NtVmpiM0prVzBOdmRXTm9SRUpMWlhsekxsUkJRa3hGWFNBOUlFMXZaR1ZzTG5SaFlteGxUbUZ0WlNoMFlXSnNaVTVoYldVcE8xeHVJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9jbVZqYjNKa0xDQnRiMlJsYkNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnVzNSaFlteGxUbUZ0WlN3Z2FXUXNJSEpsWTI5eVpDd2dMaTR1WTNSNFFYSm5jMTBnWVhNZ1cxeHVJQ0FnSUNBZ1EyOXVjM1J5ZFdOMGIzSThUVDRzWEc0Z0lDQWdJQ0JRY21sdFlYSjVTMlY1Vkhsd1pTeGNiaUFnSUNBZ0lGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ0lDQXVMaTVoYm5sYlhTeGNiaUFnSUNBZ0lFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQmRPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUdOeVpXRjBaVUZzYkZCeVpXWnBlRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lIUmhZbXhsVG1GdFpUb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdSek9pQlFjbWx0WVhKNVMyVjVWSGx3WlZ0ZExGeHVJQ0FnSUcxdlpHVnNjem9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUZzdUxpNWhibmtzSUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRGMWNiaUFnS1RvZ0tITjBjbWx1WnlCOElITjBjbWx1WjF0ZElId2diblZ0WW1WeVcxMGdmQ0JTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrVzEwcFcxMGdlMXh1SUNBZ0lHbG1JQ2hwWkhNdWJHVnVaM1JvSUNFOVBTQnRiMlJsYkhNdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pKWkhNZ1lXNWtJRzF2WkdWc2N5QnRkWE4wSUdoaGRtVWdkR2hsSUhOaGJXVWdiR1Z1WjNSb1hDSXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1kzUjRPaUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRZ1BTQmhjbWR6TG5CdmNDZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NtVmpiM0prY3lBOUlHbGtjeTV0WVhBb0tHbGtMQ0JqYjNWdWRDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjbVZqYjNKa09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZTMwN1hHNGdJQ0FnSUNCeVpXTnZjbVJiUTI5MVkyaEVRa3RsZVhNdVZFRkNURVZkSUQwZ1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSaFlteGxUbUZ0WlNrN1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSEpsWTI5eVpDd2diVzlrWld4elcyTnZkVzUwWFNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WamIzSmtPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCYmRHRmliR1ZPWVcxbExDQnBaSE1zSUhKbFkyOXlaSE1zSUdOMGVDQmhjeUJoYm5sZE8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJRzkyWlhKeWFXUmxJSFZ3WkdGMFpVRnNiRkJ5WldacGVEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUhSaFlteGxUbUZ0WlRvZ1EyOXVjM1J5ZFdOMGIzSThUVDRzWEc0Z0lDQWdhV1J6T2lCUWNtbHRZWEo1UzJWNVZIbHdaVnRkTEZ4dUlDQWdJRzF2WkdWc2N6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQbHRkTEZ4dUlDQWdJQzR1TG1GeVozTTZJRnN1TGk1aGJua3NJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEYxY2JpQWdLU0I3WEc0Z0lDQWdhV1lnS0dsa2N5NXNaVzVuZEdnZ0lUMDlJRzF2WkdWc2N5NXNaVzVuZEdncFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjSWtsa2N5QmhibVFnYlc5a1pXeHpJRzExYzNRZ2FHRjJaU0IwYUdVZ2MyRnRaU0JzWlc1bmRHaGNJaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQmpkSGc2SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDQTlJR0Z5WjNNdWNHOXdLQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnlaV052Y21SeklEMGdhV1J6TG0xaGNDZ29hV1FzSUdOdmRXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0J5WldOdmNtUTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRnUFNCN2ZUdGNiaUFnSUNBZ0lISmxZMjl5WkZ0RGIzVmphRVJDUzJWNWN5NVVRVUpNUlYwZ1BTQk5iMlJsYkM1MFlXSnNaVTVoYldVb2RHRmliR1ZPWVcxbEtUdGNiaUFnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvY21WamIzSmtMQ0J0YjJSbGJITmJZMjkxYm5SZEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCeVpXTnZjbVE3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlGdDBZV0pzWlU1aGJXVXNJR2xrY3l3Z2NtVmpiM0prY3l3Z1kzUjRJR0Z6SUdGdWVWMDdYRzRnSUgxY2JseHVJQ0J2ZG1WeWNtbGtaU0J3WVhKelpVVnljbTl5UEVVZ1pYaDBaVzVrY3lCQ1lYTmxSWEp5YjNJK0tGeHVJQ0FnSUdWeWNqb2dSWEp5YjNJZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnY21WaGMyOXVQem9nYzNSeWFXNW5YRzRnSUNrNklFVWdlMXh1SUNBZ0lISmxkSFZ5YmlCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSXVjR0Z5YzJWRmNuSnZjaWh5WldGemIyNGdmSHdnWlhKeUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0J2ZG1WeWNtbGtaU0JzYjJkRGRIZzhYRzRnSUNBZ1FWSkhVeUJsZUhSbGJtUnpJR0Z1ZVZ0ZElEMGdZVzU1VzEwc1hHNGdJQ0FnVFVWVVNFOUVJR1Y0ZEdWdVpITWdUV1YwYUc5a1QzSlBjR1Z5WVhScGIyNGdQU0JOWlhSb2IyUlBjazl3WlhKaGRHbHZiaXhjYmlBZ1BpaGNiaUFnSUNCaGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExDQkJVa2RUUGl4Y2JpQWdJQ0J2Y0dWeVlYUnBiMjQ2SUUxRlZFaFBSRnh1SUNBcE9pQkdZV0p5YVdORGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFFWSkhVeXdnVFVWVVNFOUVJR1Y0ZEdWdVpITWdjM1J5YVc1bklEOGdkSEoxWlNBNklHWmhiSE5sUGp0Y2JpQWdjSEp2ZEdWamRHVmtJRzkyWlhKeWFXUmxJR3h2WjBOMGVEeGNiaUFnSUNCQlVrZFRJR1Y0ZEdWdVpITWdZVzU1VzEwZ1BTQmhibmxiWFN4Y2JpQWdJQ0JOUlZSSVQwUWdaWGgwWlc1a2N5Qk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpQTlJRTFsZEdodlpFOXlUM0JsY21GMGFXOXVMRnh1SUNBK0tGeHVJQ0FnSUdGeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc0lFRlNSMU0rTEZ4dUlDQWdJRzl3WlhKaGRHbHZiam9nVFVWVVNFOUVMRnh1SUNBZ0lHRnNiRzkzUTNKbFlYUmxPaUJtWVd4elpWeHVJQ0FwT2lCR1lXSnlhV05EYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004UVZKSFV5d2dUVVZVU0U5RUlHVjRkR1Z1WkhNZ2MzUnlhVzVuSUQ4Z2RISjFaU0E2SUdaaGJITmxQanRjYmlBZ2NISnZkR1ZqZEdWa0lHOTJaWEp5YVdSbElHeHZaME4wZUR4Y2JpQWdJQ0JCVWtkVElHVjRkR1Z1WkhNZ1lXNTVXMTBnUFNCaGJubGJYU3hjYmlBZ0lDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCTlpYUm9iMlJQY2s5d1pYSmhkR2x2YmlBOUlFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUxGeHVJQ0ErS0Z4dUlDQWdJR0Z5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzSUVGU1IxTStMRnh1SUNBZ0lHOXdaWEpoZEdsdmJqb2dUVVZVU0U5RUxGeHVJQ0FnSUdGc2JHOTNRM0psWVhSbE9pQjBjblZsTEZ4dUlDQWdJRzkyWlhKeWFXUmxjejg2SUZCaGNuUnBZV3c4Um14aFozTlBaanhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEZ4dUlDQWdJRVpoWW5KcFkwTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN6eEJVa2RUTENCTlJWUklUMFFnWlhoMFpXNWtjeUJ6ZEhKcGJtY2dQeUIwY25WbElEb2dabUZzYzJVK1hHNGdJRDQ3WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQnNiMmREZEhnOFhHNGdJQ0FnUVZKSFV5QmxlSFJsYm1SeklHRnVlVnRkSUQwZ1lXNTVXMTBzWEc0Z0lDQWdUVVZVU0U5RUlHVjRkR1Z1WkhNZ1RXVjBhRzlrVDNKUGNHVnlZWFJwYjI0Z1BTQk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpeGNiaUFnUGloY2JpQWdJQ0JoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTENCQlVrZFRQaXhjYmlBZ0lDQnZjR1Z5WVhScGIyNDZJRTFGVkVoUFJDeGNiaUFnSUNCaGJHeHZkME55WldGMFpUb2dZbTl2YkdWaGJpQTlJR1poYkhObExGeHVJQ0FnSUc5MlpYSnlhV1JsY3o4NklGQmhjblJwWVd3OFJteGhaM05QWmp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStQaUI4SUVOMGVGeHVJQ0FwT2x4dUlDQWdJSHdnVUhKdmJXbHpaVHhjYmlBZ0lDQWdJQ0FnUm1GaWNtbGpRMjl1ZEdWNGRIVmhiR2w2WldSQmNtZHpQRUZTUjFNc0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpUNWNiaUFnSUNBZ0lENWNiaUFnSUNCOElFWmhZbkpwWTBOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3p4QlVrZFRMQ0JOUlZSSVQwUWdaWGgwWlc1a2N5QnpkSEpwYm1jZ1B5QjBjblZsSURvZ1ptRnNjMlUrSUh0Y2JpQWdJQ0JqYjI1emRDQmpkSGdnUFNCaGNtZHpXMkZ5WjNNdWJHVnVaM1JvSUMwZ01WMDdYRzRnSUNBZ2JHVjBJRzFsY21kbFpFOTJaWEp5YVdSbGN5QTlJRzkyWlhKeWFXUmxjeUJoYzF4dUlDQWdJQ0FnZkNCUVlYSjBhV0ZzUEVac1lXZHpUMlk4Um1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFBqNWNiaUFnSUNBZ0lId2dRM1I0WEc0Z0lDQWdJQ0I4SUhWdVpHVm1hVzVsWkR0Y2JseHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lHTjBlQ0JwYm5OMFlXNWpaVzltSUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDQW1KbHh1SUNBZ0lDQWdZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpWVd4c2IzZERiMjUwWlhoMFZISmhibk5wWlc1MFRXRndYQ0lwSUNZbVhHNGdJQ0FnSUNCamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnpkSFZpWENJcFhHNGdJQ0FnS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0IwY21GdWMybGxiblJQZG1WeWNtbGtaWE1nUFNCMGFHbHpMbkpsWVdSVWNtRnVjMmxsYm5SUGRtVnljbWxrWlhNb1kzUjRLVHRjYmlBZ0lDQWdJR2xtSUNoMGNtRnVjMmxsYm5SUGRtVnljbWxrWlhNcElIdGNiaUFnSUNBZ0lDQWdiV1Z5WjJWa1QzWmxjbkpwWkdWeklEMGdUMkpxWldOMExtRnpjMmxuYmloY2JpQWdJQ0FnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQ0FnSUNCdmRtVnljbWxrWlhNZ2ZId2dlMzBzWEc0Z0lDQWdJQ0FnSUNBZ2RISmhibk5wWlc1MFQzWmxjbkpwWkdWelhHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLQ0ZoYkd4dmQwTnlaV0YwWlNsY2JpQWdJQ0FnSUhKbGRIVnliaUJ6ZFhCbGNpNXNiMmREZEhnOFFWSkhVeXdnVFVWVVNFOUVQaWhjYmlBZ0lDQWdJQ0FnWVhKbmN5eGNiaUFnSUNBZ0lDQWdiM0JsY21GMGFXOXVJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lDQWdZV3hzYjNkRGNtVmhkR1VnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdJQ0J0WlhKblpXUlBkbVZ5Y21sa1pYTWdZWE1nWVc1NVhHNGdJQ0FnSUNBcElHRnpJR0Z1ZVR0Y2JseHVJQ0FnSUhKbGRIVnliaUJ6ZFhCbGNpNXNiMmREZEhoY2JpQWdJQ0FnSUM1allXeHNLSFJvYVhNc0lHRnlaM01zSUc5d1pYSmhkR2x2YmlCaGN5QmhibmtzSUdGc2JHOTNRM0psWVhSbExDQnRaWEpuWldSUGRtVnljbWxrWlhNZ1lYTWdZVzU1S1Z4dUlDQWdJQ0FnTG5Sb1pXNG9LSEpsY3lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lTaHlaWE11WTNSNElHbHVjM1JoYm1ObGIyWWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1NsY2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1NXNTJZV3hwWkNCamIyNTBaWGgwSUdKcGJtUnBibWRnS1R0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVoYzNOcFoyNG9jbVZ6TENCN1hHNGdJQ0FnSUNBZ0lDQWdMaTR1S0hKbGN5NWpkSGd1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p6ZEhWaVhDSXBYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lIc2djM1IxWWpvZ2NtVnpMbU4wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW5OMGRXSmNJaWtnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUI3ZlNrc1hHNGdJQ0FnSUNBZ0lDQWdMaTR1S0hKbGN5NWpkSGd1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0pwWkdWdWRHbDBlVndpS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdQeUI3SUdsa1pXNTBhWFI1T2lCeVpYTXVZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpYVdSbGJuUnBkSGxjSWlrZ2ZWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCN2ZTa3NYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlNrZ1lYTWdZVzU1TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCeVpXRmtWSEpoYm5OcFpXNTBUM1psY25KcFpHVnpLRnh1SUNBZ0lHTjBlRG9nUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMFhHNGdJQ2s2SUZCaGNuUnBZV3c4Um14aFozTlBaanhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK1BpQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdhV1lnS0NGamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSmhiR3h2ZDBOdmJuUmxlSFJVY21GdWMybGxiblJOWVhCY0lpa3BJSEpsZEhWeWJqdGNiaUFnSUNCamIyNXpkQ0J6ZEhWaUlEMGdZM1I0TG1kbGRFOXlWVzVrWldacGJtVmtLRndpYzNSMVlsd2lLU0JoY3lCRGFHRnBibU52WkdWVGRIVmlJSHdnZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNnaGMzUjFZaWtnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjMmxsYm5STllYQWdQU0J6ZEhWaUxtZGxkRlJ5WVc1emFXVnVkQ2dwTzF4dUlDQWdJR2xtSUNnaGRISmhibk5wWlc1MFRXRndMbWhoY3loR1lXSnlhV05OYjJSbGJFdGxlWE11VDFaRlVsSkpSRVZUS1NrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQnlZWGNnUFNCMGNtRnVjMmxsYm5STllYQXVaMlYwS0VaaFluSnBZMDF2WkdWc1MyVjVjeTVQVmtWU1VrbEVSVk1wTzF4dUlDQWdJR2xtSUNnaGNtRjNLU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lISmxkSFZ5YmlCS1UwOU9MbkJoY25ObEtFSjFabVpsY2k1bWNtOXRLSEpoZHlrdWRHOVRkSEpwYm1jb1hDSjFkR1k0WENJcEtUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklIVndaR0YwWlU5aWMyVnlkbVZ5Y3loY2JpQWdJQ0IwWVdKc1pUb2dRMjl1YzNSeWRXTjBiM0k4WVc1NVBpQjhJSE4wY21sdVp5eGNiaUFnSUNCbGRtVnVkRG9nVDNCbGNtRjBhVzl1UzJWNWN5QjhJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3lCOElITjBjbWx1Wnl4Y2JpQWdJQ0JwWkRvZ1JYWmxiblJKWkhNc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWIySnpaWEoyWlhKSVlXNWtiR1Z5S1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpVDJKelpYSjJaWEpJWVc1a2JHVnlJRzV2ZENCcGJtbDBhV0ZzYVhwbFpDNGdSR2xrSUhsdmRTQnlaV2RwYzNSbGNpQmhibmtnYjJKelpYSjJZV0pzWlhNL1hDSmNiaUFnSUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ3NJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVkWEJrWVhSbFQySnpaWEoyWlhKektUdGNiaUFnSUNCcFppQW9ZM1I0TG1selJuVnNiSGxUWldkeVpXZGhkR1ZrS1NCeVpYUjFjbTQ3WEc0Z0lDQWdhV1lnS0dOMGVDNW5aWFJQY2xWdVpHVm1hVzVsWkNoY0ltNXZSVzFwZEZ3aUtTa2djbVYwZFhKdU8xeHVJQ0FnSUdsbUlDZ2hZM1I0TG5OMGRXSXBJSEpsZEhWeWJqdGNiaUFnSUNCamIyNXpkQ0JwYzBKMWJHc2dQU0JCY25KaGVTNXBjMEZ5Y21GNUtHbGtLVHRjYmlBZ0lDQmpiMjV6ZENCbGJXbDBVMmx1WjJ4bElEMGdJV04wZUM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW01dlJXMXBkRk5wYm1kc1pWd2lLVHRjYmlBZ0lDQmpiMjV6ZENCbGJXbDBRblZzYXlBOUlDRmpkSGd1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p1YjBWdGFYUkNkV3hyWENJcE8xeHVJQ0FnSUdsbUlDZ29hWE5DZFd4cklDWW1JR1Z0YVhSQ2RXeHJLU0I4ZkNBb0lXbHpRblZzYXlBbUppQmxiV2wwVTJsdVoyeGxLU2tnZTF4dUlDQWdJQ0FnTHk4Z1VHRnpjeUIwYUdVZ1RWTlFJRzkzYm1WeUlHWnliMjBnYzNSMVlpQmhibVFnZEdobElISmxjM1ZzZENCd1lYbHNiMkZrSUNocFppQmhibmtwSUdsdUlIUm9aVnh1SUNBZ0lDQWdMeThnY0c5emFYUnBiMjV6SUhSb1pTQm9ZVzVrYkdWeUlHVjRjR1ZqZEhNNklDaDBZV0pzWlN3Z1pYWmxiblFzSUdsa0xDQnZkMjVsY2o4c0lIQmhlV3h2WVdRL0xDQmpkSGdwWEc0Z0lDQWdJQ0JqYjI1emRDQnRjM0JKWkNBOUlHTjBlQzV6ZEhWaUxtZGxkRTF6Y0VsRUlEOGdZM1I0TG5OMGRXSXVaMlYwVFhOd1NVUW9LU0E2SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0FnSUdOdmJuTjBJRzV2YmtOMGVFRnlaM01nUFNCamRIaEJjbWR6TG5Oc2FXTmxLREFzSUMweEtUc2dMeThnWlhabGNubDBhR2x1WnlCaVpXWnZjbVVnWTNSNFhHNGdJQ0FnSUNCamIyNXpkQ0J3WVhsc2IyRmtJRDBnYm05dVEzUjRRWEpuY3k1c1pXNW5kR2dnUGlBd0lEOGdibTl1UTNSNFFYSm5jMXN3WFNBNklIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViMkp6WlhKMlpYSklZVzVrYkdWeUxuVndaR0YwWlU5aWMyVnlkbVZ5Y3loY2JpQWdJQ0FnSUNBZ2RHRmliR1VzWEc0Z0lDQWdJQ0FnSUdWMlpXNTBMRnh1SUNBZ0lDQWdJQ0JwWkN4Y2JpQWdJQ0FnSUNBZ2JYTndTV1FzWEc0Z0lDQWdJQ0FnSUhCaGVXeHZZV1FzWEc0Z0lDQWdJQ0FnSUdOMGVGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ2IzWmxjbkpwWkdVZ2NHRnljMlZGY25KdmNqeEZJR1Y0ZEdWdVpITWdRbUZ6WlVWeWNtOXlQaWhsY25JNklFVnljbTl5SUh3Z2MzUnlhVzVuS1RvZ1JTQjdYRzRnSUNBZ0x5OGdhV1lnS0Z4dUlDQWdJQzh2SUNBZ1RVbFRVMGxPUjE5UVVrbFdRVlJGWDBSQlZFRmZVa1ZIUlZndWRHVnpkQ2hjYmlBZ0lDQXZMeUFnSUNBZ2RIbHdaVzltSUdWeWNpQTlQVDBnWENKemRISnBibWRjSWlBL0lHVnljaUE2SUdWeWNpNXRaWE56WVdkbFhHNGdJQ0FnTHk4Z0lDQXBYRzRnSUNBZ0x5OGdLVnh1SUNBZ0lDOHZJQ0FnY21WMGRYSnVJRzVsZHlCVmJtRjFkR2h2Y21sNlpXUlFjbWwyWVhSbFJHRjBZVUZqWTJWemN5aGxjbklwSUdGeklFVTdYRzRnSUNBZ1kyOXVjM1FnYlhObklEMGdkSGx3Wlc5bUlHVnljaUE5UFQwZ1hDSnpkSEpwYm1kY0lpQS9JR1Z5Y2lBNklHVnljaTV0WlhOellXZGxPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1RtOTBSbTkxYm1SRmNuSnZjaTV1WVcxbEtTa2djbVYwZFhKdUlHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHVnljaWtnWVhNZ1JUdGNiaUFnSUNCcFppQW9iWE5uTG1sdVkyeDFaR1Z6S0VOdmJtWnNhV04wUlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhDWVdSU1pYRjFaWE4wUlhKeWIzSXVibUZ0WlNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhSZFdWeWVVVnljbTl5TG01aGJXVXBLU0J5WlhSMWNtNGdibVYzSUZGMVpYSjVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vVUdGbmFXNW5SWEp5YjNJdWJtRnRaU2twSUhKbGRIVnliaUJ1WlhjZ1VHRm5hVzVuUlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2k1dVlXMWxLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aE5hV2R5WVhScGIyNUZjbkp2Y2k1dVlXMWxLU2tnY21WMGRYSnVJRzVsZHlCTmFXZHlZWFJwYjI1RmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aFBZbk5sY25abGNrVnljbTl5TG01aGJXVXBLU0J5WlhSMWNtNGdibVYzSUU5aWMyVnlkbVZ5UlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1FYVjBhRzl5YVhwaGRHbHZia1Z5Y205eUxtNWhiV1VwS1Z4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCQmRYUm9iM0pwZW1GMGFXOXVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vUm05eVltbGtaR1Z1UlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dSbTl5WW1sa1pHVnVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vUTI5dWJtVmpkR2x2YmtWeWNtOXlMbTVoYldVcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QkRiMjV1WldOMGFXOXVSWEp5YjNJb1pYSnlLU0JoY3lCRk8xeHVJQ0FnSUdsbUlDaHRjMmN1YVc1amJIVmtaWE1vVTJWeWFXRnNhWHBoZEdsdmJrVnljbTl5TG01aGJXVXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lvWlhKeUtTQmhjeUJGTzF4dUlDQWdJR2xtSUNodGMyY3VhVzVqYkhWa1pYTW9YQ0p1YnlCc1pXUm5aWElnWTI5dWRHVjRkRndpS1NsY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RXbHpjMmx1WjBOdmJuUmxlSFJGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRTV2SUdOdmJuUmxlSFFnWm05MWJtUXVJSFJvYVhNZ1kyRnVJR0psSUdOaGRYTmxaQ0JpZVNCa1pXSjFaMmRwYm1jNklDUjdiWE5uZldCY2JpQWdJQ0FnSUNrZ1lYTWdSVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGxjbklwSUdGeklFVTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGTjBZWFJwWXlCdFpYUm9iMlFnWm05eUlHUmxZMjl5WVhScGIyNGdiM1psY25KcFpHVnpYRzRnSUNBcUlFQnpkVzF0WVhKNUlFOTJaWEp5YVdSbGN5OWxlSFJsYm1SeklHUmxZMkZtSUdSbFkyOXlZWFJwYjI0Z2QybDBhQ0JHWVdKeWFXTXRjM0JsWTJsbWFXTWdablZ1WTNScGIyNWhiR2wwZVZ4dUlDQWdLaUJBYzNSaGRHbGpYRzRnSUNBcUlFQnZkbVZ5Y21sa1pWeHVJQ0FnS2lCQWNtVjBkWEp1SUh0MmIybGtmVnh1SUNBZ0tpOWNiaUFnYzNSaGRHbGpJRzkyWlhKeWFXUmxJR1JsWTI5eVlYUnBiMjRvS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdjM1Z3WlhJdVpHVmpiM0poZEdsdmJpZ3BPMXh1SUNBZ0lFUmxZMjl5WVhScGIyNHVabXhoZG05MWNtVmtRWE1vUm1GaWNtbGpSbXhoZG05MWNpbGNiaUFnSUNBZ0lDNW1iM0lvVUdWeWMybHpkR1Z1WTJWTFpYbHpMa05TUlVGVVJVUmZRbGtwWEc0Z0lDQWdJQ0F1WkdWbWFXNWxLSHRjYmlBZ0lDQWdJQ0FnWkdWamIzSmhkRzl5T2lCbWRXNWpkR2x2YmlCamNtVmhkR1ZrUW5rb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z3Y0d4NUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGNtVmhkR1VvWTNKbFlYUmxaRUo1VDI1R1lXSnlhV05EY21WaGRHVlZjR1JoZEdVcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKdmNFMWxkR0ZrWVhSaEtGQmxjbk5wYzNSbGJtTmxTMlY1Y3k1RFVrVkJWRVZFWDBKWkxDQjdmU2xjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdmU0JoY3lCaGJua3BYRzRnSUNBZ0lDQXVZWEJ3Ykhrb0tUdGNibHh1SUNBZ0lFUmxZMjl5WVhScGIyNHVabXhoZG05MWNtVmtRWE1vUm1GaWNtbGpSbXhoZG05MWNpbGNiaUFnSUNBZ0lDNW1iM0lvVUdWeWMybHpkR1Z1WTJWTFpYbHpMbFZRUkVGVVJVUmZRbGtwWEc0Z0lDQWdJQ0F1WkdWbWFXNWxLSHRjYmlBZ0lDQWdJQ0FnWkdWamIzSmhkRzl5T2lCbWRXNWpkR2x2YmlCamNtVmhkR1ZrUW5rb0tTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z3Y0d4NUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjI1RGNtVmhkR1ZWY0dSaGRHVW9ZM0psWVhSbFpFSjVUMjVHWVdKeWFXTkRjbVZoZEdWVmNHUmhkR1VwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjSEp2Y0UxbGRHRmtZWFJoS0ZCbGNuTnBjM1JsYm1ObFMyVjVjeTVWVUVSQlZFVkVYMEpaTENCN2ZTbGNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2ZTQmhjeUJoYm5rcFhHNGdJQ0FnSUNBdVlYQndiSGtvS1R0Y2JseHVJQ0FnSUVSbFkyOXlZWFJwYjI0dVpteGhkbTkxY21Wa1FYTW9SbUZpY21salJteGhkbTkxY2lsY2JpQWdJQ0FnSUM1bWIzSW9VR1Z5YzJsemRHVnVZMlZMWlhsekxrTlBURlZOVGlsY2JpQWdJQ0FnSUM1bGVIUmxibVFvUm1GaWNtbGpVSEp2Y0dWeWRIa29LU2xjYmlBZ0lDQWdJQzVoY0hCc2VTZ3BPMXh1WEc0Z0lDQWdSR1ZqYjNKaGRHbHZiaTVtYkdGMmIzVnlaV1JCY3loR1lXSnlhV05HYkdGMmIzVnlLVnh1SUNBZ0lDQWdMbVp2Y2loV1lXeHBaR0YwYVc5dVMyVjVjeTVFUVZSRktWeHVJQ0FnSUNBZ0xtVjRkR1Z1WkNobWRXNWpkR2x2YmlCbVlXSnlhV05RY205d1pYSjBlU2dwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNoMFlYSm5aWFE2SUdGdWVTd2djSEp2Y0Q4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJRkJ5YjNCbGNuUjVLSEJ5YjNBc0lGd2ljM1J5YVc1bk9tUmhkR1ZjSWlrb2RHRnlaMlYwTENCd2NtOXdLVHRjYmlBZ0lDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ1JHVmpiM0poZEdsdmJpNW1iR0YyYjNWeVpXUkJjeWhHWVdKeWFXTkdiR0YyYjNWeUtWeHVJQ0FnSUNBZ0xtWnZjaWhRWlhKemFYTjBaVzVqWlV0bGVYTXVWRUZDVEVVcFhHNGdJQ0FnSUNBdVpYaDBaVzVrS0daMWJtTjBhVzl1SUhSaFlteGxLRzlpYWpvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR05vWVdsdU9pQmhibmxiWFNBOUlGdGRPMXh1SUNBZ0lDQWdJQ0JzWlhRZ1kzVnljbVZ1ZENBOVhHNGdJQ0FnSUNBZ0lDQWdkSGx3Wlc5bUlHOWlhaUE5UFQwZ1hDSm1kVzVqZEdsdmJsd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lFMWxkR0ZrWVhSaExtTnZibk4wY2lodlltb3BYRzRnSUNBZ0lDQWdJQ0FnSUNBNklFMWxkR0ZrWVhSaExtTnZibk4wY2lodlltb3VZMjl1YzNSeWRXTjBiM0lwTzF4dVhHNGdJQ0FnSUNBZ0lIZG9hV3hsSUNoamRYSnlaVzUwSUNZbUlHTjFjbkpsYm5RZ0lUMDlJRTlpYW1WamRDQW1KaUJqZFhKeVpXNTBMbkJ5YjNSdmRIbHdaU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHTm9ZV2x1TG5CMWMyZ29ZM1Z5Y21WdWRDazdYRzRnSUNBZ0lDQWdJQ0FnWTNWeWNtVnVkQ0E5SUU5aWFtVmpkQzVuWlhSUWNtOTBiM1I1Y0dWUFppaGpkWEp5Wlc1MEtUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1Ykc5bktHTm9ZV2x1TG0xaGNDZ29ZeWtnUFQ0Z1l5NXVZVzFsSUh4OElHTXBLVHRjYmx4dUlDQWdJQ0FnSUNBdkx5QkJjSEJzZVNCbWNtOXRJSFJvWlNCaVlYTmxJR05zWVhOeklHUnZkMjRnZEc4Z2RHaGxJR1JsWTI5eVlYUmxaQ0JqYkdGemMxeHVJQ0FnSUNBZ0lDQjNhR2xzWlNBb1kyaGhhVzR1YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHTnZibk4wY25WamRHOXlJRDBnWTJoaGFXNHVjRzl3S0NrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzI5c1pTNXNiMmNvWUVOaGJHeHBibWNnYjI0Z0pIdGpiMjV6ZEhKMVkzUnZjaTV1WVcxbGZXQXBPMXh1SUNBZ0lDQWdJQ0FnSUVaaFluSnBZMDlpYW1WamRDZ3BLR052Ym5OMGNuVmpkRzl5S1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQkdZV0p5YVdOUFltcGxZM1FvS1Nodlltb3BPMXh1SUNBZ0lDQWdmU2xjYmlBZ0lDQWdJQzVoY0hCc2VTZ3BPMXh1SUNCOVhHNTlYRzVjYmtaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpNWtaV052Y21GMGFXOXVLQ2s3WEc1QlpHRndkR1Z5TG5ObGRFTjFjbkpsYm5Rb1JtRmljbWxqUm14aGRtOTFjaWs3WEc0aVhYMD0iXX0=
1653
+ //# sourceMappingURL=ContractAdapter.js.map
1654
+ //# sourceMappingURL=ContractAdapter.cjs.map