@decaf-ts/for-fabric 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/dist/for-fabric.cjs +3797 -2
  2. package/dist/for-fabric.js +3901 -2
  3. package/lib/cjs/bin/cli.cjs +2 -2
  4. package/lib/cjs/cli-module.cjs +28 -3
  5. package/lib/cjs/cli-utils.cjs +2 -2
  6. package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
  7. package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
  8. package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
  9. package/lib/cjs/client/FabricClientRepository.cjs +2 -2
  10. package/lib/cjs/client/FabricClientStatement.cjs +2 -2
  11. package/lib/cjs/client/collections/generation.cjs +2 -2
  12. package/lib/cjs/client/collections/index.cjs +2 -2
  13. package/lib/cjs/client/constants.cjs +2 -2
  14. package/lib/cjs/client/crypto.cjs +2 -2
  15. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
  16. package/lib/cjs/client/erc20/index.cjs +2 -2
  17. package/lib/cjs/client/fabric-fs.cjs +2 -2
  18. package/lib/cjs/client/fabric-hsm.cjs +2 -2
  19. package/lib/cjs/client/ids/id-extraction.cjs +2 -2
  20. package/lib/cjs/client/ids/index.cjs +2 -2
  21. package/lib/cjs/client/index.cjs +2 -2
  22. package/lib/cjs/client/indexes/generation.cjs +2 -2
  23. package/lib/cjs/client/indexes/index.cjs +2 -2
  24. package/lib/cjs/client/logging.cjs +2 -2
  25. package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
  26. package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
  27. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
  28. package/lib/cjs/client/services/constants.cjs +2 -2
  29. package/lib/cjs/client/services/index.cjs +2 -2
  30. package/lib/cjs/client/types.cjs +2 -2
  31. package/lib/cjs/client/utils.cjs +2 -2
  32. package/lib/cjs/contract/Address.cjs +2 -2
  33. package/lib/cjs/contract/AddressContract.cjs +2 -2
  34. package/lib/cjs/contract/AuditContract.cjs +2 -2
  35. package/lib/cjs/contract/BatchContract.cjs +2 -2
  36. package/lib/cjs/contract/MarketContract.cjs +2 -2
  37. package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
  38. package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
  39. package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
  40. package/lib/cjs/contract/OtherProductContract.cjs +2 -2
  41. package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
  42. package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
  43. package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
  44. package/lib/cjs/contract/Product.cjs +2 -2
  45. package/lib/cjs/contract/ProductContract.cjs +2 -2
  46. package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
  47. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
  48. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
  49. package/lib/cjs/contract/User.cjs +2 -2
  50. package/lib/cjs/contract/UserContract.cjs +2 -2
  51. package/lib/cjs/contract/index.cjs +2 -2
  52. package/lib/cjs/contract/logging-context.cjs +2 -2
  53. package/lib/cjs/contract/models/Audit.cjs +2 -2
  54. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
  55. package/lib/cjs/contract/models/BaseModel.cjs +2 -2
  56. package/lib/cjs/contract/models/Batch.cjs +2 -2
  57. package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
  58. package/lib/cjs/contract/models/History.cjs +2 -2
  59. package/lib/cjs/contract/models/Leaflet.cjs +2 -2
  60. package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
  61. package/lib/cjs/contract/models/Market.cjs +2 -2
  62. package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
  63. package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
  64. package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
  65. package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
  66. package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
  67. package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
  68. package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
  69. package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
  70. package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
  71. package/lib/cjs/contract/models/Product.cjs +2 -2
  72. package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
  73. package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
  74. package/lib/cjs/contract/models/constants.cjs +2 -2
  75. package/lib/cjs/contract/models/decorators-private.cjs +2 -2
  76. package/lib/cjs/contract/models/decorators.cjs +2 -2
  77. package/lib/cjs/contract/models/gtin.cjs +2 -2
  78. package/lib/cjs/contract/models/history-dec.cjs +2 -2
  79. package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
  80. package/lib/cjs/contracts/ContractContext.cjs +2 -2
  81. package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
  82. package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
  83. package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
  84. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
  85. package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
  86. package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
  87. package/lib/cjs/contracts/MigrationContract.cjs +2 -2
  88. package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
  89. package/lib/cjs/contracts/auth/decorators.cjs +2 -2
  90. package/lib/cjs/contracts/auth/index.cjs +2 -2
  91. package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
  92. package/lib/cjs/contracts/crud/index.cjs +2 -2
  93. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
  94. package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
  95. package/lib/cjs/contracts/erc20/index.cjs +2 -2
  96. package/lib/cjs/contracts/erc20/models.cjs +2 -2
  97. package/lib/cjs/contracts/index.cjs +2 -2
  98. package/lib/cjs/contracts/logging.cjs +2 -2
  99. package/lib/cjs/contracts/overrides.cjs +2 -2
  100. package/lib/cjs/contracts/types.cjs +2 -2
  101. package/lib/cjs/contracts/uuid.cjs +2 -2
  102. package/lib/cjs/index.cjs +2 -2
  103. package/lib/cjs/shared/ClientSerializer.cjs +2 -2
  104. package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
  105. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
  106. package/lib/cjs/shared/constants.cjs +2 -2
  107. package/lib/cjs/shared/decorators.cjs +2 -2
  108. package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
  109. package/lib/cjs/shared/erc20/index.cjs +2 -2
  110. package/lib/cjs/shared/errors.cjs +2 -2
  111. package/lib/cjs/shared/events.cjs +2 -2
  112. package/lib/cjs/shared/fabric-types.cjs +2 -2
  113. package/lib/cjs/shared/index.cjs +2 -2
  114. package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
  115. package/lib/cjs/shared/interfaces/index.cjs +2 -2
  116. package/lib/cjs/shared/math.cjs +2 -2
  117. package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
  118. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
  119. package/lib/cjs/shared/model/Identity.cjs +2 -2
  120. package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
  121. package/lib/cjs/shared/model/index.cjs +2 -2
  122. package/lib/cjs/shared/overrides/Model.cjs +2 -2
  123. package/lib/cjs/shared/overrides/index.cjs +2 -2
  124. package/lib/cjs/shared/overrides/overrides.cjs +2 -2
  125. package/lib/cjs/shared/types.cjs +2 -2
  126. package/lib/cjs/version.cjs +3 -3
  127. package/lib/esm/bin/cli.js +1 -1
  128. package/lib/esm/cli-module.js +27 -2
  129. package/lib/esm/cli-utils.js +1 -1
  130. package/lib/esm/client/FabricClientAdapter.js +1 -1
  131. package/lib/esm/client/FabricClientDispatch.js +1 -1
  132. package/lib/esm/client/FabricClientPaginator.js +1 -1
  133. package/lib/esm/client/FabricClientRepository.js +1 -1
  134. package/lib/esm/client/FabricClientStatement.js +1 -1
  135. package/lib/esm/client/collections/generation.js +1 -1
  136. package/lib/esm/client/collections/index.js +1 -1
  137. package/lib/esm/client/constants.js +1 -1
  138. package/lib/esm/client/crypto.js +1 -1
  139. package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
  140. package/lib/esm/client/erc20/index.js +1 -1
  141. package/lib/esm/client/fabric-fs.js +1 -1
  142. package/lib/esm/client/fabric-hsm.js +1 -1
  143. package/lib/esm/client/ids/id-extraction.js +1 -1
  144. package/lib/esm/client/ids/index.js +1 -1
  145. package/lib/esm/client/index.js +1 -1
  146. package/lib/esm/client/indexes/generation.js +1 -1
  147. package/lib/esm/client/indexes/index.js +1 -1
  148. package/lib/esm/client/logging.js +1 -1
  149. package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
  150. package/lib/esm/client/services/FabricIdentityService.js +1 -1
  151. package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
  152. package/lib/esm/client/services/constants.js +1 -1
  153. package/lib/esm/client/services/index.js +1 -1
  154. package/lib/esm/client/types.js +1 -1
  155. package/lib/esm/client/utils.js +1 -1
  156. package/lib/esm/contract/Address.js +1 -1
  157. package/lib/esm/contract/AddressContract.js +1 -1
  158. package/lib/esm/contract/AuditContract.js +1 -1
  159. package/lib/esm/contract/BatchContract.js +1 -1
  160. package/lib/esm/contract/MarketContract.js +1 -1
  161. package/lib/esm/contract/OtherAuditContract.js +1 -1
  162. package/lib/esm/contract/OtherBatchContract.js +1 -1
  163. package/lib/esm/contract/OtherMarketContract.js +1 -1
  164. package/lib/esm/contract/OtherProductContract.js +1 -1
  165. package/lib/esm/contract/OtherProductImageContract.js +1 -1
  166. package/lib/esm/contract/OtherProductSharedContract.js +1 -1
  167. package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
  168. package/lib/esm/contract/Product.js +1 -1
  169. package/lib/esm/contract/ProductContract.js +1 -1
  170. package/lib/esm/contract/ProductStrengthContract.js +1 -1
  171. package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
  172. package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
  173. package/lib/esm/contract/User.js +1 -1
  174. package/lib/esm/contract/UserContract.js +1 -1
  175. package/lib/esm/contract/index.js +1 -1
  176. package/lib/esm/contract/logging-context.js +1 -1
  177. package/lib/esm/contract/models/Audit.js +1 -1
  178. package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
  179. package/lib/esm/contract/models/BaseModel.js +1 -1
  180. package/lib/esm/contract/models/Batch.js +1 -1
  181. package/lib/esm/contract/models/GtinOwner.js +1 -1
  182. package/lib/esm/contract/models/History.js +1 -1
  183. package/lib/esm/contract/models/Leaflet.js +1 -1
  184. package/lib/esm/contract/models/LeafletFile.js +1 -1
  185. package/lib/esm/contract/models/Market.js +1 -1
  186. package/lib/esm/contract/models/OtherAudit.js +1 -1
  187. package/lib/esm/contract/models/OtherBatchShared.js +1 -1
  188. package/lib/esm/contract/models/OtherLeaflet.js +1 -1
  189. package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
  190. package/lib/esm/contract/models/OtherMarket.js +1 -1
  191. package/lib/esm/contract/models/OtherProduct.js +1 -1
  192. package/lib/esm/contract/models/OtherProductImage.js +1 -1
  193. package/lib/esm/contract/models/OtherProductShared.js +1 -1
  194. package/lib/esm/contract/models/OtherProductStrength.js +1 -1
  195. package/lib/esm/contract/models/Product.js +1 -1
  196. package/lib/esm/contract/models/ProductStrength.js +1 -1
  197. package/lib/esm/contract/models/SegregatedDocument.js +1 -1
  198. package/lib/esm/contract/models/constants.js +1 -1
  199. package/lib/esm/contract/models/decorators-private.js +1 -1
  200. package/lib/esm/contract/models/decorators.js +1 -1
  201. package/lib/esm/contract/models/gtin.js +1 -1
  202. package/lib/esm/contract/models/history-dec.js +1 -1
  203. package/lib/esm/contracts/ContractAdapter.js +1 -1
  204. package/lib/esm/contracts/ContractContext.js +1 -1
  205. package/lib/esm/contracts/FabricContractDispatch.js +1 -1
  206. package/lib/esm/contracts/FabricContractPaginator.js +1 -1
  207. package/lib/esm/contracts/FabricContractRepository.js +1 -1
  208. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
  209. package/lib/esm/contracts/FabricContractSequence.js +1 -1
  210. package/lib/esm/contracts/FabricContractStatement.js +1 -1
  211. package/lib/esm/contracts/MigrationContract.js +1 -1
  212. package/lib/esm/contracts/PrivateSequence.js +1 -1
  213. package/lib/esm/contracts/auth/decorators.js +1 -1
  214. package/lib/esm/contracts/auth/index.js +1 -1
  215. package/lib/esm/contracts/crud/crud-contract.js +1 -1
  216. package/lib/esm/contracts/crud/index.js +1 -1
  217. package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
  218. package/lib/esm/contracts/erc20/erc20contract.js +1 -1
  219. package/lib/esm/contracts/erc20/index.js +1 -1
  220. package/lib/esm/contracts/erc20/models.js +1 -1
  221. package/lib/esm/contracts/index.js +1 -1
  222. package/lib/esm/contracts/logging.js +1 -1
  223. package/lib/esm/contracts/overrides.js +1 -1
  224. package/lib/esm/contracts/types.js +1 -1
  225. package/lib/esm/contracts/uuid.js +1 -1
  226. package/lib/esm/index.js +1 -1
  227. package/lib/esm/shared/ClientSerializer.js +1 -1
  228. package/lib/esm/shared/DeterministicSerializer.js +1 -1
  229. package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
  230. package/lib/esm/shared/constants.js +1 -1
  231. package/lib/esm/shared/decorators.js +1 -1
  232. package/lib/esm/shared/erc20/erc20-constants.js +1 -1
  233. package/lib/esm/shared/erc20/index.js +1 -1
  234. package/lib/esm/shared/errors.js +1 -1
  235. package/lib/esm/shared/events.js +1 -1
  236. package/lib/esm/shared/fabric-types.js +1 -1
  237. package/lib/esm/shared/index.js +1 -1
  238. package/lib/esm/shared/interfaces/Checkable.js +1 -1
  239. package/lib/esm/shared/interfaces/index.js +1 -1
  240. package/lib/esm/shared/math.js +1 -1
  241. package/lib/esm/shared/model/FabricBaseModel.js +1 -1
  242. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
  243. package/lib/esm/shared/model/Identity.js +1 -1
  244. package/lib/esm/shared/model/IdentityCredentials.js +1 -1
  245. package/lib/esm/shared/model/index.js +1 -1
  246. package/lib/esm/shared/overrides/Model.js +1 -1
  247. package/lib/esm/shared/overrides/index.js +1 -1
  248. package/lib/esm/shared/overrides/overrides.js +1 -1
  249. package/lib/esm/shared/types.js +1 -1
  250. package/lib/esm/version.js +2 -2
  251. package/lib/types/version.d.cts +1 -1
  252. package/lib/types/version.d.mts +1 -1
  253. package/package.json +7 -7
  254. package/dist/for-fabric.cjs.map +0 -1
  255. package/dist/for-fabric.js.map +0 -1
  256. package/lib/cjs/bin/cli.cjs.map +0 -1
  257. package/lib/cjs/cli-module.cjs.map +0 -1
  258. package/lib/cjs/cli-utils.cjs.map +0 -1
  259. package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
  260. package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
  261. package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
  262. package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
  263. package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
  264. package/lib/cjs/client/collections/generation.cjs.map +0 -1
  265. package/lib/cjs/client/collections/index.cjs.map +0 -1
  266. package/lib/cjs/client/constants.cjs.map +0 -1
  267. package/lib/cjs/client/crypto.cjs.map +0 -1
  268. package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
  269. package/lib/cjs/client/erc20/index.cjs.map +0 -1
  270. package/lib/cjs/client/fabric-fs.cjs.map +0 -1
  271. package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
  272. package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
  273. package/lib/cjs/client/ids/index.cjs.map +0 -1
  274. package/lib/cjs/client/index.cjs.map +0 -1
  275. package/lib/cjs/client/indexes/generation.cjs.map +0 -1
  276. package/lib/cjs/client/indexes/index.cjs.map +0 -1
  277. package/lib/cjs/client/logging.cjs.map +0 -1
  278. package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
  279. package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
  280. package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
  281. package/lib/cjs/client/services/constants.cjs.map +0 -1
  282. package/lib/cjs/client/services/index.cjs.map +0 -1
  283. package/lib/cjs/client/types.cjs.map +0 -1
  284. package/lib/cjs/client/utils.cjs.map +0 -1
  285. package/lib/cjs/contract/Address.cjs.map +0 -1
  286. package/lib/cjs/contract/AddressContract.cjs.map +0 -1
  287. package/lib/cjs/contract/AuditContract.cjs.map +0 -1
  288. package/lib/cjs/contract/BatchContract.cjs.map +0 -1
  289. package/lib/cjs/contract/MarketContract.cjs.map +0 -1
  290. package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
  291. package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
  292. package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
  293. package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
  294. package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
  295. package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
  296. package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
  297. package/lib/cjs/contract/Product.cjs.map +0 -1
  298. package/lib/cjs/contract/ProductContract.cjs.map +0 -1
  299. package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
  300. package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
  301. package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
  302. package/lib/cjs/contract/User.cjs.map +0 -1
  303. package/lib/cjs/contract/UserContract.cjs.map +0 -1
  304. package/lib/cjs/contract/index.cjs.map +0 -1
  305. package/lib/cjs/contract/logging-context.cjs.map +0 -1
  306. package/lib/cjs/contract/models/Audit.cjs.map +0 -1
  307. package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
  308. package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
  309. package/lib/cjs/contract/models/Batch.cjs.map +0 -1
  310. package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
  311. package/lib/cjs/contract/models/History.cjs.map +0 -1
  312. package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
  313. package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
  314. package/lib/cjs/contract/models/Market.cjs.map +0 -1
  315. package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
  316. package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
  317. package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
  318. package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
  319. package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
  320. package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
  321. package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
  322. package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
  323. package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
  324. package/lib/cjs/contract/models/Product.cjs.map +0 -1
  325. package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
  326. package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
  327. package/lib/cjs/contract/models/constants.cjs.map +0 -1
  328. package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
  329. package/lib/cjs/contract/models/decorators.cjs.map +0 -1
  330. package/lib/cjs/contract/models/gtin.cjs.map +0 -1
  331. package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
  332. package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
  333. package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
  334. package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
  335. package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
  336. package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
  337. package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
  338. package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
  339. package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
  340. package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
  341. package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
  342. package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
  343. package/lib/cjs/contracts/auth/index.cjs.map +0 -1
  344. package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
  345. package/lib/cjs/contracts/crud/index.cjs.map +0 -1
  346. package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
  347. package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
  348. package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
  349. package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
  350. package/lib/cjs/contracts/index.cjs.map +0 -1
  351. package/lib/cjs/contracts/logging.cjs.map +0 -1
  352. package/lib/cjs/contracts/overrides.cjs.map +0 -1
  353. package/lib/cjs/contracts/types.cjs.map +0 -1
  354. package/lib/cjs/contracts/uuid.cjs.map +0 -1
  355. package/lib/cjs/index.cjs.map +0 -1
  356. package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
  357. package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
  358. package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
  359. package/lib/cjs/shared/constants.cjs.map +0 -1
  360. package/lib/cjs/shared/decorators.cjs.map +0 -1
  361. package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
  362. package/lib/cjs/shared/erc20/index.cjs.map +0 -1
  363. package/lib/cjs/shared/errors.cjs.map +0 -1
  364. package/lib/cjs/shared/events.cjs.map +0 -1
  365. package/lib/cjs/shared/fabric-types.cjs.map +0 -1
  366. package/lib/cjs/shared/index.cjs.map +0 -1
  367. package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
  368. package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
  369. package/lib/cjs/shared/math.cjs.map +0 -1
  370. package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
  371. package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
  372. package/lib/cjs/shared/model/Identity.cjs.map +0 -1
  373. package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
  374. package/lib/cjs/shared/model/index.cjs.map +0 -1
  375. package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
  376. package/lib/cjs/shared/overrides/index.cjs.map +0 -1
  377. package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
  378. package/lib/cjs/shared/types.cjs.map +0 -1
  379. package/lib/cjs/version.cjs.map +0 -1
  380. package/lib/esm/bin/cli.js.map +0 -1
  381. package/lib/esm/cli-module.js.map +0 -1
  382. package/lib/esm/cli-utils.js.map +0 -1
  383. package/lib/esm/client/FabricClientAdapter.js.map +0 -1
  384. package/lib/esm/client/FabricClientDispatch.js.map +0 -1
  385. package/lib/esm/client/FabricClientPaginator.js.map +0 -1
  386. package/lib/esm/client/FabricClientRepository.js.map +0 -1
  387. package/lib/esm/client/FabricClientStatement.js.map +0 -1
  388. package/lib/esm/client/collections/generation.js.map +0 -1
  389. package/lib/esm/client/collections/index.js.map +0 -1
  390. package/lib/esm/client/constants.js.map +0 -1
  391. package/lib/esm/client/crypto.js.map +0 -1
  392. package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
  393. package/lib/esm/client/erc20/index.js.map +0 -1
  394. package/lib/esm/client/fabric-fs.js.map +0 -1
  395. package/lib/esm/client/fabric-hsm.js.map +0 -1
  396. package/lib/esm/client/ids/id-extraction.js.map +0 -1
  397. package/lib/esm/client/ids/index.js.map +0 -1
  398. package/lib/esm/client/index.js.map +0 -1
  399. package/lib/esm/client/indexes/generation.js.map +0 -1
  400. package/lib/esm/client/indexes/index.js.map +0 -1
  401. package/lib/esm/client/logging.js.map +0 -1
  402. package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
  403. package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
  404. package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
  405. package/lib/esm/client/services/constants.js.map +0 -1
  406. package/lib/esm/client/services/index.js.map +0 -1
  407. package/lib/esm/client/types.js.map +0 -1
  408. package/lib/esm/client/utils.js.map +0 -1
  409. package/lib/esm/contract/Address.js.map +0 -1
  410. package/lib/esm/contract/AddressContract.js.map +0 -1
  411. package/lib/esm/contract/AuditContract.js.map +0 -1
  412. package/lib/esm/contract/BatchContract.js.map +0 -1
  413. package/lib/esm/contract/MarketContract.js.map +0 -1
  414. package/lib/esm/contract/OtherAuditContract.js.map +0 -1
  415. package/lib/esm/contract/OtherBatchContract.js.map +0 -1
  416. package/lib/esm/contract/OtherMarketContract.js.map +0 -1
  417. package/lib/esm/contract/OtherProductContract.js.map +0 -1
  418. package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
  419. package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
  420. package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
  421. package/lib/esm/contract/Product.js.map +0 -1
  422. package/lib/esm/contract/ProductContract.js.map +0 -1
  423. package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
  424. package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
  425. package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
  426. package/lib/esm/contract/User.js.map +0 -1
  427. package/lib/esm/contract/UserContract.js.map +0 -1
  428. package/lib/esm/contract/index.js.map +0 -1
  429. package/lib/esm/contract/logging-context.js.map +0 -1
  430. package/lib/esm/contract/models/Audit.js.map +0 -1
  431. package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
  432. package/lib/esm/contract/models/BaseModel.js.map +0 -1
  433. package/lib/esm/contract/models/Batch.js.map +0 -1
  434. package/lib/esm/contract/models/GtinOwner.js.map +0 -1
  435. package/lib/esm/contract/models/History.js.map +0 -1
  436. package/lib/esm/contract/models/Leaflet.js.map +0 -1
  437. package/lib/esm/contract/models/LeafletFile.js.map +0 -1
  438. package/lib/esm/contract/models/Market.js.map +0 -1
  439. package/lib/esm/contract/models/OtherAudit.js.map +0 -1
  440. package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
  441. package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
  442. package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
  443. package/lib/esm/contract/models/OtherMarket.js.map +0 -1
  444. package/lib/esm/contract/models/OtherProduct.js.map +0 -1
  445. package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
  446. package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
  447. package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
  448. package/lib/esm/contract/models/Product.js.map +0 -1
  449. package/lib/esm/contract/models/ProductStrength.js.map +0 -1
  450. package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
  451. package/lib/esm/contract/models/constants.js.map +0 -1
  452. package/lib/esm/contract/models/decorators-private.js.map +0 -1
  453. package/lib/esm/contract/models/decorators.js.map +0 -1
  454. package/lib/esm/contract/models/gtin.js.map +0 -1
  455. package/lib/esm/contract/models/history-dec.js.map +0 -1
  456. package/lib/esm/contracts/ContractAdapter.js.map +0 -1
  457. package/lib/esm/contracts/ContractContext.js.map +0 -1
  458. package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
  459. package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
  460. package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
  461. package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
  462. package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
  463. package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
  464. package/lib/esm/contracts/MigrationContract.js.map +0 -1
  465. package/lib/esm/contracts/PrivateSequence.js.map +0 -1
  466. package/lib/esm/contracts/auth/decorators.js.map +0 -1
  467. package/lib/esm/contracts/auth/index.js.map +0 -1
  468. package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
  469. package/lib/esm/contracts/crud/index.js.map +0 -1
  470. package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
  471. package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
  472. package/lib/esm/contracts/erc20/index.js.map +0 -1
  473. package/lib/esm/contracts/erc20/models.js.map +0 -1
  474. package/lib/esm/contracts/index.js.map +0 -1
  475. package/lib/esm/contracts/logging.js.map +0 -1
  476. package/lib/esm/contracts/overrides.js.map +0 -1
  477. package/lib/esm/contracts/types.js.map +0 -1
  478. package/lib/esm/contracts/uuid.js.map +0 -1
  479. package/lib/esm/index.js.map +0 -1
  480. package/lib/esm/shared/ClientSerializer.js.map +0 -1
  481. package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
  482. package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
  483. package/lib/esm/shared/constants.js.map +0 -1
  484. package/lib/esm/shared/decorators.js.map +0 -1
  485. package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
  486. package/lib/esm/shared/erc20/index.js.map +0 -1
  487. package/lib/esm/shared/errors.js.map +0 -1
  488. package/lib/esm/shared/events.js.map +0 -1
  489. package/lib/esm/shared/fabric-types.js.map +0 -1
  490. package/lib/esm/shared/index.js.map +0 -1
  491. package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
  492. package/lib/esm/shared/interfaces/index.js.map +0 -1
  493. package/lib/esm/shared/math.js.map +0 -1
  494. package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
  495. package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
  496. package/lib/esm/shared/model/Identity.js.map +0 -1
  497. package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
  498. package/lib/esm/shared/model/index.js.map +0 -1
  499. package/lib/esm/shared/overrides/Model.js.map +0 -1
  500. package/lib/esm/shared/overrides/index.js.map +0 -1
  501. package/lib/esm/shared/overrides/overrides.js.map +0 -1
  502. package/lib/esm/shared/types.js.map +0 -1
  503. package/lib/esm/version.js.map +0 -1
@@ -286,5 +286,5 @@ __decorate([
286
286
  __metadata("design:paramtypes", [fabric_contract_api_1.Context, String]),
287
287
  __metadata("design:returntype", Promise)
288
288
  ], SerializedCrudContract.prototype, "groupOf", null);
289
- //# sourceMappingURL=serialized-crud-contract.js.map
290
- //# sourceMappingURL=serialized-crud-contract.js.map
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jcnVkLWNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9jcnVkL3NlcmlhbGl6ZWQtY3J1ZC1jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsMkJBQXdCO0FBRXJELE9BQU8sRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxTQUFTLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQU8sc0JBRVgsU0FBUSxrQkFBcUI7SUFDN0IsWUFBWSxJQUFZLEVBQUUsS0FBcUI7UUFDN0MsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBR2MsQUFBTixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVEsRUFBRSxLQUFhO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFVLEVBQUUsS0FBSyxDQUFDLENBQU0sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFHYyxBQUFOLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBUSxFQUFFLEdBQVc7UUFDdkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQVUsRUFBRSxHQUFHLENBQUMsQ0FBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUdjLEFBQU4sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFRLEVBQUUsS0FBYTtRQUMzQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMs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Q0FBQyxLQUFLLENBQUM7O3FDQUNRLEdBQUc7O29EQUk3QjtBQUdjO0lBRGQsV0FBVyxDQUFDLEtBQUssQ0FBQzs7cUNBRVosR0FBRzs7d0RBZVQ7QUFHYztJQURkLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUVaLEdBQUc7O2tEQVFUO0FBR2M7SUFEZCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDVyxHQUFHOzt1REFFaEM7QUFvQ2M7SUFEZCxXQUFXLEVBQUU7O3FDQUNXLEdBQUc7O2tEQUUzQjtBQUdjO0lBRGQsV0FBVyxDQUFDLEtBQUssQ0FBQzs7cUNBQ2EsR0FBRzs7eURBR2xDO0FBR2M7SUFEZCxXQUFXLEVBQUU7O3FDQUNvQixHQUFHOzt1REFRcEM7QUFHYztJQURkLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNTLEdBQUc7O3FEQUU5QjtBQUdjO0lBRGQsV0FBVyxDQUFDLEtBQUssQ0FBQzs7cUNBQ08sR0FBRzs7bURBRTVCO0FBR2M7SUFEZCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDTyxHQUFHOzttREFFNUI7QUFHYztJQURkLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNPLEdBQUc7O21EQUU1QjtBQUdjO0lBRGQsV0FBVyxDQUFDLEtBQUssQ0FBQzs7cUNBQ08sR0FBRzs7bURBRTVCO0FBR2M7SUFEZCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDWSxHQUFHOzt3REFFakM7QUFHYztJQURkLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNTLEdBQUc7O3FEQUU5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhYnJpY0NydWRDb250cmFjdCB9IGZyb20gXCIuL2NydWQtY29udHJhY3RcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDdHgsIFRyYW5zYWN0aW9uIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBDb25kaXRpb24sIE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ1JVRCBjb250cmFjdCB2YXJpYW50IHRoYXQgc2VyaWFsaXplcy9kZXNlcmlhbGl6ZXMgcGF5bG9hZHNcbiAqIEBzdW1tYXJ5IEV4cG9zZXMgdGhlIHNhbWUgQ1JVRCBvcGVyYXRpb25zIGFzIEZhYnJpY0NydWRDb250cmFjdCBidXQgdGFrZXMgYW5kIHJldHVybnMgSlNPTiBzdHJpbmdzIHRvIGZhY2lsaXRhdGUgc2ltcGxlIGNsaWVudCBpbnRlcmFjdGlvbnMuXG4gKiBAdGVtcGxhdGUgTSAtIE1vZGVsIHR5cGUgaGFuZGxlZCBieSB0aGlzIGNvbnRyYWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBjb250cmFjdCBuYW1lXG4gKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBjbGF6eiAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIHRvIGluc3RhbnRpYXRlIG1vZGVscyBmcm9tIEpTT05cbiAqIEByZXR1cm4ge3ZvaWR9XG4gKiBAY2xhc3MgU2VyaWFsaXplZENydWRDb250cmFjdFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGNvbnRyYWN0ID0gbmV3IFNlcmlhbGl6ZWRDcnVkQ29udHJhY3Q8TXlNb2RlbD4oJ015TW9kZWxDb250cmFjdCcsIE15TW9kZWwpO1xuICogLy8gQ2xpZW50IHN1Ym1pdHMgSlNPTiBzdHJpbmcgcGF5bG9hZHMgYW5kIHJlY2VpdmVzIEpTT04gc3RyaW5nIHJlc3BvbnNlc1xuICovXG5leHBvcnQgY2xhc3MgU2VyaWFsaXplZENydWRDb250cmFjdDxcbiAgTSBleHRlbmRzIE1vZGVsLFxuPiBleHRlbmRzIEZhYnJpY0NydWRDb250cmFjdDxNPiB7XG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgY2xheno6IENvbnN0cnVjdG9yPE0+KSB7XG4gICAgc3VwZXIobmFtZSwgY2xhenopO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKClcbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlKGN0eDogQ3R4LCBtb2RlbDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKGF3YWl0IHN1cGVyLmNyZWF0ZShjdHggYXMgYW55LCBtb2RlbCkpIGFzIE0pO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyByZWFkKGN0eDogQ3R4LCBrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKChhd2FpdCBzdXBlci5yZWFkKGN0eCBhcyBhbnksIGtleSkpIGFzIE0pO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKClcbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlKGN0eDogQ3R4LCBtb2RlbDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKGF3YWl0IHN1cGVyLnVwZGF0ZShjdHgsIG1vZGVsKSkgYXMgTSk7XG4gIH1cblxuICBAVHJhbnNhY3Rpb24oKVxuICBvdmVycmlkZSBhc3luYyBkZWxldGUoY3R4OiBDdHgsIGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKGF3YWl0IHN1cGVyLmRlbGV0ZShjdHggYXMgYW55LCBrZXkpKSBhcyBNKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbigpXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZUFsbChjdHg6IEN0eCwga2V5czogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBwYXJzZWRLZXlzOiBzdHJpbmdbXSA9IEpTT04ucGFyc2Uoa2V5cyk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgICAgKChhd2FpdCBzdXBlci5kZWxldGVBbGwoY3R4IGFzIGFueSwgcGFyc2VkS2V5cykpIGFzIE1bXSkubWFwKFxuICAgICAgICAobSkgPT4gdGhpcy5zZXJpYWxpemUobSkgYXMgc3RyaW5nXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZEFsbChjdHg6IEN0eCwga2V5czogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBwYXJzZWRLZXlzOiBzdHJpbmdbXSA9IEpTT04ucGFyc2Uoa2V5cyk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgICAgKChhd2FpdCBzdXBlci5yZWFkQWxsKGN0eCBhcyBhbnksIHBhcnNlZEtleXMpKSBhcyBNW10pLm1hcCgobSkgPT5cbiAgICAgICAgdGhpcy5zZXJpYWxpemUobSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKClcbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlQWxsKGN0eDogQ3R4LCBtb2RlbHM6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgbGlzdDogc3RyaW5nW10gPSBKU09OLnBhcnNlKG1vZGVscyk7XG4gICAgY29uc3QgbW9kZWxMaXN0OiBNW10gPSBsaXN0XG4gICAgICAubWFwKChtKSA9PiB0aGlzLmRlc2VyaWFsaXplKG0pKVxuICAgICAgLm1hcCgobSkgPT4gbmV3IHRoaXMuY2xhenoobSkpO1xuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgICAgKChhd2FpdCBzdXBlci51cGRhdGVBbGwoY3R4IGFzIGFueSwgbW9kZWxMaXN0KSkgYXMgTVtdKS5tYXAoXG4gICAgICAgIChtKSA9PiB0aGlzLnNlcmlhbGl6ZShtKSBhcyBzdHJpbmdcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyBzdGF0ZW1lbnQoY3R4OiBDdHgsIG1ldGhvZDogc3RyaW5nLCBhcmdzOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgYXJncyA9IEpTT04ucGFyc2UoYXJncyk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgSW52YWxpZCBhcmdzOiAke2V9YCk7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShhcmdzKSlcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIGFyZ3M6ICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9LiBtdXN0IGJlIGFuIGFycmF5YFxuICAgICAgKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIuc3RhdGVtZW50KGN0eCwgbWV0aG9kLCAuLi5hcmdzKSk7XG4gIH1cblxuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIG92ZXJyaWRlIGFzeW5jIGxpc3RCeShjdHg6IEN0eCwga2V5OiBzdHJpbmcsIG9yZGVyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCBzdXBlci5saXN0QnkoY3R4LCBrZXkgYXMga2V5b2YgTSwgb3JkZXIgYXMgT3JkZXJEaXJlY3Rpb24pXG4gICAgKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgb3ZlcnJpZGUgYXN5bmMgcGFnaW5hdGVCeShcbiAgICBjdHg6IEN0eCxcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvcmRlcjogc3RyaW5nLFxuICAgIHJlZjogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJlZiA9IEpTT04ucGFyc2UocmVmKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGRlc2VyaWFsaXplIHBhZ2luYXRlQnkgcmVmZXJlbmNlOiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgc3VwZXIucGFnaW5hdGVCeShjdHgsIGtleSwgb3JkZXIgYXMgYW55LCByZWYgYXMgYW55KVxuICAgICk7XG4gIH1cblxuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIG92ZXJyaWRlIGFzeW5jIHBhZ2UoXG4gICAgY3R4OiBDdHgsXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBkaXJlY3Rpb246IHN0cmluZyxcbiAgICByZWY6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHR5cGVvZiByZWYgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKHJlZikgOiAocmVmIGFzIGFueSk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3VwZXIucGFnZShjdHgsIHZhbHVlLCBkaXJlY3Rpb24sIHJlZmVyZW5jZSk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc3VsdCk7XG4gIH1cblxuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRPbmVCeShjdHg6IEN0eCwga2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIuZmluZE9uZUJ5KGN0eCwga2V5LCB2YWx1ZSkpO1xuICB9XG5cbiAgLy8gQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyBxdWVyeShcbiAgICBjdHg6IEN0eCxcbiAgICBjb25kaXRpb246IHN0cmluZyxcbiAgICBvcmRlckJ5OiBzdHJpbmcsXG4gICAgb3JkZXI6IHN0cmluZyxcbiAgICBsaW1pdD86IG51bWJlcixcbiAgICBza2lwPzogbnVtYmVyXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IGNvbmQ6IENvbmRpdGlvbjxhbnk+O1xuICAgIHRyeSB7XG4gICAgICBjb25kID0gQ29uZGl0aW9uLmZyb20oSlNPTi5wYXJzZShjb25kaXRpb24pKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBJbnZhbGlkIGNvbmRpdGlvbjogJHtlfWApO1xuICAgIH1cblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShcbiAgICAgIGF3YWl0IHN1cGVyLnF1ZXJ5KGN0eCwgY29uZCwgb3JkZXJCeSwgb3JkZXIgYXMgYW55LCBsaW1pdCwgc2tpcClcbiAgICApO1xuICB9XG4gIC8vXG4gIC8vIC8vIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgLy8gb3ZlcnJpZGUgYXN5bmMgcmF3KFxuICAvLyAgIGNvbnRleHQ6IEN0eCxcbiAgLy8gICByYXdJbnB1dDogc3RyaW5nLFxuICAvLyAgIGRvY3NPbmx5OiBib29sZWFuLFxuICAvLyAgIC4uLmFyZ3M6IHN0cmluZ1tdXG4gIC8vICk6IFByb21pc2U8YW55PiB7XG4gIC8vICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5yYXcpO1xuICAvLyAgIGNvbnN0IHBhcnNlZElucHV0OiBNYW5nb1F1ZXJ5ID0gSlNPTi5wYXJzZShyYXdJbnB1dCk7XG4gIC8vICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLnJhdyhjdHgsIHBhcnNlZElucHV0LCBkb2NzT25seSwgLi4uYXJncykpO1xuICAvLyB9XG5cbiAgQFRyYW5zYWN0aW9uKClcbiAgb3ZlcnJpZGUgYXN5bmMgaW5pdChjdHg6IEN0eCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmluaXQoY3R4KTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgb3ZlcnJpZGUgYXN5bmMgaGVhbHRoY2hlY2soY3R4OiBDdHgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vVE9ETzogVFJJTSBOT1QgV09SS0lORyBDSEVDSyBMQVRFUlxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5oZWFsdGhjaGVjayhjdHggYXMgYW55KSk7XG4gIH1cblxuICBAVHJhbnNhY3Rpb24oKVxuICBvdmVycmlkZSBhc3luYyBjcmVhdGVBbGwoY29udGV4dDogQ3R4LCBtb2RlbHM6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgbGlzdDogc3RyaW5nW10gPSBKU09OLnBhcnNlKG1vZGVscyk7XG4gICAgY29uc3QgbW9kZWxMaXN0OiBNW10gPSBsaXN0XG4gICAgICAubWFwKChtKSA9PiB0aGlzLmRlc2VyaWFsaXplKG0pKVxuICAgICAgLm1hcCgobSkgPT4gbmV3IHRoaXMuY2xhenoobSkpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gKGF3YWl0IHN1cGVyLmNyZWF0ZUFsbChjb250ZXh0LCBtb2RlbExpc3QpKSBhcyBNW107XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5tYXAoKG0pID0+IHRoaXMuc2VyaWFsaXplKG0pIGFzIHN0cmluZykpO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyBjb3VudE9mKGN0eDogQ3R4LCBrZXk/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5jb3VudE9mKGN0eCBhcyBhbnksIGtleSkpO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyBtYXhPZihjdHg6IEN0eCwga2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5tYXhPZihjdHggYXMgYW55LCBrZXkpKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgb3ZlcnJpZGUgYXN5bmMgbWluT2YoY3R4OiBDdHgsIGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIubWluT2YoY3R4IGFzIGFueSwga2V5KSk7XG4gIH1cblxuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIG92ZXJyaWRlIGFzeW5jIGF2Z09mKGN0eDogQ3R4LCBrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLmF2Z09mKGN0eCBhcyBhbnksIGtleSkpO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyBzdW1PZihjdHg6IEN0eCwga2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5zdW1PZihjdHggYXMgYW55LCBrZXkpKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgb3ZlcnJpZGUgYXN5bmMgZGlzdGluY3RPZihjdHg6IEN0eCwga2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5kaXN0aW5jdE9mKGN0eCBhcyBhbnksIGtleSkpO1xuICB9XG5cbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBvdmVycmlkZSBhc3luYyBncm91cE9mKGN0eDogQ3R4LCBrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLmdyb3VwT2YoY3R4IGFzIGFueSwga2V5KSk7XG4gIH1cbn1cbiJdfQ==
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jcnVkLWNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VyaWFsaXplZC1jcnVkLWNvbnRyYWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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QUMzQyxFQUFFLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekQsVUFBVSxDQUFDO0lBQ1AsSUFBQSxpQ0FBVyxFQUFDLEtBQUssQ0FBQztJQUNsQixVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUNuQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyw2QkFBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUM7Q0FDM0MsRUFBRSxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RELGttbEJBQWttbEIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgRmFicmljQ3J1ZENvbnRyYWN0IH0gZnJvbSBcIi4vY3J1ZC1jb250cmFjdC5qc1wiO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDdHgsIFRyYW5zYWN0aW9uIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IENvbmRpdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDUlVEIGNvbnRyYWN0IHZhcmlhbnQgdGhhdCBzZXJpYWxpemVzL2Rlc2VyaWFsaXplcyBwYXlsb2Fkc1xuICogQHN1bW1hcnkgRXhwb3NlcyB0aGUgc2FtZSBDUlVEIG9wZXJhdGlvbnMgYXMgRmFicmljQ3J1ZENvbnRyYWN0IGJ1dCB0YWtlcyBhbmQgcmV0dXJucyBKU09OIHN0cmluZ3MgdG8gZmFjaWxpdGF0ZSBzaW1wbGUgY2xpZW50IGludGVyYWN0aW9ucy5cbiAqIEB0ZW1wbGF0ZSBNIC0gTW9kZWwgdHlwZSBoYW5kbGVkIGJ5IHRoaXMgY29udHJhY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGNvbnRyYWN0IG5hbWVcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IGNsYXp6IC0gVGhlIG1vZGVsIGNvbnN0cnVjdG9yIHVzZWQgdG8gaW5zdGFudGlhdGUgbW9kZWxzIGZyb20gSlNPTlxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0XG4gKiBAZXhhbXBsZVxuICogY29uc3QgY29udHJhY3QgPSBuZXcgU2VyaWFsaXplZENydWRDb250cmFjdDxNeU1vZGVsPignTXlNb2RlbENvbnRyYWN0JywgTXlNb2RlbCk7XG4gKiAvLyBDbGllbnQgc3VibWl0cyBKU09OIHN0cmluZyBwYXlsb2FkcyBhbmQgcmVjZWl2ZXMgSlNPTiBzdHJpbmcgcmVzcG9uc2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0IGV4dGVuZHMgRmFicmljQ3J1ZENvbnRyYWN0IHtcbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBjbGF6eikge1xuICAgICAgICBzdXBlcihuYW1lLCBjbGF6eik7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZShjdHgsIG1vZGVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgoYXdhaXQgc3VwZXIuY3JlYXRlKGN0eCwgbW9kZWwpKSk7XG4gICAgfVxuICAgIGFzeW5jIHJlYWQoY3R4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKChhd2FpdCBzdXBlci5yZWFkKGN0eCwga2V5KSkpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGUoY3R4LCBtb2RlbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKGF3YWl0IHN1cGVyLnVwZGF0ZShjdHgsIG1vZGVsKSkpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGUoY3R4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplKChhd2FpdCBzdXBlci5kZWxldGUoY3R4LCBrZXkpKSk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZUFsbChjdHgsIGtleXMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkS2V5cyA9IEpTT04ucGFyc2Uoa2V5cyk7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSgoYXdhaXQgc3VwZXIuZGVsZXRlQWxsKGN0eCwgcGFyc2VkS2V5cykpLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemUobSkpKTtcbiAgICB9XG4gICAgYXN5bmMgcmVhZEFsbChjdHgsIGtleXMpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkS2V5cyA9IEpTT04ucGFyc2Uoa2V5cyk7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSgoYXdhaXQgc3VwZXIucmVhZEFsbChjdHgsIHBhcnNlZEtleXMpKS5tYXAoKG0pID0+IHRoaXMuc2VyaWFsaXplKG0pKSk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZUFsbChjdHgsIG1vZGVscykge1xuICAgICAgICBjb25zdCBsaXN0ID0gSlNPTi5wYXJzZShtb2RlbHMpO1xuICAgICAgICBjb25zdCBtb2RlbExpc3QgPSBsaXN0XG4gICAgICAgICAgICAubWFwKChtKSA9PiB0aGlzLmRlc2VyaWFsaXplKG0pKVxuICAgICAgICAgICAgLm1hcCgobSkgPT4gbmV3IHRoaXMuY2xhenoobSkpO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoKGF3YWl0IHN1cGVyLnVwZGF0ZUFsbChjdHgsIG1vZGVsTGlzdCkpLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemUobSkpKTtcbiAgICB9XG4gICAgYXN5bmMgc3RhdGVtZW50KGN0eCwgbWV0aG9kLCBhcmdzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhcmdzID0gSlNPTi5wYXJzZShhcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgSW52YWxpZCBhcmdzOiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFyZ3MpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgSW52YWxpZCBhcmdzOiAke0pTT04uc3RyaW5naWZ5KGFyZ3MpfS4gbXVzdCBiZSBhbiBhcnJheWApO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIuc3RhdGVtZW50KGN0eCwgbWV0aG9kLCAuLi5hcmdzKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RCeShjdHgsIGtleSwgb3JkZXIpIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLmxpc3RCeShjdHgsIGtleSwgb3JkZXIpKTtcbiAgICB9XG4gICAgYXN5bmMgcGFnaW5hdGVCeShjdHgsIGtleSwgb3JkZXIsIHJlZikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmVmID0gSlNPTi5wYXJzZShyZWYpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBGYWlsZWQgdG8gZGVzZXJpYWxpemUgcGFnaW5hdGVCeSByZWZlcmVuY2U6ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIucGFnaW5hdGVCeShjdHgsIGtleSwgb3JkZXIsIHJlZikpO1xuICAgIH1cbiAgICBhc3luYyBwYWdlKGN0eCwgdmFsdWUsIGRpcmVjdGlvbiwgcmVmKSB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHR5cGVvZiByZWYgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKHJlZikgOiByZWY7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN1cGVyLnBhZ2UoY3R4LCB2YWx1ZSwgZGlyZWN0aW9uLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbiAgICB9XG4gICAgYXN5bmMgZmluZE9uZUJ5KGN0eCwga2V5LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIuZmluZE9uZUJ5KGN0eCwga2V5LCB2YWx1ZSkpO1xuICAgIH1cbiAgICAvLyBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gICAgYXN5bmMgcXVlcnkoY3R4LCBjb25kaXRpb24sIG9yZGVyQnksIG9yZGVyLCBsaW1pdCwgc2tpcCkge1xuICAgICAgICBsZXQgY29uZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbmQgPSBDb25kaXRpb24uZnJvbShKU09OLnBhcnNlKGNvbmRpdGlvbikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBJbnZhbGlkIGNvbmRpdGlvbjogJHtlfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5xdWVyeShjdHgsIGNvbmQsIG9yZGVyQnksIG9yZGVyLCBsaW1pdCwgc2tpcCkpO1xuICAgIH1cbiAgICAvL1xuICAgIC8vIC8vIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgICAvLyBvdmVycmlkZSBhc3luYyByYXcoXG4gICAgLy8gICBjb250ZXh0OiBDdHgsXG4gICAgLy8gICByYXdJbnB1dDogc3RyaW5nLFxuICAgIC8vICAgZG9jc09ubHk6IGJvb2xlYW4sXG4gICAgLy8gICAuLi5hcmdzOiBzdHJpbmdbXVxuICAgIC8vICk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLnJhdyk7XG4gICAgLy8gICBjb25zdCBwYXJzZWRJbnB1dDogTWFuZ29RdWVyeSA9IEpTT04ucGFyc2UocmF3SW5wdXQpO1xuICAgIC8vICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLnJhdyhjdHgsIHBhcnNlZElucHV0LCBkb2NzT25seSwgLi4uYXJncykpO1xuICAgIC8vIH1cbiAgICBhc3luYyBpbml0KGN0eCkge1xuICAgICAgICBhd2FpdCBzdXBlci5pbml0KGN0eCk7XG4gICAgfVxuICAgIGFzeW5jIGhlYWx0aGNoZWNrKGN0eCkge1xuICAgICAgICAvL1RPRE86IFRSSU0gTk9UIFdPUktJTkcgQ0hFQ0sgTEFURVJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLmhlYWx0aGNoZWNrKGN0eCkpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVBbGwoY29udGV4dCwgbW9kZWxzKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBKU09OLnBhcnNlKG1vZGVscyk7XG4gICAgICAgIGNvbnN0IG1vZGVsTGlzdCA9IGxpc3RcbiAgICAgICAgICAgIC5tYXAoKG0pID0+IHRoaXMuZGVzZXJpYWxpemUobSkpXG4gICAgICAgICAgICAubWFwKChtKSA9PiBuZXcgdGhpcy5jbGF6eihtKSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChhd2FpdCBzdXBlci5jcmVhdGVBbGwoY29udGV4dCwgbW9kZWxMaXN0KSk7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZXN1bHQubWFwKChtKSA9PiB0aGlzLnNlcmlhbGl6ZShtKSkpO1xuICAgIH1cbiAgICBhc3luYyBjb3VudE9mKGN0eCwga2V5KSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5jb3VudE9mKGN0eCwga2V5KSk7XG4gICAgfVxuICAgIGFzeW5jIG1heE9mKGN0eCwga2V5KSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5tYXhPZihjdHgsIGtleSkpO1xuICAgIH1cbiAgICBhc3luYyBtaW5PZihjdHgsIGtleSkge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYXdhaXQgc3VwZXIubWluT2YoY3R4LCBrZXkpKTtcbiAgICB9XG4gICAgYXN5bmMgYXZnT2YoY3R4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLmF2Z09mKGN0eCwga2V5KSk7XG4gICAgfVxuICAgIGFzeW5jIHN1bU9mKGN0eCwga2V5KSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5zdW1PZihjdHgsIGtleSkpO1xuICAgIH1cbiAgICBhc3luYyBkaXN0aW5jdE9mKGN0eCwga2V5KSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhd2FpdCBzdXBlci5kaXN0aW5jdE9mKGN0eCwga2V5KSk7XG4gICAgfVxuICAgIGFzeW5jIGdyb3VwT2YoY3R4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGF3YWl0IHN1cGVyLmdyb3VwT2YoY3R4LCBrZXkpKTtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwiY3JlYXRlXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwicmVhZFwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJ1cGRhdGVcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwiZGVsZXRlXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ3R4LCBTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFNlcmlhbGl6ZWRDcnVkQ29udHJhY3QucHJvdG90eXBlLCBcImRlbGV0ZUFsbFwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ3R4LCBTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFNlcmlhbGl6ZWRDcnVkQ29udHJhY3QucHJvdG90eXBlLCBcInJlYWRBbGxcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwidXBkYXRlQWxsXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZywgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJzdGF0ZW1lbnRcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nLCBTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFNlcmlhbGl6ZWRDcnVkQ29udHJhY3QucHJvdG90eXBlLCBcImxpc3RCeVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ3R4LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJwYWdpbmF0ZUJ5XCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZywgU3RyaW5nLCBTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFNlcmlhbGl6ZWRDcnVkQ29udHJhY3QucHJvdG90eXBlLCBcInBhZ2VcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nLCBTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFNlcmlhbGl6ZWRDcnVkQ29udHJhY3QucHJvdG90eXBlLCBcImZpbmRPbmVCeVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwiaW5pdFwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ3R4XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJoZWFsdGhjaGVja1wiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJjcmVhdGVBbGxcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJjb3VudE9mXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwibWF4T2ZcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJtaW5PZlwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ3R4LCBTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFNlcmlhbGl6ZWRDcnVkQ29udHJhY3QucHJvdG90eXBlLCBcImF2Z09mXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwic3VtT2ZcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0N0eCwgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTZXJpYWxpemVkQ3J1ZENvbnRyYWN0LnByb3RvdHlwZSwgXCJkaXN0aW5jdE9mXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDdHgsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgU2VyaWFsaXplZENydWRDb250cmFjdC5wcm90b3R5cGUsIFwiZ3JvdXBPZlwiLCBudWxsKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMyVnlhV0ZzYVhwbFpDMWpjblZrTFdOdmJuUnlZV04wTG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwyTnZiblJ5WVdOMGN5OWpjblZrTDNObGNtbGhiR2w2WldRdFkzSjFaQzFqYjI1MGNtRmpkQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQlFTeFBRVUZQTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzTWtKQlFYZENPMEZCUlhKRUxFOUJRVThzUlVGQlJTeFBRVUZQTEVsQlFVa3NSMEZCUnl4RlFVRkZMRmRCUVZjc1JVRkJSU3hOUVVGTkxIRkNRVUZ4UWl4RFFVRkRPMEZCUld4RkxFOUJRVThzUlVGQlJTeFRRVUZUTEVWQlFXdENMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZETTBRc1QwRkJUeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGTjBRN096czdPenM3T3pzN08wZEJWMGM3UVVGRFNDeE5RVUZOTEU5QlFVOHNjMEpCUlZnc1UwRkJVU3hyUWtGQmNVSTdTVUZETjBJc1dVRkJXU3hKUVVGWkxFVkJRVVVzUzBGQmNVSTdVVUZETjBNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhEUVVGRE8wbEJSMk1zUVVGQlRpeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVZFc1JVRkJSU3hMUVVGaE8xRkJRek5ETEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRlZMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVTBzUTBGQlF5eERRVUZETzBsQlEzUkZMRU5CUVVNN1NVRkhZeXhCUVVGT0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCVVN4RlFVRkZMRWRCUVZjN1VVRkRka01zVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFWVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJUU3hEUVVGRExFTkJRVU03U1VGRGJFVXNRMEZCUXp0SlFVZGpMRUZCUVU0c1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZSTEVWQlFVVXNTMEZCWVR0UlFVTXpReXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRk5MRU5CUVVNc1EwRkJRenRKUVVNdlJDeERRVUZETzBsQlIyTXNRVUZCVGl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVkVzUlVGQlJTeEhRVUZYTzFGQlEzcERMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGVkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVMHNRMEZCUXl4RFFVRkRPMGxCUTNCRkxFTkJRVU03U1VGSFl5eEJRVUZPTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJVU3hGUVVGRkxFbEJRVms3VVVGRE4wTXNUVUZCVFN4VlFVRlZMRWRCUVdFc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTVReXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlEyeENMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJVeXhEUVVGRExFZEJRVWNzUTBGRE1VUXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRlhMRU5CUTI1RExFTkJRMFlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZIWXl4QlFVRk9MRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlVTeEZRVUZGTEVsQlFWazdVVUZETTBNc1RVRkJUU3hWUVVGVkxFZEJRV0VzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNNVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTJ4Q0xFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVZVc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJReTlFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRMnhDTEVOQlEwWXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkhZeXhCUVVGT0xFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCVVN4RlFVRkZMRTFCUVdNN1VVRkRMME1zVFVGQlRTeEpRVUZKTEVkQlFXRXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU14UXl4TlFVRk5MRk5CUVZNc1IwRkJVU3hKUVVGSk8yRkJRM2hDTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVNdlFpeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSV3BETEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRiRUlzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJWU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZUTEVOQlFVTXNSMEZCUnl4RFFVTjZSQ3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVmNzUTBGRGJrTXNRMEZEUml4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVkakxFRkJRVTRzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRlJMRVZCUVVVc1RVRkJZeXhGUVVGRkxFbEJRVms3VVVGRE4wUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNVUlzUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0pFTEVOQlFVTTdVVUZEUkN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEZEVJc1RVRkJUU3hKUVVGSkxHdENRVUZyUWl4RFFVTXhRaXhwUWtGQmFVSXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRU5CUXpGRUxFTkJRVU03VVVGRFNpeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkZMRU5CUVVNN1NVRkhZeXhCUVVGT0xFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCVVN4RlFVRkZMRWRCUVZjc1JVRkJSU3hMUVVGaE8xRkJRM2hFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRia0lzVFVGQlRTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGakxFVkJRVVVzUzBGQmRVSXNRMEZCUXl4RFFVTnFSU3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVWRqTEVGQlFVNHNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkRka0lzUjBGQlVTeEZRVU5TTEVkQlFWY3NSVUZEV0N4TFFVRmhMRVZCUTJJc1IwRkJWenRSUVVWWUxFbEJRVWtzUTBGQlF6dFpRVU5JTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzaENMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVlVzUlVGQlJTeERRVUZETzFsQlEzQkNMRTFCUVUwc1NVRkJTU3hyUWtGQmEwSXNRMEZETVVJc0swTkJRU3RETEVOQlFVTXNSVUZCUlN4RFFVTnVSQ3hEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRia0lzVFVGQlRTeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUzBGQldTeEZRVUZGTEVkQlFWVXNRMEZCUXl4RFFVTXpSQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVWRqTEVGQlFVNHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkRha0lzUjBGQlVTeEZRVU5TTEV0QlFXRXNSVUZEWWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZYTzFGQlJWZ3NUVUZCVFN4VFFVRlRMRWRCUVVjc1QwRkJUeXhIUVVGSExFdEJRVXNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUlN4SFFVRlhMRU5CUVVNN1VVRkRNMFVzVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeExRVUZMTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRMnhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU5vUXl4RFFVRkRPMGxCUjJNc1FVRkJUaXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFWRXNSVUZCUlN4SFFVRlhMRVZCUVVVc1MwRkJZVHRSUVVNelJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5vUlN4RFFVRkRPMGxCUlVRc2MwSkJRWE5DTzBsQlEySXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkRiRUlzUjBGQlVTeEZRVU5TTEZOQlFXbENMRVZCUTJwQ0xFOUJRV1VzUlVGRFppeExRVUZoTEVWQlEySXNTMEZCWXl4RlFVTmtMRWxCUVdFN1VVRkZZaXhKUVVGSkxFbEJRVzlDTEVOQlFVTTdVVUZEZWtJc1NVRkJTU3hEUVVGRE8xbEJRMGdzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFMUJRVTBzU1VGQlNTeHJRa0ZCYTBJc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVNeFJDeERRVUZETzFGQlJVUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVFpeE5RVUZOTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCV1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGFrVXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkRSQ3hGUVVGRk8wbEJRMFlzZVVKQlFYbENPMGxCUTNwQ0xITkNRVUZ6UWp0SlFVTjBRaXhyUWtGQmEwSTdTVUZEYkVJc2MwSkJRWE5DTzBsQlEzUkNMSFZDUVVGMVFqdEpRVU4yUWl4elFrRkJjMEk3U1VGRGRFSXNiMEpCUVc5Q08wbEJRM0JDTERSRVFVRTBSRHRKUVVNMVJDd3dSRUZCTUVRN1NVRkRNVVFzYVVaQlFXbEdPMGxCUTJwR0xFbEJRVWs3U1VGSFZ5eEJRVUZPTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJVVHRSUVVNeFFpeE5RVUZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFSXNRMEZCUXp0SlFVZGpMRUZCUVU0c1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZSTzFGQlEycERMRzlEUVVGdlF6dFJRVU53UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE4wUXNRMEZCUXp0SlFVZGpMRUZCUVU0c1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZaTEVWQlFVVXNUVUZCWXp0UlFVTnVSQ3hOUVVGTkxFbEJRVWtzUjBGQllTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRekZETEUxQlFVMHNVMEZCVXl4SFFVRlJMRWxCUVVrN1lVRkRlRUlzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUXk5Q0xFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZha01zVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRlJMRU5CUVVNN1VVRkRiRVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoRkxFTkJRVU03U1VGSFl5eEJRVUZPTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJVU3hGUVVGRkxFZEJRVms3VVVGRE0wTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRlZMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU01UkN4RFFVRkRPMGxCUjJNc1FVRkJUaXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFWRXNSVUZCUlN4SFFVRlhPMUZCUTNoRExFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlZTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVVFzUTBGQlF6dEpRVWRqTEVGQlFVNHNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGUkxFVkJRVVVzUjBGQlZ6dFJRVU40UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVZVc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6VkVMRU5CUVVNN1NVRkhZeXhCUVVGT0xFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCVVN4RlFVRkZMRWRCUVZjN1VVRkRlRU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZWTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNMVJDeERRVUZETzBsQlIyTXNRVUZCVGl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVkVzUlVGQlJTeEhRVUZYTzFGQlEzaERMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJWU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETlVRc1EwRkJRenRKUVVkakxFRkJRVTRzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRlJMRVZCUVVVc1IwRkJWenRSUVVNM1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVkQlFWVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnBGTEVOQlFVTTdTVUZIWXl4QlFVRk9MRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlVTeEZRVUZGTEVkQlFWYzdVVUZETVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGVkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTTVSQ3hEUVVGRE8wTkJRMFk3UVVGMlRXZENPMGxCUkdRc1YwRkJWeXhGUVVGRk96dHhRMEZEWVN4SFFVRkhPenR2UkVGRk4wSTdRVUZIWXp0SlFVUmtMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03TzNGRFFVTk5MRWRCUVVjN08ydEVRVVV6UWp0QlFVZGpPMGxCUkdRc1YwRkJWeXhGUVVGRk96dHhRMEZEWVN4SFFVRkhPenR2UkVGRk4wSTdRVUZIWXp0SlFVUmtMRmRCUVZjc1JVRkJSVHM3Y1VOQlEyRXNSMEZCUnpzN2IwUkJSVGRDTzBGQlIyTTdTVUZFWkN4WFFVRlhMRVZCUVVVN08zRkRRVU5uUWl4SFFVRkhPenQxUkVGUGFFTTdRVUZIWXp0SlFVUmtMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03TzNGRFFVTlRMRWRCUVVjN08zRkVRVTg1UWp0QlFVZGpPMGxCUkdRc1YwRkJWeXhGUVVGRk96dHhRMEZEWjBJc1IwRkJSenM3ZFVSQlYyaERPMEZCUjJNN1NVRkVaQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkRWeXhIUVVGSE96dDFSRUZYYUVNN1FVRkhZenRKUVVSa0xGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTTdPM0ZEUVVOUkxFZEJRVWM3TzI5RVFVazNRanRCUVVkak8wbEJSR1FzVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXpzN2NVTkJSVm9zUjBGQlJ6czdkMFJCWlZRN1FVRkhZenRKUVVSa0xGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTTdPM0ZEUVVWYUxFZEJRVWM3TzJ0RVFWRlVPMEZCUjJNN1NVRkVaQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkRWeXhIUVVGSE96dDFSRUZGYUVNN1FVRnZRMk03U1VGRVpDeFhRVUZYTEVWQlFVVTdPM0ZEUVVOWExFZEJRVWM3TzJ0RVFVVXpRanRCUVVkak8wbEJSR1FzVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXpzN2NVTkJRMkVzUjBGQlJ6czdlVVJCUjJ4RE8wRkJSMk03U1VGRVpDeFhRVUZYTEVWQlFVVTdPM0ZEUVVOdlFpeEhRVUZIT3p0MVJFRlJjRU03UVVGSFl6dEpRVVJrTEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNN08zRkRRVU5UTEVkQlFVYzdPM0ZFUVVVNVFqdEJRVWRqTzBsQlJHUXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJRenM3Y1VOQlEwOHNSMEZCUnpzN2JVUkJSVFZDTzBGQlIyTTdTVUZFWkN4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE96dHhRMEZEVHl4SFFVRkhPenR0UkVGRk5VSTdRVUZIWXp0SlFVUmtMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03TzNGRFFVTlBMRWRCUVVjN08yMUVRVVUxUWp0QlFVZGpPMGxCUkdRc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF6czdjVU5CUTA4c1IwRkJSenM3YlVSQlJUVkNPMEZCUjJNN1NVRkVaQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkRXU3hIUVVGSE96dDNSRUZGYWtNN1FVRkhZenRKUVVSa0xGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTTdPM0ZEUVVOVExFZEJRVWM3TzNGRVFVVTVRaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVaaFluSnBZME55ZFdSRGIyNTBjbUZqZENCOUlHWnliMjBnWENJdUwyTnlkV1F0WTI5dWRISmhZM1JjSWp0Y2JtbHRjRzl5ZENCN0lFMXZaR1ZzSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYjNJdGRtRnNhV1JoZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHNnUTI5dWRHVjRkQ0JoY3lCRGRIZ3NJRlJ5WVc1ellXTjBhVzl1SUgwZ1puSnZiU0JjSW1aaFluSnBZeTFqYjI1MGNtRmpkQzFoY0dsY0lqdGNibWx0Y0c5eWRDQjdJRU52Ym5OMGNuVmpkRzl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJEYjI1a2FYUnBiMjRzSUU5eVpHVnlSR2x5WldOMGFXOXVJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdRMUpWUkNCamIyNTBjbUZqZENCMllYSnBZVzUwSUhSb1lYUWdjMlZ5YVdGc2FYcGxjeTlrWlhObGNtbGhiR2w2WlhNZ2NHRjViRzloWkhOY2JpQXFJRUJ6ZFcxdFlYSjVJRVY0Y0c5elpYTWdkR2hsSUhOaGJXVWdRMUpWUkNCdmNHVnlZWFJwYjI1eklHRnpJRVpoWW5KcFkwTnlkV1JEYjI1MGNtRmpkQ0JpZFhRZ2RHRnJaWE1nWVc1a0lISmxkSFZ5Ym5NZ1NsTlBUaUJ6ZEhKcGJtZHpJSFJ2SUdaaFkybHNhWFJoZEdVZ2MybHRjR3hsSUdOc2FXVnVkQ0JwYm5SbGNtRmpkR2x2Ym5NdVhHNGdLaUJBZEdWdGNHeGhkR1VnVFNBdElFMXZaR1ZzSUhSNWNHVWdhR0Z1Wkd4bFpDQmllU0IwYUdseklHTnZiblJ5WVdOMFhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdibUZ0WlNBdElGUm9aU0JqYjI1MGNtRmpkQ0J1WVcxbFhHNGdLaUJBY0dGeVlXMGdlME52Ym5OMGNuVmpkRzl5UEUwK2ZTQmpiR0Y2ZWlBdElGUm9aU0J0YjJSbGJDQmpiMjV6ZEhKMVkzUnZjaUIxYzJWa0lIUnZJR2x1YzNSaGJuUnBZWFJsSUcxdlpHVnNjeUJtY205dElFcFRUMDVjYmlBcUlFQnlaWFIxY200Z2UzWnZhV1I5WEc0Z0tpQkFZMnhoYzNNZ1UyVnlhV0ZzYVhwbFpFTnlkV1JEYjI1MGNtRmpkRnh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJR052Ym5OMElHTnZiblJ5WVdOMElEMGdibVYzSUZObGNtbGhiR2w2WldSRGNuVmtRMjl1ZEhKaFkzUThUWGxOYjJSbGJENG9KMDE1VFc5a1pXeERiMjUwY21GamRDY3NJRTE1VFc5a1pXd3BPMXh1SUNvZ0x5OGdRMnhwWlc1MElITjFZbTFwZEhNZ1NsTlBUaUJ6ZEhKcGJtY2djR0Y1Ykc5aFpITWdZVzVrSUhKbFkyVnBkbVZ6SUVwVFQwNGdjM1J5YVc1bklISmxjM0J2Ym5ObGMxeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdVMlZ5YVdGc2FYcGxaRU55ZFdSRGIyNTBjbUZqZER4Y2JpQWdUU0JsZUhSbGJtUnpJRTF2WkdWc0xGeHVQaUJsZUhSbGJtUnpJRVpoWW5KcFkwTnlkV1JEYjI1MGNtRmpkRHhOUGlCN1hHNGdJR052Ym5OMGNuVmpkRzl5S0c1aGJXVTZJSE4wY21sdVp5d2dZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArS1NCN1hHNGdJQ0FnYzNWd1pYSW9ibUZ0WlN3Z1kyeGhlbm9wTzF4dUlDQjlYRzVjYmlBZ1FGUnlZVzV6WVdOMGFXOXVLQ2xjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWTNKbFlYUmxLR04wZURvZ1EzUjRMQ0J0YjJSbGJEb2djM1J5YVc1bktUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpaWEpwWVd4cGVtVW9LR0YzWVdsMElITjFjR1Z5TG1OeVpXRjBaU2hqZEhnZ1lYTWdZVzU1TENCdGIyUmxiQ2twSUdGeklFMHBPMXh1SUNCOVhHNWNiaUFnUUZSeVlXNXpZV04wYVc5dUtHWmhiSE5sS1Z4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCeVpXRmtLR04wZURvZ1EzUjRMQ0JyWlhrNklITjBjbWx1WnlrNklGQnliMjFwYzJVOGMzUnlhVzVuUGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyVnlhV0ZzYVhwbEtDaGhkMkZwZENCemRYQmxjaTV5WldGa0tHTjBlQ0JoY3lCaGJua3NJR3RsZVNrcElHRnpJRTBwTzF4dUlDQjlYRzVjYmlBZ1FGUnlZVzV6WVdOMGFXOXVLQ2xjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nZFhCa1lYUmxLR04wZURvZ1EzUjRMQ0J0YjJSbGJEb2djM1J5YVc1bktUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpaWEpwWVd4cGVtVW9LR0YzWVdsMElITjFjR1Z5TG5Wd1pHRjBaU2hqZEhnc0lHMXZaR1ZzS1NrZ1lYTWdUU2s3WEc0Z0lIMWNibHh1SUNCQVZISmhibk5oWTNScGIyNG9LVnh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJrWld4bGRHVW9ZM1I0T2lCRGRIZ3NJR3RsZVRvZ2MzUnlhVzVuS1RvZ1VISnZiV2x6WlR4emRISnBibWMrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1elpYSnBZV3hwZW1Vb0tHRjNZV2wwSUhOMWNHVnlMbVJsYkdWMFpTaGpkSGdnWVhNZ1lXNTVMQ0JyWlhrcEtTQmhjeUJOS1R0Y2JpQWdmVnh1WEc0Z0lFQlVjbUZ1YzJGamRHbHZiaWdwWEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdSbGJHVjBaVUZzYkNoamRIZzZJRU4wZUN3Z2EyVjVjem9nYzNSeWFXNW5LVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCd1lYSnpaV1JMWlhsek9pQnpkSEpwYm1kYlhTQTlJRXBUVDA0dWNHRnljMlVvYTJWNWN5azdYRzRnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjM1J5YVc1bmFXWjVLRnh1SUNBZ0lDQWdLQ2hoZDJGcGRDQnpkWEJsY2k1a1pXeGxkR1ZCYkd3b1kzUjRJR0Z6SUdGdWVTd2djR0Z5YzJWa1MyVjVjeWtwSUdGeklFMWJYU2t1YldGd0tGeHVJQ0FnSUNBZ0lDQW9iU2tnUFQ0Z2RHaHBjeTV6WlhKcFlXeHBlbVVvYlNrZ1lYTWdjM1J5YVc1blhHNGdJQ0FnSUNBcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lFQlVjbUZ1YzJGamRHbHZiaWhtWVd4elpTbGNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdjbVZoWkVGc2JDaGpkSGc2SUVOMGVDd2dhMlY1Y3pvZ2MzUnlhVzVuS1RvZ1VISnZiV2x6WlR4emRISnBibWMrSUh0Y2JpQWdJQ0JqYjI1emRDQndZWEp6WldSTFpYbHpPaUJ6ZEhKcGJtZGJYU0E5SUVwVFQwNHVjR0Z5YzJVb2EyVjVjeWs3WEc0Z0lDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0Z4dUlDQWdJQ0FnS0NoaGQyRnBkQ0J6ZFhCbGNpNXlaV0ZrUVd4c0tHTjBlQ0JoY3lCaGJua3NJSEJoY25ObFpFdGxlWE1wS1NCaGN5Qk5XMTBwTG0xaGNDZ29iU2tnUFQ1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhKcFlXeHBlbVVvYlNsY2JpQWdJQ0FnSUNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1FGUnlZVzV6WVdOMGFXOXVLQ2xjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nZFhCa1lYUmxRV3hzS0dOMGVEb2dRM1I0TENCdGIyUmxiSE02SUhOMGNtbHVaeWs2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2JHbHpkRG9nYzNSeWFXNW5XMTBnUFNCS1UwOU9MbkJoY25ObEtHMXZaR1ZzY3lrN1hHNGdJQ0FnWTI5dWMzUWdiVzlrWld4TWFYTjBPaUJOVzEwZ1BTQnNhWE4wWEc0Z0lDQWdJQ0F1YldGd0tDaHRLU0E5UGlCMGFHbHpMbVJsYzJWeWFXRnNhWHBsS0cwcEtWeHVJQ0FnSUNBZ0xtMWhjQ2dvYlNrZ1BUNGdibVYzSUhSb2FYTXVZMnhoZW5vb2JTa3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0Z4dUlDQWdJQ0FnS0NoaGQyRnBkQ0J6ZFhCbGNpNTFjR1JoZEdWQmJHd29ZM1I0SUdGeklHRnVlU3dnYlc5a1pXeE1hWE4wS1NrZ1lYTWdUVnRkS1M1dFlYQW9YRzRnSUNBZ0lDQWdJQ2h0S1NBOVBpQjBhR2x6TG5ObGNtbGhiR2w2WlNodEtTQmhjeUJ6ZEhKcGJtZGNiaUFnSUNBZ0lDbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdRRlJ5WVc1ellXTjBhVzl1S0daaGJITmxLVnh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ6ZEdGMFpXMWxiblFvWTNSNE9pQkRkSGdzSUcxbGRHaHZaRG9nYzNSeWFXNW5MQ0JoY21kek9pQnpkSEpwYm1jcElIdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdZWEpuY3lBOUlFcFRUMDR1Y0dGeWMyVW9ZWEpuY3lrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGTmxjbWxoYkdsNllYUnBiMjVGY25KdmNpaGdTVzUyWVd4cFpDQmhjbWR6T2lBa2UyVjlZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2doUVhKeVlYa3VhWE5CY25KaGVTaGhjbWR6S1NsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCVFpYSnBZV3hwZW1GMGFXOXVSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lHQkpiblpoYkdsa0lHRnlaM002SUNSN1NsTlBUaTV6ZEhKcGJtZHBabmtvWVhKbmN5bDlMaUJ0ZFhOMElHSmxJR0Z1SUdGeWNtRjVZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z1NsTlBUaTV6ZEhKcGJtZHBabmtvWVhkaGFYUWdjM1Z3WlhJdWMzUmhkR1Z0Wlc1MEtHTjBlQ3dnYldWMGFHOWtMQ0F1TGk1aGNtZHpLU2s3WEc0Z0lIMWNibHh1SUNCQVZISmhibk5oWTNScGIyNG9abUZzYzJVcFhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHeHBjM1JDZVNoamRIZzZJRU4wZUN3Z2EyVjVPaUJ6ZEhKcGJtY3NJRzl5WkdWeU9pQnpkSEpwYm1jcElIdGNiaUFnSUNCeVpYUjFjbTRnU2xOUFRpNXpkSEpwYm1kcFpua29YRzRnSUNBZ0lDQmhkMkZwZENCemRYQmxjaTVzYVhOMFFua29ZM1I0TENCclpYa2dZWE1nYTJWNWIyWWdUU3dnYjNKa1pYSWdZWE1nVDNKa1pYSkVhWEpsWTNScGIyNHBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nY0dGbmFXNWhkR1ZDZVNoY2JpQWdJQ0JqZEhnNklFTjBlQ3hjYmlBZ0lDQnJaWGs2SUhOMGNtbHVaeXhjYmlBZ0lDQnZjbVJsY2pvZ2MzUnlhVzVuTEZ4dUlDQWdJSEpsWmpvZ2MzUnlhVzVuWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSEpsWmlBOUlFcFRUMDR1Y0dGeWMyVW9jbVZtS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1UyVnlhV0ZzYVhwaGRHbHZia1Z5Y205eUtGeHVJQ0FnSUNBZ0lDQmdSbUZwYkdWa0lIUnZJR1JsYzJWeWFXRnNhWHBsSUhCaFoybHVZWFJsUW5rZ2NtVm1aWEpsYm1ObE9pQWtlMlY5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0Z4dUlDQWdJQ0FnWVhkaGFYUWdjM1Z3WlhJdWNHRm5hVzVoZEdWQ2VTaGpkSGdzSUd0bGVTd2diM0prWlhJZ1lYTWdZVzU1TENCeVpXWWdZWE1nWVc1NUtWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQkFWSEpoYm5OaFkzUnBiMjRvWm1Gc2MyVXBYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSEJoWjJVb1hHNGdJQ0FnWTNSNE9pQkRkSGdzWEc0Z0lDQWdkbUZzZFdVNklITjBjbWx1Wnl4Y2JpQWdJQ0JrYVhKbFkzUnBiMjQ2SUhOMGNtbHVaeXhjYmlBZ0lDQnlaV1k2SUhOMGNtbHVaMXh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSEpsWm1WeVpXNWpaU0E5SUhSNWNHVnZaaUJ5WldZZ1BUMDlJRndpYzNSeWFXNW5YQ0lnUHlCS1UwOU9MbkJoY25ObEtISmxaaWtnT2lBb2NtVm1JR0Z6SUdGdWVTazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdjM1Z3WlhJdWNHRm5aU2hqZEhnc0lIWmhiSFZsTENCa2FYSmxZM1JwYjI0c0lISmxabVZ5Wlc1alpTazdYRzRnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjM1J5YVc1bmFXWjVLSEpsYzNWc2RDazdYRzRnSUgxY2JseHVJQ0JBVkhKaGJuTmhZM1JwYjI0b1ptRnNjMlVwWEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdacGJtUlBibVZDZVNoamRIZzZJRU4wZUN3Z2EyVjVPaUJ6ZEhKcGJtY3NJSFpoYkhWbE9pQnpkSEpwYm1jcElIdGNiaUFnSUNCeVpYUjFjbTRnU2xOUFRpNXpkSEpwYm1kcFpua29ZWGRoYVhRZ2MzVndaWEl1Wm1sdVpFOXVaVUo1S0dOMGVDd2dhMlY1TENCMllXeDFaU2twTzF4dUlDQjlYRzVjYmlBZ0x5OGdRRlJ5WVc1ellXTjBhVzl1S0daaGJITmxLVnh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ4ZFdWeWVTaGNiaUFnSUNCamRIZzZJRU4wZUN4Y2JpQWdJQ0JqYjI1a2FYUnBiMjQ2SUhOMGNtbHVaeXhjYmlBZ0lDQnZjbVJsY2tKNU9pQnpkSEpwYm1jc1hHNGdJQ0FnYjNKa1pYSTZJSE4wY21sdVp5eGNiaUFnSUNCc2FXMXBkRDg2SUc1MWJXSmxjaXhjYmlBZ0lDQnphMmx3UHpvZ2JuVnRZbVZ5WEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ2JHVjBJR052Ym1RNklFTnZibVJwZEdsdmJqeGhibmsrTzF4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCamIyNWtJRDBnUTI5dVpHbDBhVzl1TG1aeWIyMG9TbE5QVGk1d1lYSnpaU2hqYjI1a2FYUnBiMjRwS1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1UyVnlhV0ZzYVhwaGRHbHZia1Z5Y205eUtHQkpiblpoYkdsa0lHTnZibVJwZEdsdmJqb2dKSHRsZldBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJLVTA5T0xuTjBjbWx1WjJsbWVTaGNiaUFnSUNBZ0lHRjNZV2wwSUhOMWNHVnlMbkYxWlhKNUtHTjBlQ3dnWTI5dVpDd2diM0prWlhKQ2VTd2diM0prWlhJZ1lYTWdZVzU1TENCc2FXMXBkQ3dnYzJ0cGNDbGNiaUFnSUNBcE8xeHVJQ0I5WEc0Z0lDOHZYRzRnSUM4dklDOHZJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ0x5OGdiM1psY25KcFpHVWdZWE41Ym1NZ2NtRjNLRnh1SUNBdkx5QWdJR052Ym5SbGVIUTZJRU4wZUN4Y2JpQWdMeThnSUNCeVlYZEpibkIxZERvZ2MzUnlhVzVuTEZ4dUlDQXZMeUFnSUdSdlkzTlBibXg1T2lCaWIyOXNaV0Z1TEZ4dUlDQXZMeUFnSUM0dUxtRnlaM002SUhOMGNtbHVaMXRkWEc0Z0lDOHZJQ2s2SUZCeWIyMXBjMlU4WVc1NVBpQjdYRzRnSUM4dklDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpiMjUwWlhoMFhTd2dkR2hwY3k1eVlYY3BPMXh1SUNBdkx5QWdJR052Ym5OMElIQmhjbk5sWkVsdWNIVjBPaUJOWVc1bmIxRjFaWEo1SUQwZ1NsTlBUaTV3WVhKelpTaHlZWGRKYm5CMWRDazdYRzRnSUM4dklDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0dGM1lXbDBJSE4xY0dWeUxuSmhkeWhqZEhnc0lIQmhjbk5sWkVsdWNIVjBMQ0JrYjJOelQyNXNlU3dnTGk0dVlYSm5jeWtwTzF4dUlDQXZMeUI5WEc1Y2JpQWdRRlJ5WVc1ellXTjBhVzl1S0NsY2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ2FXNXBkQ2hqZEhnNklFTjBlQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHRjNZV2wwSUhOMWNHVnlMbWx1YVhRb1kzUjRLVHRjYmlBZ2ZWeHVYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ2FHVmhiSFJvWTJobFkyc29ZM1I0T2lCRGRIZ3BPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lDOHZWRTlFVHpvZ1ZGSkpUU0JPVDFRZ1YwOVNTMGxPUnlCRFNFVkRTeUJNUVZSRlVseHVJQ0FnSUhKbGRIVnliaUJLVTA5T0xuTjBjbWx1WjJsbWVTaGhkMkZwZENCemRYQmxjaTVvWldGc2RHaGphR1ZqYXloamRIZ2dZWE1nWVc1NUtTazdYRzRnSUgxY2JseHVJQ0JBVkhKaGJuTmhZM1JwYjI0b0tWeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QmpjbVZoZEdWQmJHd29ZMjl1ZEdWNGREb2dRM1I0TENCdGIyUmxiSE02SUhOMGNtbHVaeWs2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2JHbHpkRG9nYzNSeWFXNW5XMTBnUFNCS1UwOU9MbkJoY25ObEtHMXZaR1ZzY3lrN1hHNGdJQ0FnWTI5dWMzUWdiVzlrWld4TWFYTjBPaUJOVzEwZ1BTQnNhWE4wWEc0Z0lDQWdJQ0F1YldGd0tDaHRLU0E5UGlCMGFHbHpMbVJsYzJWeWFXRnNhWHBsS0cwcEtWeHVJQ0FnSUNBZ0xtMWhjQ2dvYlNrZ1BUNGdibVYzSUhSb2FYTXVZMnhoZW5vb2JTa3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ0tHRjNZV2wwSUhOMWNHVnlMbU55WldGMFpVRnNiQ2hqYjI1MFpYaDBMQ0J0YjJSbGJFeHBjM1FwS1NCaGN5Qk5XMTA3WEc0Z0lDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0hKbGMzVnNkQzV0WVhBb0tHMHBJRDArSUhSb2FYTXVjMlZ5YVdGc2FYcGxLRzBwSUdGeklITjBjbWx1WnlrcE8xeHVJQ0I5WEc1Y2JpQWdRRlJ5WVc1ellXTjBhVzl1S0daaGJITmxLVnh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJqYjNWdWRFOW1LR04wZURvZ1EzUjRMQ0JyWlhrL09pQnpkSEpwYm1jcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJLVTA5T0xuTjBjbWx1WjJsbWVTaGhkMkZwZENCemRYQmxjaTVqYjNWdWRFOW1LR04wZUNCaGN5QmhibmtzSUd0bGVTa3BPMXh1SUNCOVhHNWNiaUFnUUZSeVlXNXpZV04wYVc5dUtHWmhiSE5sS1Z4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCdFlYaFBaaWhqZEhnNklFTjBlQ3dnYTJWNU9pQnpkSEpwYm1jcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJLVTA5T0xuTjBjbWx1WjJsbWVTaGhkMkZwZENCemRYQmxjaTV0WVhoUFppaGpkSGdnWVhNZ1lXNTVMQ0JyWlhrcEtUdGNiaUFnZlZ4dVhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nYldsdVQyWW9ZM1I0T2lCRGRIZ3NJR3RsZVRvZ2MzUnlhVzVuS1RvZ1VISnZiV2x6WlR4emRISnBibWMrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdTbE5QVGk1emRISnBibWRwWm5rb1lYZGhhWFFnYzNWd1pYSXViV2x1VDJZb1kzUjRJR0Z6SUdGdWVTd2dhMlY1S1NrN1hHNGdJSDFjYmx4dUlDQkFWSEpoYm5OaFkzUnBiMjRvWm1Gc2MyVXBYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJR0YyWjA5bUtHTjBlRG9nUTNSNExDQnJaWGs2SUhOMGNtbHVaeWs2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdjbVYwZFhKdUlFcFRUMDR1YzNSeWFXNW5hV1o1S0dGM1lXbDBJSE4xY0dWeUxtRjJaMDltS0dOMGVDQmhjeUJoYm5rc0lHdGxlU2twTzF4dUlDQjlYRzVjYmlBZ1FGUnlZVzV6WVdOMGFXOXVLR1poYkhObEtWeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QnpkVzFQWmloamRIZzZJRU4wZUN3Z2EyVjVPaUJ6ZEhKcGJtY3BPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lISmxkSFZ5YmlCS1UwOU9Mbk4wY21sdVoybG1lU2hoZDJGcGRDQnpkWEJsY2k1emRXMVBaaWhqZEhnZ1lYTWdZVzU1TENCclpYa3BLVHRjYmlBZ2ZWeHVYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ1pHbHpkR2x1WTNSUFppaGpkSGc2SUVOMGVDd2dhMlY1T2lCemRISnBibWNwT2lCUWNtOXRhWE5sUEhOMGNtbHVaejRnZTF4dUlDQWdJSEpsZEhWeWJpQktVMDlPTG5OMGNtbHVaMmxtZVNoaGQyRnBkQ0J6ZFhCbGNpNWthWE4wYVc1amRFOW1LR04wZUNCaGN5QmhibmtzSUd0bGVTa3BPMXh1SUNCOVhHNWNiaUFnUUZSeVlXNXpZV04wYVc5dUtHWmhiSE5sS1Z4dUlDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCbmNtOTFjRTltS0dOMGVEb2dRM1I0TENCclpYazZJSE4wY21sdVp5azZJRkJ5YjIxcGMyVThjM1J5YVc1blBpQjdYRzRnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjM1J5YVc1bmFXWjVLR0YzWVdsMElITjFjR1Z5TG1keWIzVndUMllvWTNSNElHRnpJR0Z1ZVN3Z2EyVjVLU2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
@@ -583,5 +583,5 @@ __decorate([
583
583
  __metadata("design:paramtypes", [fabric_contract_api_1.Context]),
584
584
  __metadata("design:returntype", Promise)
585
585
  ], FabricERC20Contract.prototype, "ClientAccountID", null);
586
- //# sourceMappingURL=erc20contract.js.map
587
- //# sourceMappingURL=erc20contract.js.map
586
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjBjb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmFjdHMvZXJjMjAvZXJjMjBjb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSwrQkFBMEI7QUFDN0MsT0FBTyxFQUNMLGNBQWMsRUFDZCxZQUFZLEVBQ1osbUJBQW1CLEdBQ3BCLGlDQUE0QjtBQUM3QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0NBQTJCO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxvQkFBaUI7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxxQ0FBZ0M7QUFDaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlDQUFvQztBQUV2RSxPQUFPLEVBQ0wsU0FBUyxFQUNULGFBQWEsRUFDYixhQUFhLEVBQ2IsZUFBZSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQ0FBOEI7QUFFM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxnREFBMkM7QUFFakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsa0JBQStCO0lBTy9FLFlBQXNCLElBQVk7UUFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV6QixtQkFBbUIsQ0FBQyxPQUFPO1lBQ3pCLG1CQUFtQixDQUFDLE9BQU8sSUFBSSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFFN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLFFBQVEs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RjtBQXRtQk87SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDTSxPQUFPOztvREFTL0I7QUFTSztJQURMLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNHLE9BQU87O2lEQVM1QjtBQVVLO0lBREwsV0FBVyxDQUFDLEtBQUssQ0FBQzs7cUNBQ0ssT0FBTzs7bURBUzlCO0FBU0s7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDUSxPQUFPOztzREFtQmpDO0FBVUs7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDTSxPQUFPOztvREFRL0I7QUFhSztJQURMLFdBQVcsRUFBRTs7cUNBRUgsT0FBTzs7bURBZ0JqQjtBQVlLO0lBREwsV0FBVyxFQUFFOztxQ0FFSCxPQUFPOzt1REE0Q2pCO0FBd0dLO0lBREwsV0FBVyxFQUFFOztxQ0FFSCxPQUFPOztrREEyQ2pCO0FBV0s7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FFUixPQUFPOztvREFnQmpCO0FBK0JLO0lBREwsV0FBVyxFQUFFOztxQ0FDWSxPQUFPLEVBQVMsVUFBVTs7cURBZW5EO0FBSUs7SUFETCxXQUFXLENBQUMsS0FBSyxDQUFDOztxQ0FDYSxPQUFPOzsyREFRdEM7QUFXSztJQUZMLEtBQUssRUFBRTtJQUNQLFdBQVcsRUFBRTs7cUNBQ00sT0FBTzs7K0NBc0QxQjtBQVdLO0lBRkwsS0FBSyxFQUFFO0lBQ1AsV0FBVyxFQUFFOztxQ0FDTSxPQUFPOzsrQ0FvQzFCO0FBWUs7SUFGTCxLQUFLLEVBQUU7SUFDUCxXQUFXLEVBQUU7O3FDQUVILE9BQU87O21EQXFDakI7QUFTSztJQURMLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNpQixPQUFPOzsrREFlMUM7QUFNSztJQURMLFdBQVcsQ0FBQyxLQUFLLENBQUM7O3FDQUNZLE9BQU87OzBEQVFyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhvcml6YXRpb25FcnJvciwgQ29uZGl0aW9uIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBUcmFuc2FjdGlvbiB9IGZyb20gXCJmYWJyaWMtY29udHJhY3QtYXBpXCI7XG5pbXBvcnQgeyBhZGQsIHN1YiB9IGZyb20gXCIuLi8uLi9zaGFyZWQvbWF0aFwiO1xuaW1wb3J0IHtcbiAgQWxsb3dhbmNlRXJyb3IsXG4gIEJhbGFuY2VFcnJvcixcbiAgTm90SW5pdGlhbGl6ZWRFcnJvcixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lcnJvcnNcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0QWRhcHRlciB9IGZyb20gXCIuLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7IEFsbG93YW5jZSwgRVJDMjBUb2tlbiwgRVJDMjBXYWxsZXQgfSBmcm9tIFwiLi9tb2RlbHNcIjtcbmltcG9ydCB7IE93bmVyIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuLi9Db250cmFjdENvbnRleHRcIjtcbmltcG9ydCB7XG4gIEJhc2VFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEZhYnJpY0NydWRDb250cmFjdCB9IGZyb20gXCIuLi9jcnVkL2NydWQtY29udHJhY3RcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIH0gZnJvbSBcIi4uL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyXCI7XG5pbXBvcnQgeyBFUkMyMEV2ZW50cyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZXJjMjAvZXJjMjAtY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIGNvbnRyYWN0IGJhc2UgZm9yIEh5cGVybGVkZ2VyIEZhYnJpY1xuICogQHN1bW1hcnkgSW1wbGVtZW50cyBFUkMyMC1saWtlIHRva2VuIGxvZ2ljIHVzaW5nIHJlcG9zaXRvcmllcyBhbmQgYWRhcHRlcnMsIHByb3ZpZGluZyBzdGFuZGFyZCB0b2tlbiBvcGVyYXRpb25zIHN1Y2ggYXMgYmFsYW5jZSBxdWVyaWVzLCB0cmFuc2ZlcnMsIGFwcHJvdmFscywgbWludGluZyBhbmQgYnVybmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGNvbnRyYWN0IG5hbWUgdXNlZCB0byBzY29wZSB0b2tlbiBpZGVudGl0eVxuICogQG5vdGUgaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yMFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNFUkMyMENvbnRyYWN0XG4gKiBAZXhhbXBsZVxuICogY2xhc3MgTXlUb2tlbkNvbnRyYWN0IGV4dGVuZHMgRmFicmljRVJDMjBDb250cmFjdCB7XG4gKiAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcignTXlUb2tlbicpOyB9XG4gKiB9XG4gKiAvLyBUaGUgY29udHJhY3QgZXhwb3NlcyBtZXRob2RzIGxpa2UgVHJhbnNmZXIsIEFwcHJvdmUsIE1pbnQsIEJ1cm4sIGV0Yy5cbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IFdhbGxldFJlcG9cbiAqICAgcGFydGljaXBhbnQgVG9rZW5SZXBvXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBDbGllbnQtPj5Db250cmFjdDogVHJhbnNmZXIoY3R4LCB0bywgdmFsdWUpXG4gKiAgIENvbnRyYWN0LT4+V2FsbGV0UmVwbzogcmVhZChmcm9tKVxuICogICBDb250cmFjdC0+PldhbGxldFJlcG86IHJlYWQodG8pXG4gKiAgIENvbnRyYWN0LT4+TGVkZ2VyOiBwdXRTdGF0ZSh1cGRhdGVkIGJhbGFuY2VzKVxuICogICBDb250cmFjdC0tPj5DbGllbnQ6IHN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZhYnJpY0VSQzIwQ29udHJhY3QgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3Q8RVJDMjBXYWxsZXQ+IHtcbiAgcHJpdmF0ZSB3YWxsZXRSZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8RVJDMjBXYWxsZXQ+O1xuXG4gIHByaXZhdGUgdG9rZW5SZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8RVJDMjBUb2tlbj47XG5cbiAgcHJpdmF0ZSBhbGxvd2FuY2VSZXBvc2l0b3J5OiBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnk8QWxsb3dhbmNlPjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobmFtZSwgRVJDMjBXYWxsZXQpO1xuXG4gICAgRmFicmljRVJDMjBDb250cmFjdC5hZGFwdGVyID1cbiAgICAgIEZhYnJpY0VSQzIwQ29udHJhY3QuYWRhcHRlciB8fCBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7XG5cbiAgICB0aGlzLndhbGxldFJlcG9zaXRvcnkgPSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuZm9yTW9kZWwoXG4gICAgICBFUkMyMFdhbGxldCxcbiAgICAgIEZhYnJpY0VSQzIwQ29udHJhY3QuYWRhcHRlci5hbGlhc1xuICAgICk7XG5cbiAgICB0aGlzLnRva2VuUmVwb3NpdG9yeSA9IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeS5mb3JNb2RlbChcbiAgICAgIEVSQzIwVG9rZW4sXG4gICAgICBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXNcbiAgICApO1xuXG4gICAgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5ID0gRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmZvck1vZGVsKFxuICAgICAgQWxsb3dhbmNlLFxuICAgICAgRmFicmljRVJDMjBDb250cmFjdC5hZGFwdGVyLmFsaWFzXG4gICAgKTtcbiAgfVxuXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgVG9rZW5OYW1lKGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHggYXMgYW55KTtcblxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgIGNvbnN0IHRva2VuID0gKGF3YWl0IHNlbGVjdC5leGVjdXRlKGN0eCkpWzBdO1xuXG4gICAgcmV0dXJuIHRva2VuLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzeW1ib2wgb2YgdGhlIHRva2VuLiBFLmcuIOKAnEhJWOKAnS5cbiAgICpcbiAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IFJldHVybnMgdGhlIHN5bWJvbCBvZiB0aGUgdG9rZW5cbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgU3ltYm9sKGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHggYXMgYW55KTtcblxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgIGNvbnN0IHRva2VuID0gKGF3YWl0IHNlbGVjdC5leGVjdXRlKGN0eCkpWzBdO1xuXG4gICAgcmV0dXJuIHRva2VuLnN5bWJvbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkZWNpbWFscyB0aGUgdG9rZW4gdXNlc1xuICAgKiBlLmcuIDgsIG1lYW5zIHRvIGRpdmlkZSB0aGUgdG9rZW4gYW1vdW50IGJ5IDEwMDAwMDAwMCB0byBnZXQgaXRzIHVzZXIgcmVwcmVzZW50YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGVjaW1hbHNcbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgRGVjaW1hbHMoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy50b2tlblJlcG9zaXRvcnkuc2VsZWN0KCk7XG4gICAgY29uc3QgdG9rZW4gPSAoYXdhaXQgc2VsZWN0LmV4ZWN1dGUoY3R4KSlbMF07XG5cbiAgICByZXR1cm4gdG9rZW4uZGVjaW1hbHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0b3RhbCB0b2tlbiBzdXBwbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSB0b3RhbCB0b2tlbiBzdXBwbHlcbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgVG90YWxTdXBwbHkoY29udGV4dDogQ29udGV4dCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy53YWxsZXRSZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgIGNvbnN0IHdhbGxldHMgPSBhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpO1xuXG4gICAgaWYgKHdhbGxldHMubGVuZ3RoID09IDApIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUaGUgdG9rZW4gJHt0aGlzLmdldE5hbWUoKX0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICB9XG5cbiAgICBsZXQgdG90YWwgPSAwO1xuXG4gICAgd2FsbGV0cy5mb3JFYWNoKCh3YWxsZXQpID0+IHtcbiAgICAgIHRvdGFsICs9IHdhbGxldC5iYWxhbmNlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEJhbGFuY2VPZiByZXR1cm5zIHRoZSBiYWxhbmNlIG9mIHRoZSBnaXZlbiBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3duZXIgVGhlIG93bmVyIGZyb20gd2hpY2ggdGhlIGJhbGFuY2Ugd2lsbCBiZSByZXRyaWV2ZWRcbiAgICogQHJldHVybnMge051bWJlcn0gUmV0dXJucyB0aGUgYWNjb3VudCBiYWxhbmNlXG4gICAqL1xuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIGFzeW5jIEJhbGFuY2VPZihjb250ZXh0OiBDb250ZXh0LCBvd25lcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLlRva2VuTmFtZSk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChvd25lciwgY3R4KTtcblxuICAgIHJldHVybiB3YWxsZXQuYmFsYW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUcmFuc2ZlciB0cmFuc2ZlcnMgdG9rZW5zIGZyb20gY2xpZW50IGFjY291bnQgdG8gcmVjaXBpZW50IGFjY291bnQuXG4gICAqIEBkZXNjcmlwdGlvbiByZWNpcGllbnQgYWNjb3VudCBtdXN0IGJlIGEgdmFsaWQgY2xpZW50SUQgYXMgcmV0dXJuZWQgYnkgdGhlIENsaWVudEFjY291bnRJRCgpIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRvIFRoZSByZWNpcGllbnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSBhbW91bnQgb2YgdG9rZW4gdG8gYmUgdHJhbnNmZXJyZWRcbiAgICpcbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICovXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIFRyYW5zZmVyKFxuICAgIGNvbnRleHQ6IENvbnRleHQsXG4gICAgdG86IHN0cmluZyxcbiAgICB2YWx1ZTogbnVtYmVyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5UcmFuc2Zlcik7XG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3QgZnJvbSA9IGN0eC5pZGVudGl0eS5nZXRJRCgpO1xuXG4gICAgY29uc3QgdHJhbnNmZXJSZXNwID0gYXdhaXQgdGhpcy5fdHJhbnNmZXIoZnJvbSwgdG8sIHZhbHVlLCBjdHgpO1xuICAgIGlmICghdHJhbnNmZXJSZXNwKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIkZhaWxlZCB0byB0cmFuc2ZlclwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2ZlciBgdmFsdWVgIGFtb3VudCBvZiB0b2tlbnMgZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAgICpcbiAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBmcm9tIFRoZSBzZW5kZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHRvIFRoZSByZWNpcGllbnRcbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSBhbW91bnQgb2YgdG9rZW4gdG8gYmUgdHJhbnNmZXJyZWRcbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICovXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIFRyYW5zZmVyRnJvbShcbiAgICBjb250ZXh0OiBDb250ZXh0LFxuICAgIGZyb206IHN0cmluZyxcbiAgICB0bzogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkJ1cm5Gcm9tKTtcbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICAvLyBSZXRyaWV2ZSB0aGUgYWxsb3dhbmNlIG9mIHRoZSBzcGVuZGVyXG5cbiAgICBjb25zdCBzcGVuZGVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG5cbiAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2UoZnJvbSwgc3BlbmRlciwgY3R4KTtcbiAgICBpZiAoIWFsbG93YW5jZSB8fCBhbGxvd2FuY2UudmFsdWUgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQWxsb3dhbmNlRXJyb3IoXG4gICAgICAgIGBzcGVuZGVyICR7c3BlbmRlcn0gaGFzIG5vIGFsbG93YW5jZSBmcm9tICR7ZnJvbX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRBbGxvd2FuY2UgPSBhbGxvd2FuY2UudmFsdWU7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgdHJhbnNmZXJyZWQgdmFsdWUgaXMgbGVzcyB0aGFuIHRoZSBhbGxvd2FuY2VcbiAgICBpZiAoY3VycmVudEFsbG93YW5jZSA8IHZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKFxuICAgICAgICBcIlRoZSBzcGVuZGVyIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFsbG93YW5jZSB0byBzcGVuZC5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBEZWNyZWFzZSB0aGUgYWxsb3dhbmNlXG4gICAgY29uc3QgdXBkYXRlZEFsbG93YW5jZSA9IHN1YihjdXJyZW50QWxsb3dhbmNlLCB2YWx1ZSk7XG4gICAgY29uc3QgbmV3QWxsb3dhbmNlID0gT2JqZWN0LmFzc2lnbih7fSwgYWxsb3dhbmNlLCB7XG4gICAgICB2YWx1ZTogdXBkYXRlZEFsbG93YW5jZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuYWxsb3dhbmNlUmVwb3NpdG9yeS51cGRhdGUobmV3QWxsb3dhbmNlLCBjdHgpO1xuXG4gICAgLy9SZWFsaXplIHRoZSB0cmFuc2ZlclxuICAgIGNvbnN0IHRyYW5zZmVyUmVzcCA9IGF3YWl0IHRoaXMuX3RyYW5zZmVyKGZyb20sIHRvLCB2YWx1ZSwgY3R4KTtcbiAgICBpZiAoIXRyYW5zZmVyUmVzcCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJGYWlsZWQgdG8gdHJhbnNmZXJcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBfdHJhbnNmZXIoXG4gICAgZnJvbTogc3RyaW5nLFxuICAgIHRvOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlcixcbiAgICBjdHg6IEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICApIHtcbiAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyO1xuXG4gICAgaWYgKGZyb20gPT09IHRvKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFxuICAgICAgICBcImNhbm5vdCB0cmFuc2ZlciB0byBhbmQgZnJvbSBzYW1lIGNsaWVudCBhY2NvdW50XCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgLy8gdHJhbnNmZXIgb2YgMCBpcyBhbGxvd2VkIGluIEVSQzIwLCBzbyBqdXN0IHZhbGlkYXRlIGFnYWluc3QgbmVnYXRpdmUgYW1vdW50c1xuICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihcInRyYW5zZmVyIGFtb3VudCBjYW5ub3QgYmUgbmVnYXRpdmVcIik7XG4gICAgfVxuXG4gICAgLy8gUmV0cmlldmUgdGhlIGN1cnJlbnQgYmFsYW5jZSBvZiB0aGUgc2VuZGVyXG5cbiAgICBjb25zdCBmcm9tV2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQoZnJvbSwgY3R4KTtcblxuICAgIGNvbnN0IGZyb21CYWxhbmNlID0gZnJvbVdhbGxldC5iYWxhbmNlO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHNlbmRlciBoYXMgZW5vdWdoIHRva2VucyB0byBzcGVuZC5cbiAgICBpZiAoZnJvbUJhbGFuY2UgPCB2YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihgY2xpZW50IGFjY291bnQgJHtmcm9tfSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGJhbGFuY2Ugb2YgdGhlIHJlY2VwaWVudFxuXG4gICAgbGV0IHRvV2FsbGV0OiBFUkMyMFdhbGxldDtcbiAgICBsZXQgbmV3VG9XYWxsZXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgdG9XYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZCh0bywgY3R4KTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEJhc2VFcnJvcikge1xuICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgd2FsbGV0IGZvciB0aGUgbWludGVyXG4gICAgICAgICAgdG9XYWxsZXQgPSBuZXcgRVJDMjBXYWxsZXQoe1xuICAgICAgICAgICAgaWQ6IHRvLFxuICAgICAgICAgICAgYmFsYW5jZTogMCxcbiAgICAgICAgICAgIHRva2VuOiBhd2FpdCB0aGlzLlRva2VuTmFtZShjdHggYXMgYW55KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBuZXdUb1dhbGxldCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRvQmFsYW5jZSA9IHRvV2FsbGV0LmJhbGFuY2U7XG5cbiAgICAvLyBVcGRhdGUgdGhlIGJhbGFuY2VcbiAgICBjb25zdCBmcm9tVXBkYXRlZEJhbGFuY2UgPSBzdWIoZnJvbUJhbGFuY2UsIHZhbHVlKTtcbiAgICBjb25zdCB0b1VwZGF0ZWRCYWxhbmNlID0gYWRkKHRvQmFsYW5jZSwgdmFsdWUpO1xuXG4gICAgY29uc3QgdXBkYXRlZEZyb21XYWxsZXQgPSBPYmplY3QuYXNzaWduKHt9LCBmcm9tV2FsbGV0LCB7XG4gICAgICBiYWxhbmNlOiBmcm9tVXBkYXRlZEJhbGFuY2UsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRGcm9tV2FsbGV0LCBjdHgpO1xuXG4gICAgY29uc3QgdXBkYXRlZFRvV2FsbGV0ID0gT2JqZWN0LmFzc2lnbih7fSwgdG9XYWxsZXQsIHtcbiAgICAgIGJhbGFuY2U6IHRvVXBkYXRlZEJhbGFuY2UsXG4gICAgfSk7XG5cbiAgICBpZiAobmV3VG9XYWxsZXQpIHtcbiAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5jcmVhdGUodXBkYXRlZFRvV2FsbGV0LCBjdHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRUb1dhbGxldCwgY3R4KTtcbiAgICB9XG5cbiAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgIGNvbnN0IHRyYW5zZmVyRXZlbnQgPSB7IGZyb20sIHRvLCB2YWx1ZTogdmFsdWUgfTtcblxuICAgIHRoaXMucmVwb1xuICAgICAgLnJlZnJlc2goXG4gICAgICAgIEVSQzIwVG9rZW4gYXMgYW55LFxuICAgICAgICBFUkMyMEV2ZW50cy5UUkFOU0ZFUixcbiAgICAgICAgXCJcIixcbiAgICAgICAgdHJhbnNmZXJFdmVudCxcbiAgICAgICAgY3R4IGFzIHVua25vd24gYXMgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgICApXG4gICAgICAuY2F0Y2goKGUpID0+IGxvZy5lcnJvcihgRmFpbGVkIHRvIG5vdGlmeSB0cmFuc2ZlcjogJHtlfWApKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyBgc3BlbmRlcmAgdG8gc3BlbmQgYHZhbHVlYCBhbW91bnQgb2YgdG9rZW5zIGZyb20gdGhlIG93bmVyLiBOZXcgQXBwcm92ZSBjYWxscyBvdmVycmlkZSB0aGUgcHJldmlvdXMgYWxsb3dhbmNlLlxuICAgKiBAbm90ZSBodHRwczovL2VpcHMuZXRoZXJldW0ub3JnL0VJUFMvZWlwLTIwXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzcGVuZGVyIFRoZSBzcGVuZGVyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBhcHByb3ZlZCBmb3IgdHJhbnNmZXJcbiAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSBhcHByb3ZhbCB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICovXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIEFwcHJvdmUoXG4gICAgY29udGV4dDogQ29udGV4dCxcbiAgICBzcGVuZGVyOiBzdHJpbmcsXG4gICAgdmFsdWU6IG51bWJlclxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IGN0eCwgY3R4QXJncyB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkFwcHJvdmUpO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3Qgb3duZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgIGxldCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG5cbiAgICBjb25zdCBvd25lcldhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKG93bmVyLCAuLi5jdHhBcmdzKTtcblxuICAgIGlmIChvd25lcldhbGxldC5iYWxhbmNlIDwgdmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYGNsaWVudCBhY2NvdW50ICR7b3duZXJ9IGhhcyBpbnN1ZmZpY2llbnQgZnVuZHMuYCk7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93YW5jZSkge1xuICAgICAgLy8gT3ZlcndyaXRlIHRoZSBhbGxvd2FuY2VcbiAgICAgIGFsbG93YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LnVwZGF0ZShhbGxvd2FuY2UsIC4uLmN0eEFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGxvd2FuY2UgPSBuZXcgQWxsb3dhbmNlKHtcbiAgICAgICAgb3duZXI6IG93bmVyLFxuICAgICAgICBzcGVuZGVyOiBzcGVuZGVyLFxuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LmNyZWF0ZShhbGxvd2FuY2UsIC4uLmN0eEFyZ3MpO1xuICAgIH1cblxuICAgIC8vIEVtaXQgdGhlIEFwcHJvdmFsIGV2ZW50XG4gICAgY29uc3QgYXBwcm92YWxFdmVudCA9IHsgb3duZXIsIHNwZW5kZXIsIHZhbHVlOiB2YWx1ZSB9O1xuICAgIHRoaXMucmVwby5yZWZyZXNoKFxuICAgICAgRVJDMjBUb2tlbiBhcyBhbnksXG4gICAgICBFUkMyMEV2ZW50cy5BUFBST1ZBTCxcbiAgICAgIFwiXCIsXG4gICAgICBhcHByb3ZhbEV2ZW50LFxuICAgICAgY3R4IGFzIHVua25vd24gYXMgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFtb3VudCBvZiB0b2tlbnMgd2hpY2ggYCBgIGlzIGFsbG93ZWQgdG8gd2l0aGRyYXcgZnJvbSBgb3duZXJgLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3duZXIgVGhlIG93bmVyIG9mIHRva2Vuc1xuICAgKiBAcGFyYW0ge1N0cmluZ30gc3BlbmRlciBUaGUgc3BlbmRlciB3aG8gYXJlIGFibGUgdG8gdHJhbnNmZXIgdGhlIHRva2Vuc1xuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm4gdGhlIGFtb3VudCBvZiByZW1haW5pbmcgdG9rZW5zIGFsbG93ZWQgdG8gc3BlbnRcbiAgICovXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgQWxsb3dhbmNlKFxuICAgIGNvbnRleHQ6IENvbnRleHQsXG4gICAgb3duZXI6IHN0cmluZyxcbiAgICBzcGVuZGVyOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkFsbG93YW5jZSk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG5cbiAgICBpZiAoIWFsbG93YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEFsbG93YW5jZUVycm9yKFxuICAgICAgICBgc3BlbmRlciAke3NwZW5kZXJ9IGhhcyBubyBhbGxvd2FuY2UgZnJvbSAke293bmVyfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBhbGxvd2FuY2UudmFsdWU7XG4gIH1cblxuICBhc3luYyBfZ2V0QWxsb3dhbmNlKFxuICAgIG93bmVyOiBzdHJpbmcsXG4gICAgc3BlbmRlcjogc3RyaW5nLFxuICAgIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0XG4gICk6IFByb21pc2U8QWxsb3dhbmNlPiB7XG4gICAgY29uc3QgYWxsb3dhbmNlQ29uZGl0aW9uID0gQ29uZGl0aW9uLmFuZChcbiAgICAgIENvbmRpdGlvbi5hdHRyaWJ1dGU8QWxsb3dhbmNlPihcIm93bmVyXCIpLmVxKG93bmVyKSxcbiAgICAgIENvbmRpdGlvbi5hdHRyaWJ1dGU8QWxsb3dhbmNlPihcInNwZW5kZXJcIikuZXEoc3BlbmRlcilcbiAgICApO1xuXG4gICAgY29uc3QgYWxsb3dhbmNlID0gYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5XG4gICAgICAuc2VsZWN0KClcbiAgICAgIC53aGVyZShhbGxvd2FuY2VDb25kaXRpb24pXG4gICAgICAuZXhlY3V0ZShjdHgpO1xuICAgIHJldHVybiBhbGxvd2FuY2U/LlswXTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PSBFeHRlbmRlZCBGdW5jdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogU2V0IG9wdGlvbmFsIGluZm9tYXRpb24gZm9yIGEgdG9rZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0b2tlblxuICAgKiBAcGFyYW0ge1N0cmluZ30gc3ltYm9sIFRoZSBzeW1ib2wgb2YgdGhlIHRva2VuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkZWNpbWFscyBUaGUgZGVjaW1hbHMgb2YgdGhlIHRva2VuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0b3RhbFN1cHBseSBUaGUgdG90YWxTdXBwbHkgb2YgdGhlIHRva2VuXG4gICAqL1xuICBAVHJhbnNhY3Rpb24oKVxuICBhc3luYyBJbml0aWFsaXplKGNvbnRleHQ6IENvbnRleHQsIHRva2VuOiBFUkMyMFRva2VuKSB7XG4gICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Jbml0aWFsaXplKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBub3QgYWxyZWFkeSBzZXQsIGNsaWVudCBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlbSBvbmNlIGludGl0aWFsaXplZFxuICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpLmV4ZWN1dGUoY3R4KTtcbiAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgIFwiY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQsIGNsaWVudCBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlbVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIHRva2VuLm93bmVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG5cbiAgICBhd2FpdCB0aGlzLnRva2VuUmVwb3NpdG9yeS5jcmVhdGUodG9rZW4sIGN0eCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIENoZWNrcyB0aGF0IGNvbnRyYWN0IG9wdGlvbnMgaGF2ZSBiZWVuIGFscmVhZHkgaW5pdGlhbGl6ZWRcbiAgQFRyYW5zYWN0aW9uKGZhbHNlKVxuICBhc3luYyBDaGVja0luaXRpYWxpemVkKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpLmV4ZWN1dGUoY3R4KTtcbiAgICBpZiAodG9rZW5zLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgTm90SW5pdGlhbGl6ZWRFcnJvcihcbiAgICAgICAgXCJjb250cmFjdCBvcHRpb25zIG5lZWQgdG8gYmUgc2V0IGJlZm9yZSBjYWxsaW5nIGFueSBmdW5jdGlvbiwgY2FsbCBJbml0aWFsaXplKCkgdG8gaW5pdGlhbGl6ZSBjb250cmFjdFwiXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNaW50IGNyZWF0ZXMgbmV3IHRva2VucyBhbmQgYWRkcyB0aGVtIHRvIG1pbnRlcidzIGFjY291bnQgYmFsYW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFtb3VudCBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIG1pbnRlZFxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgYmFsYW5jZVxuICAgKi9cbiAgQE93bmVyKClcbiAgQFRyYW5zYWN0aW9uKClcbiAgYXN5bmMgTWludChjb250ZXh0OiBDb250ZXh0LCBhbW91bnQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuTWludCk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICAvLyBHZXQgSUQgb2Ygc3VibWl0dGluZyBjbGllbnQgaWRlbnRpdHlcbiAgICBjb25zdCBtaW50ZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgIGlmIChhbW91bnQgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1pbnQgYW1vdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyXCIpO1xuICAgIH1cblxuICAgIGxldCBtaW50ZXJXYWxsZXQ6IEVSQzIwV2FsbGV0O1xuICAgIHRyeSB7XG4gICAgICBtaW50ZXJXYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChtaW50ZXIsIGN0eCk7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRCYWxhbmNlID0gbWludGVyV2FsbGV0LmJhbGFuY2U7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gYWRkKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuXG4gICAgICBjb25zdCB1cGRhdGVkbWludGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWludGVyV2FsbGV0LCB7XG4gICAgICAgIGJhbGFuY2U6IHVwZGF0ZWRCYWxhbmNlLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZG1pbnRlciwgY3R4KTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEJhc2VFcnJvcikge1xuICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgd2FsbGV0IGZvciB0aGUgbWludGVyXG4gICAgICAgICAgY29uc3QgbmV3V2FsbGV0ID0gbmV3IEVSQzIwV2FsbGV0KHtcbiAgICAgICAgICAgIGlkOiBtaW50ZXIsXG4gICAgICAgICAgICBiYWxhbmNlOiBhbW91bnQsXG4gICAgICAgICAgICB0b2tlbjogYXdhaXQgdGhpcy5Ub2tlbk5hbWUoY29udGV4dCksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LmNyZWF0ZShuZXdXYWxsZXQsIGN0eCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBzdHJpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVtaXQgdGhlIFRyYW5zZmVyIGV2ZW50XG4gICAgY29uc3QgdHJhbnNmZXJFdmVudCA9IHsgZnJvbTogXCIweDBcIiwgdG86IG1pbnRlciwgdmFsdWU6IGFtb3VudCB9O1xuICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9XG4gICAgICB0aGlzLnJlcG8uT2JzZXJ2ZXJIYW5kbGVyKCkgYXMgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXI7XG4gICAgZXZlbnRIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhcbiAgICAgIEVSQzIwVG9rZW4sXG4gICAgICBFUkMyMEV2ZW50cy5UUkFOU0ZFUixcbiAgICAgIFwiXCIsXG4gICAgICB0cmFuc2ZlckV2ZW50LFxuICAgICAgY3R4IGFzIHVua25vd24gYXMgRmFicmljQ29udHJhY3RDb250ZXh0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXJuIHJlZGVlbSB0b2tlbnMgZnJvbSBtaW50ZXIncyBhY2NvdW50IGJhbGFuY2VcbiAgICpcbiAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWRcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIGJhbGFuY2VcbiAgICovXG4gIEBPd25lcigpXG4gIEBUcmFuc2FjdGlvbigpXG4gIGFzeW5jIEJ1cm4oY29udGV4dDogQ29udGV4dCwgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybik7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICBjb25zdCBtaW50ZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgIGNvbnN0IG1pbnRlcldhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKG1pbnRlciwgY3R4KTtcblxuICAgIGNvbnN0IGN1cnJlbnRCYWxhbmNlID0gbWludGVyV2FsbGV0LmJhbGFuY2U7XG5cbiAgICBpZiAoY3VycmVudEJhbGFuY2UgPCBhbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYE1pbnRlciBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gc3ViKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuXG4gICAgY29uc3QgdXBkYXRlZG1pbnRlciA9IE9iamVjdC5hc3NpZ24oe30sIG1pbnRlcldhbGxldCwge1xuICAgICAgYmFsYW5jZTogdXBkYXRlZEJhbGFuY2UsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRtaW50ZXIsIGN0eCk7XG5cbiAgICBsb2cuaW5mbyhgJHthbW91bnR9IHRva2VucyB3ZXJlIGJ1cm5lZGApO1xuXG4gICAgLy8gRW1pdCB0aGUgVHJhbnNmZXIgZXZlbnRcbiAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tOiBtaW50ZXIsIHRvOiBcIjB4MFwiLCB2YWx1ZTogYW1vdW50IH07XG4gICAgY29uc3QgZXZlbnRIYW5kbGVyID1cbiAgICAgIHRoaXMucmVwby5PYnNlcnZlckhhbmRsZXIoKSBhcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlcjtcbiAgICBldmVudEhhbmRsZXIudXBkYXRlT2JzZXJ2ZXJzKFxuICAgICAgRVJDMjBUb2tlbixcbiAgICAgIEVSQzIwRXZlbnRzLlRSQU5TRkVSLFxuICAgICAgXCJcIixcbiAgICAgIHRyYW5zZmVyRXZlbnQsXG4gICAgICBjdHggYXMgdW5rbm93biBhcyBGYWJyaWNDb250cmFjdENvbnRleHRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1cm5Gcm9tIHJlZGVlbSB0b2tlbnMgZnJvbSBhY2NvdW50IGFsbG93ZW5jZSBhbmQgYmFsYW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHBhcmFtIHtudW1iZXJ9IGFjY291bnQgYWNjb3VudCBmcm9tIHdoZXJlIHRva2VucyB3aWxsIGJlIGJ1cm5lZFxuICAgKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgYnVybmVkXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBiYWxhbmNlXG4gICAqL1xuICBAT3duZXIoKVxuICBAVHJhbnNhY3Rpb24oKVxuICBhc3luYyBCdXJuRnJvbShcbiAgICBjb250ZXh0OiBDb250ZXh0LFxuICAgIGFjY291bnQ6IHN0cmluZyxcbiAgICBhbW91bnQ6IG51bWJlclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybkZyb20pO1xuICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCBhcyBhbnkpO1xuXG4gICAgY29uc3QgYWNjb3VudFdhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKGFjY291bnQsIGN0eCk7XG5cbiAgICBjb25zdCBjdXJyZW50QmFsYW5jZSA9IGFjY291bnRXYWxsZXQuYmFsYW5jZTtcblxuICAgIGlmIChjdXJyZW50QmFsYW5jZSA8IGFtb3VudCkge1xuICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihgJHthY2NvdW50fSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gc3ViKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuXG4gICAgY29uc3QgdXBkYXRlZGFjY291bnQgPSBPYmplY3QuYXNzaWduKHt9LCBhY2NvdW50V2FsbGV0LCB7XG4gICAgICBiYWxhbmNlOiB1cGRhdGVkQmFsYW5jZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZGFjY291bnQsIGN0eCk7XG5cbiAgICBsb2cuaW5mbyhgJHthbW91bnR9IHRva2VucyB3ZXJlIGJ1cm5lZCBmcm9tICR7YWNjb3VudH1gKTtcblxuICAgIC8vIEVtaXQgdGhlIFRyYW5zZmVyIGV2ZW50XG4gICAgY29uc3QgdHJhbnNmZXJFdmVudCA9IHsgZnJvbTogYWNjb3VudCwgdG86IFwiMHgwXCIsIHZhbHVlOiBhbW91bnQgfTtcbiAgICBjb25zdCBldmVudEhhbmRsZXIgPVxuICAgICAgdGhpcy5yZXBvLk9ic2VydmVySGFuZGxlcigpIGFzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyO1xuICAgIGV2ZW50SGFuZGxlci51cGRhdGVPYnNlcnZlcnMoXG4gICAgICBFUkMyMFRva2VuLFxuICAgICAgRVJDMjBFdmVudHMuVFJBTlNGRVIsXG4gICAgICBcIlwiLFxuICAgICAgdHJhbnNmZXJFdmVudCxcbiAgICAgIGN0eCBhcyB1bmtub3duIGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpZW50QWNjb3VudEJhbGFuY2UgcmV0dXJucyB0aGUgYmFsYW5jZSBvZiB0aGUgcmVxdWVzdGluZyBjbGllbnQncyBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICogQHJldHVybnMge051bWJlcn0gUmV0dXJucyB0aGUgYWNjb3VudCBiYWxhbmNlXG4gICAqL1xuICBAVHJhbnNhY3Rpb24oZmFsc2UpXG4gIGFzeW5jIENsaWVudEFjY291bnRCYWxhbmNlKGNvbnRleHQ6IENvbnRleHQpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHggYXMgYW55KTtcblxuICAgIC8vIEdldCBJRCBvZiBzdWJtaXR0aW5nIGNsaWVudCBpZGVudGl0eVxuICAgIGNvbnN0IGNsaWVudEFjY291bnRJRCA9IGN0eC5pZGVudGl0eS5nZXRJRCgpO1xuXG4gICAgY29uc3QgY2xpZW50V2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQoY2xpZW50QWNjb3VudElELCBjdHgpO1xuXG4gICAgaWYgKCFjbGllbnRXYWxsZXQpIHtcbiAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYFRoZSBhY2NvdW50ICR7Y2xpZW50QWNjb3VudElEfSBkb2VzIG5vdCBleGlzdGApO1xuICAgIH1cblxuICAgIHJldHVybiBjbGllbnRXYWxsZXQuYmFsYW5jZTtcbiAgfVxuXG4gIC8vIENsaWVudEFjY291bnRJRCByZXR1cm5zIHRoZSBpZCBvZiB0aGUgcmVxdWVzdGluZyBjbGllbnQncyBhY2NvdW50LlxuICAvLyBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCB0aGUgY2xpZW50IGFjY291bnQgSUQgaXMgdGhlIGNsaWVudElkIGl0c2VsZi5cbiAgLy8gVXNlcnMgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGdldCB0aGVpciBvd24gYWNjb3VudCBpZCwgd2hpY2ggdGhleSBjYW4gdGhlbiBnaXZlIHRvIG90aGVycyBhcyB0aGUgcGF5bWVudCBhZGRyZXNzXG4gIEBUcmFuc2FjdGlvbihmYWxzZSlcbiAgYXN5bmMgQ2xpZW50QWNjb3VudElEKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkNsaWVudEFjY291bnRJRCk7XG4gICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4IGFzIGFueSk7XG5cbiAgICAvLyBHZXQgSUQgb2Ygc3VibWl0dGluZyBjbGllbnQgaWRlbnRpdHlcbiAgICBjb25zdCBjbGllbnRBY2NvdW50SUQgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICByZXR1cm4gY2xpZW50QWNjb3VudElEO1xuICB9XG59XG4iXX0=
587
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJjMjBjb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVyYzIwY29udHJhY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxD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b3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBDb25kaXRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvbnRleHQsIFRyYW5zYWN0aW9uIH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IGFkZCwgc3ViIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL21hdGguanNcIjtcbmltcG9ydCB7IEFsbG93YW5jZUVycm9yLCBCYWxhbmNlRXJyb3IsIE5vdEluaXRpYWxpemVkRXJyb3IsIH0gZnJvbSBcIi4vLi4vLi4vc2hhcmVkL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RBZGFwdGVyIH0gZnJvbSBcIi4vLi4vQ29udHJhY3RBZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyBBbGxvd2FuY2UsIEVSQzIwVG9rZW4sIEVSQzIwV2FsbGV0IH0gZnJvbSBcIi4vbW9kZWxzLmpzXCI7XG5pbXBvcnQgeyBPd25lciB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzLmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkgfSBmcm9tIFwiLi8uLi9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuanNcIjtcbmltcG9ydCB7IEJhc2VFcnJvciwgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgVmFsaWRhdGlvbkVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRmFicmljQ3J1ZENvbnRyYWN0IH0gZnJvbSBcIi4vLi4vY3J1ZC9jcnVkLWNvbnRyYWN0LmpzXCI7XG5pbXBvcnQgeyBFUkMyMEV2ZW50cyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lcmMyMC9lcmMyMC1jb25zdGFudHMuanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIEVSQzIwIHRva2VuIGNvbnRyYWN0IGJhc2UgZm9yIEh5cGVybGVkZ2VyIEZhYnJpY1xuICogQHN1bW1hcnkgSW1wbGVtZW50cyBFUkMyMC1saWtlIHRva2VuIGxvZ2ljIHVzaW5nIHJlcG9zaXRvcmllcyBhbmQgYWRhcHRlcnMsIHByb3ZpZGluZyBzdGFuZGFyZCB0b2tlbiBvcGVyYXRpb25zIHN1Y2ggYXMgYmFsYW5jZSBxdWVyaWVzLCB0cmFuc2ZlcnMsIGFwcHJvdmFscywgbWludGluZyBhbmQgYnVybmluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGNvbnRyYWN0IG5hbWUgdXNlZCB0byBzY29wZSB0b2tlbiBpZGVudGl0eVxuICogQG5vdGUgaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yMFxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNFUkMyMENvbnRyYWN0XG4gKiBAZXhhbXBsZVxuICogY2xhc3MgTXlUb2tlbkNvbnRyYWN0IGV4dGVuZHMgRmFicmljRVJDMjBDb250cmFjdCB7XG4gKiAgIGNvbnN0cnVjdG9yKCkgeyBzdXBlcignTXlUb2tlbicpOyB9XG4gKiB9XG4gKiAvLyBUaGUgY29udHJhY3QgZXhwb3NlcyBtZXRob2RzIGxpa2UgVHJhbnNmZXIsIEFwcHJvdmUsIE1pbnQsIEJ1cm4sIGV0Yy5cbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IFdhbGxldFJlcG9cbiAqICAgcGFydGljaXBhbnQgVG9rZW5SZXBvXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBDbGllbnQtPj5Db250cmFjdDogVHJhbnNmZXIoY3R4LCB0bywgdmFsdWUpXG4gKiAgIENvbnRyYWN0LT4+V2FsbGV0UmVwbzogcmVhZChmcm9tKVxuICogICBDb250cmFjdC0+PldhbGxldFJlcG86IHJlYWQodG8pXG4gKiAgIENvbnRyYWN0LT4+TGVkZ2VyOiBwdXRTdGF0ZSh1cGRhdGVkIGJhbGFuY2VzKVxuICogICBDb250cmFjdC0tPj5DbGllbnQ6IHN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0VSQzIwQ29udHJhY3QgZXh0ZW5kcyBGYWJyaWNDcnVkQ29udHJhY3Qge1xuICAgIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICAgICAgc3VwZXIobmFtZSwgRVJDMjBXYWxsZXQpO1xuICAgICAgICBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIgPVxuICAgICAgICAgICAgRmFicmljRVJDMjBDb250cmFjdC5hZGFwdGVyIHx8IG5ldyBGYWJyaWNDb250cmFjdEFkYXB0ZXIoKTtcbiAgICAgICAgdGhpcy53YWxsZXRSZXBvc2l0b3J5ID0gRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmZvck1vZGVsKEVSQzIwV2FsbGV0LCBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXMpO1xuICAgICAgICB0aGlzLnRva2VuUmVwb3NpdG9yeSA9IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeS5mb3JNb2RlbChFUkMyMFRva2VuLCBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXMpO1xuICAgICAgICB0aGlzLmFsbG93YW5jZVJlcG9zaXRvcnkgPSBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnkuZm9yTW9kZWwoQWxsb3dhbmNlLCBGYWJyaWNFUkMyMENvbnRyYWN0LmFkYXB0ZXIuYWxpYXMpO1xuICAgIH1cbiAgICBhc3luYyBUb2tlbk5hbWUoY29udGV4dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLlRva2VuTmFtZSk7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnRva2VuUmVwb3NpdG9yeS5zZWxlY3QoKTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSAoYXdhaXQgc2VsZWN0LmV4ZWN1dGUoY3R4KSlbMF07XG4gICAgICAgIHJldHVybiB0b2tlbi5uYW1lO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIHN5bWJvbCBvZiB0aGUgdG9rZW4uIEUuZy4g4oCcSElY4oCdLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHJldHVybnMge1N0cmluZ30gUmV0dXJucyB0aGUgc3ltYm9sIG9mIHRoZSB0b2tlblxuICAgICAqL1xuICAgIGFzeW5jIFN5bWJvbChjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IChhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpKVswXTtcbiAgICAgICAgcmV0dXJuIHRva2VuLnN5bWJvbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdGhlIHRva2VuIHVzZXNcbiAgICAgKiBlLmcuIDgsIG1lYW5zIHRvIGRpdmlkZSB0aGUgdG9rZW4gYW1vdW50IGJ5IDEwMDAwMDAwMCB0byBnZXQgaXRzIHVzZXIgcmVwcmVzZW50YXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGVjaW1hbHNcbiAgICAgKi9cbiAgICBhc3luYyBEZWNpbWFscyhjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuVG9rZW5OYW1lKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgICAgICBjb25zdCB0b2tlbiA9IChhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpKVswXTtcbiAgICAgICAgcmV0dXJuIHRva2VuLmRlY2ltYWxzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIHRva2VuIHN1cHBseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9IFJldHVybnMgdGhlIHRvdGFsIHRva2VuIHN1cHBseVxuICAgICAqL1xuICAgIGFzeW5jIFRvdGFsU3VwcGx5KGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ID0gdGhpcy53YWxsZXRSZXBvc2l0b3J5LnNlbGVjdCgpO1xuICAgICAgICBjb25zdCB3YWxsZXRzID0gYXdhaXQgc2VsZWN0LmV4ZWN1dGUoY3R4KTtcbiAgICAgICAgaWYgKHdhbGxldHMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUaGUgdG9rZW4gJHt0aGlzLmdldE5hbWUoKX0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdG90YWwgPSAwO1xuICAgICAgICB3YWxsZXRzLmZvckVhY2goKHdhbGxldCkgPT4ge1xuICAgICAgICAgICAgdG90YWwgKz0gd2FsbGV0LmJhbGFuY2U7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdG90YWw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJhbGFuY2VPZiByZXR1cm5zIHRoZSBiYWxhbmNlIG9mIHRoZSBnaXZlbiBhY2NvdW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gb3duZXIgVGhlIG93bmVyIGZyb20gd2hpY2ggdGhlIGJhbGFuY2Ugd2lsbCBiZSByZXRyaWV2ZWRcbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIHRoZSBhY2NvdW50IGJhbGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBCYWxhbmNlT2YoY29udGV4dCwgb3duZXIpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQob3duZXIsIGN0eCk7XG4gICAgICAgIHJldHVybiB3YWxsZXQuYmFsYW5jZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQHN1bW1hcnkgVHJhbnNmZXIgdHJhbnNmZXJzIHRva2VucyBmcm9tIGNsaWVudCBhY2NvdW50IHRvIHJlY2lwaWVudCBhY2NvdW50LlxuICAgICAqIEBkZXNjcmlwdGlvbiByZWNpcGllbnQgYWNjb3VudCBtdXN0IGJlIGEgdmFsaWQgY2xpZW50SUQgYXMgcmV0dXJuZWQgYnkgdGhlIENsaWVudEFjY291bnRJRCgpIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHRvIFRoZSByZWNpcGllbnRcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVGhlIGFtb3VudCBvZiB0b2tlbiB0byBiZSB0cmFuc2ZlcnJlZFxuICAgICAqXG4gICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICAgKi9cbiAgICBhc3luYyBUcmFuc2Zlcihjb250ZXh0LCB0bywgdmFsdWUpIHtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5UcmFuc2Zlcik7XG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBmcm9tID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGNvbnN0IHRyYW5zZmVyUmVzcCA9IGF3YWl0IHRoaXMuX3RyYW5zZmVyKGZyb20sIHRvLCB2YWx1ZSwgY3R4KTtcbiAgICAgICAgaWYgKCF0cmFuc2ZlclJlc3ApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiRmFpbGVkIHRvIHRyYW5zZmVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUcmFuc2ZlciBgdmFsdWVgIGFtb3VudCBvZiB0b2tlbnMgZnJvbSBgZnJvbWAgdG8gYHRvYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmcm9tIFRoZSBzZW5kZXJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdG8gVGhlIHJlY2lwaWVudFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgYW1vdW50IG9mIHRva2VuIHRvIGJlIHRyYW5zZmVycmVkXG4gICAgICogQHJldHVybnMge0Jvb2xlYW59IFJldHVybiB3aGV0aGVyIHRoZSB0cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICAgKi9cbiAgICBhc3luYyBUcmFuc2ZlckZyb20oY29udGV4dCwgZnJvbSwgdG8sIHZhbHVlKSB7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybkZyb20pO1xuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgLy8gUmV0cmlldmUgdGhlIGFsbG93YW5jZSBvZiB0aGUgc3BlbmRlclxuICAgICAgICBjb25zdCBzcGVuZGVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuX2dldEFsbG93YW5jZShmcm9tLCBzcGVuZGVyLCBjdHgpO1xuICAgICAgICBpZiAoIWFsbG93YW5jZSB8fCBhbGxvd2FuY2UudmFsdWUgPCAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQWxsb3dhbmNlRXJyb3IoYHNwZW5kZXIgJHtzcGVuZGVyfSBoYXMgbm8gYWxsb3dhbmNlIGZyb20gJHtmcm9tfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBbGxvd2FuY2UgPSBhbGxvd2FuY2UudmFsdWU7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB0cmFuc2ZlcnJlZCB2YWx1ZSBpcyBsZXNzIHRoYW4gdGhlIGFsbG93YW5jZVxuICAgICAgICBpZiAoY3VycmVudEFsbG93YW5jZSA8IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKFwiVGhlIHNwZW5kZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggYWxsb3dhbmNlIHRvIHNwZW5kLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEZWNyZWFzZSB0aGUgYWxsb3dhbmNlXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRBbGxvd2FuY2UgPSBzdWIoY3VycmVudEFsbG93YW5jZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdBbGxvd2FuY2UgPSBPYmplY3QuYXNzaWduKHt9LCBhbGxvd2FuY2UsIHtcbiAgICAgICAgICAgIHZhbHVlOiB1cGRhdGVkQWxsb3dhbmNlLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LnVwZGF0ZShuZXdBbGxvd2FuY2UsIGN0eCk7XG4gICAgICAgIC8vUmVhbGl6ZSB0aGUgdHJhbnNmZXJcbiAgICAgICAgY29uc3QgdHJhbnNmZXJSZXNwID0gYXdhaXQgdGhpcy5fdHJhbnNmZXIoZnJvbSwgdG8sIHZhbHVlLCBjdHgpO1xuICAgICAgICBpZiAoIXRyYW5zZmVyUmVzcCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJGYWlsZWQgdG8gdHJhbnNmZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGFzeW5jIF90cmFuc2Zlcihmcm9tLCB0bywgdmFsdWUsIGN0eCkge1xuICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyO1xuICAgICAgICBpZiAoZnJvbSA9PT0gdG8pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXCJjYW5ub3QgdHJhbnNmZXIgdG8gYW5kIGZyb20gc2FtZSBjbGllbnQgYWNjb3VudFwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPCAwKSB7XG4gICAgICAgICAgICAvLyB0cmFuc2ZlciBvZiAwIGlzIGFsbG93ZWQgaW4gRVJDMjAsIHNvIGp1c3QgdmFsaWRhdGUgYWdhaW5zdCBuZWdhdGl2ZSBhbW91bnRzXG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKFwidHJhbnNmZXIgYW1vdW50IGNhbm5vdCBiZSBuZWdhdGl2ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgY3VycmVudCBiYWxhbmNlIG9mIHRoZSBzZW5kZXJcbiAgICAgICAgY29uc3QgZnJvbVdhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKGZyb20sIGN0eCk7XG4gICAgICAgIGNvbnN0IGZyb21CYWxhbmNlID0gZnJvbVdhbGxldC5iYWxhbmNlO1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2VuZGVyIGhhcyBlbm91Z2ggdG9rZW5zIHRvIHNwZW5kLlxuICAgICAgICBpZiAoZnJvbUJhbGFuY2UgPCB2YWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhbGFuY2VFcnJvcihgY2xpZW50IGFjY291bnQgJHtmcm9tfSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHJpZXZlIHRoZSBjdXJyZW50IGJhbGFuY2Ugb2YgdGhlIHJlY2VwaWVudFxuICAgICAgICBsZXQgdG9XYWxsZXQ7XG4gICAgICAgIGxldCBuZXdUb1dhbGxldCA9IGZhbHNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdG9XYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZCh0bywgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBCYXNlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHdhbGxldCBmb3IgdGhlIG1pbnRlclxuICAgICAgICAgICAgICAgICAgICB0b1dhbGxldCA9IG5ldyBFUkMyMFdhbGxldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogdG8sXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWxhbmNlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW46IGF3YWl0IHRoaXMuVG9rZW5OYW1lKGN0eCksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBuZXdUb1dhbGxldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRvQmFsYW5jZSA9IHRvV2FsbGV0LmJhbGFuY2U7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgYmFsYW5jZVxuICAgICAgICBjb25zdCBmcm9tVXBkYXRlZEJhbGFuY2UgPSBzdWIoZnJvbUJhbGFuY2UsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgdG9VcGRhdGVkQmFsYW5jZSA9IGFkZCh0b0JhbGFuY2UsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZEZyb21XYWxsZXQgPSBPYmplY3QuYXNzaWduKHt9LCBmcm9tV2FsbGV0LCB7XG4gICAgICAgICAgICBiYWxhbmNlOiBmcm9tVXBkYXRlZEJhbGFuY2UsXG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRGcm9tV2FsbGV0LCBjdHgpO1xuICAgICAgICBjb25zdCB1cGRhdGVkVG9XYWxsZXQgPSBPYmplY3QuYXNzaWduKHt9LCB0b1dhbGxldCwge1xuICAgICAgICAgICAgYmFsYW5jZTogdG9VcGRhdGVkQmFsYW5jZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChuZXdUb1dhbGxldCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LmNyZWF0ZSh1cGRhdGVkVG9XYWxsZXQsIGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkudXBkYXRlKHVwZGF0ZWRUb1dhbGxldCwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgICAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tLCB0bywgdmFsdWU6IHZhbHVlIH07XG4gICAgICAgIHRoaXMucmVwb1xuICAgICAgICAgICAgLnJlZnJlc2goRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuVFJBTlNGRVIsIFwiXCIsIHRyYW5zZmVyRXZlbnQsIGN0eClcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gbG9nLmVycm9yKGBGYWlsZWQgdG8gbm90aWZ5IHRyYW5zZmVyOiAke2V9YCkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxsb3dzIGBzcGVuZGVyYCB0byBzcGVuZCBgdmFsdWVgIGFtb3VudCBvZiB0b2tlbnMgZnJvbSB0aGUgb3duZXIuIE5ldyBBcHByb3ZlIGNhbGxzIG92ZXJyaWRlIHRoZSBwcmV2aW91cyBhbGxvd2FuY2UuXG4gICAgICogQG5vdGUgaHR0cHM6Ly9laXBzLmV0aGVyZXVtLm9yZy9FSVBTL2VpcC0yMFxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjdHggdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3BlbmRlciBUaGUgc3BlbmRlclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBhcHByb3ZlZCBmb3IgdHJhbnNmZXJcbiAgICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gUmV0dXJuIHdoZXRoZXIgdGhlIGFwcHJvdmFsIHdhcyBzdWNjZXNzZnVsIG9yIG5vdFxuICAgICAqL1xuICAgIGFzeW5jIEFwcHJvdmUoY29udGV4dCwgc3BlbmRlciwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MgfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5BcHByb3ZlKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIGNvbnN0IG93bmVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGxldCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG4gICAgICAgIGNvbnN0IG93bmVyV2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQob3duZXIsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAob3duZXJXYWxsZXQuYmFsYW5jZSA8IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKGBjbGllbnQgYWNjb3VudCAke293bmVyfSBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd2FuY2UpIHtcbiAgICAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgYWxsb3dhbmNlXG4gICAgICAgICAgICBhbGxvd2FuY2UudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYWxsb3dhbmNlUmVwb3NpdG9yeS51cGRhdGUoYWxsb3dhbmNlLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFsbG93YW5jZSA9IG5ldyBBbGxvd2FuY2Uoe1xuICAgICAgICAgICAgICAgIG93bmVyOiBvd25lcixcbiAgICAgICAgICAgICAgICBzcGVuZGVyOiBzcGVuZGVyLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hbGxvd2FuY2VSZXBvc2l0b3J5LmNyZWF0ZShhbGxvd2FuY2UsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEVtaXQgdGhlIEFwcHJvdmFsIGV2ZW50XG4gICAgICAgIGNvbnN0IGFwcHJvdmFsRXZlbnQgPSB7IG93bmVyLCBzcGVuZGVyLCB2YWx1ZTogdmFsdWUgfTtcbiAgICAgICAgdGhpcy5yZXBvLnJlZnJlc2goRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuQVBQUk9WQUwsIFwiXCIsIGFwcHJvdmFsRXZlbnQsIGN0eCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdG9rZW5zIHdoaWNoIGAgYCBpcyBhbGxvd2VkIHRvIHdpdGhkcmF3IGZyb20gYG93bmVyYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY3R4IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG93bmVyIFRoZSBvd25lciBvZiB0b2tlbnNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gc3BlbmRlciBUaGUgc3BlbmRlciB3aG8gYXJlIGFibGUgdG8gdHJhbnNmZXIgdGhlIHRva2Vuc1xuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybiB0aGUgYW1vdW50IG9mIHJlbWFpbmluZyB0b2tlbnMgYWxsb3dlZCB0byBzcGVudFxuICAgICAqL1xuICAgIGFzeW5jIEFsbG93YW5jZShjb250ZXh0LCBvd25lciwgc3BlbmRlcikge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkFsbG93YW5jZSk7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBhbGxvd2FuY2UgPSBhd2FpdCB0aGlzLl9nZXRBbGxvd2FuY2Uob3duZXIsIHNwZW5kZXIsIGN0eCk7XG4gICAgICAgIGlmICghYWxsb3dhbmNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQWxsb3dhbmNlRXJyb3IoYHNwZW5kZXIgJHtzcGVuZGVyfSBoYXMgbm8gYWxsb3dhbmNlIGZyb20gJHtvd25lcn1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxsb3dhbmNlLnZhbHVlO1xuICAgIH1cbiAgICBhc3luYyBfZ2V0QWxsb3dhbmNlKG93bmVyLCBzcGVuZGVyLCBjdHgpIHtcbiAgICAgICAgY29uc3QgYWxsb3dhbmNlQ29uZGl0aW9uID0gQ29uZGl0aW9uLmFuZChDb25kaXRpb24uYXR0cmlidXRlKFwib3duZXJcIikuZXEob3duZXIpLCBDb25kaXRpb24uYXR0cmlidXRlKFwic3BlbmRlclwiKS5lcShzcGVuZGVyKSk7XG4gICAgICAgIGNvbnN0IGFsbG93YW5jZSA9IGF3YWl0IHRoaXMuYWxsb3dhbmNlUmVwb3NpdG9yeVxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAud2hlcmUoYWxsb3dhbmNlQ29uZGl0aW9uKVxuICAgICAgICAgICAgLmV4ZWN1dGUoY3R4KTtcbiAgICAgICAgcmV0dXJuIGFsbG93YW5jZT8uWzBdO1xuICAgIH1cbiAgICAvLyA9PT09PT09PT09PT09PT09PT0gRXh0ZW5kZWQgRnVuY3Rpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLyoqXG4gICAgICogU2V0IG9wdGlvbmFsIGluZm9tYXRpb24gZm9yIGEgdG9rZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IGN0eCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0b2tlblxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBzeW1ib2wgVGhlIHN5bWJvbCBvZiB0aGUgdG9rZW5cbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gZGVjaW1hbHMgVGhlIGRlY2ltYWxzIG9mIHRoZSB0b2tlblxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0b3RhbFN1cHBseSBUaGUgdG90YWxTdXBwbHkgb2YgdGhlIHRva2VuXG4gICAgICovXG4gICAgYXN5bmMgSW5pdGlhbGl6ZShjb250ZXh0LCB0b2tlbikge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkluaXRpYWxpemUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBub3QgYWxyZWFkeSBzZXQsIGNsaWVudCBpcyBub3QgYXV0aG9yaXplZCB0byBjaGFuZ2UgdGhlbSBvbmNlIGludGl0aWFsaXplZFxuICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCB0aGlzLnRva2VuUmVwb3NpdG9yeS5zZWxlY3QoKS5leGVjdXRlKGN0eCk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcImNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0LCBjbGllbnQgaXMgbm90IGF1dGhvcml6ZWQgdG8gY2hhbmdlIHRoZW1cIik7XG4gICAgICAgIH1cbiAgICAgICAgdG9rZW4ub3duZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy50b2tlblJlcG9zaXRvcnkuY3JlYXRlKHRva2VuLCBjdHgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gQ2hlY2tzIHRoYXQgY29udHJhY3Qgb3B0aW9ucyBoYXZlIGJlZW4gYWxyZWFkeSBpbml0aWFsaXplZFxuICAgIGFzeW5jIENoZWNrSW5pdGlhbGl6ZWQoY29udGV4dCkge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gYXdhaXQgdGhpcy5sb2dDdHgoW2NvbnRleHRdLCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCB0aGlzLnRva2VuUmVwb3NpdG9yeS5zZWxlY3QoKS5leGVjdXRlKGN0eCk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RJbml0aWFsaXplZEVycm9yKFwiY29udHJhY3Qgb3B0aW9ucyBuZWVkIHRvIGJlIHNldCBiZWZvcmUgY2FsbGluZyBhbnkgZnVuY3Rpb24sIGNhbGwgSW5pdGlhbGl6ZSgpIHRvIGluaXRpYWxpemUgY29udHJhY3RcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTWludCBjcmVhdGVzIG5ldyB0b2tlbnMgYW5kIGFkZHMgdGhlbSB0byBtaW50ZXIncyBhY2NvdW50IGJhbGFuY2VcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgYW1vdW50IG9mIHRva2VucyB0byBiZSBtaW50ZWRcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgYmFsYW5jZVxuICAgICAqL1xuICAgIGFzeW5jIE1pbnQoY29udGV4dCwgYW1vdW50KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuTWludCk7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICAvLyBHZXQgSUQgb2Ygc3VibWl0dGluZyBjbGllbnQgaWRlbnRpdHlcbiAgICAgICAgY29uc3QgbWludGVyID0gY3R4LmlkZW50aXR5LmdldElEKCk7XG4gICAgICAgIGlmIChhbW91bnQgPD0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1pbnQgYW1vdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyXCIpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtaW50ZXJXYWxsZXQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBtaW50ZXJXYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChtaW50ZXIsIGN0eCk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50QmFsYW5jZSA9IG1pbnRlcldhbGxldC5iYWxhbmNlO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZEJhbGFuY2UgPSBhZGQoY3VycmVudEJhbGFuY2UsIGFtb3VudCk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkbWludGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWludGVyV2FsbGV0LCB7XG4gICAgICAgICAgICAgICAgYmFsYW5jZTogdXBkYXRlZEJhbGFuY2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZG1pbnRlciwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBCYXNlRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHdhbGxldCBmb3IgdGhlIG1pbnRlclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdXYWxsZXQgPSBuZXcgRVJDMjBXYWxsZXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG1pbnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbGFuY2U6IGFtb3VudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiBhd2FpdCB0aGlzLlRva2VuTmFtZShjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5jcmVhdGUobmV3V2FsbGV0LCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgICAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tOiBcIjB4MFwiLCB0bzogbWludGVyLCB2YWx1ZTogYW1vdW50IH07XG4gICAgICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9IHRoaXMucmVwby5PYnNlcnZlckhhbmRsZXIoKTtcbiAgICAgICAgZXZlbnRIYW5kbGVyLnVwZGF0ZU9ic2VydmVycyhFUkMyMFRva2VuLCBFUkMyMEV2ZW50cy5UUkFOU0ZFUiwgXCJcIiwgdHJhbnNmZXJFdmVudCwgY3R4KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQnVybiByZWRlZW0gdG9rZW5zIGZyb20gbWludGVyJ3MgYWNjb3VudCBiYWxhbmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IGNvbnRleHQgdGhlIHRyYW5zYWN0aW9uIGNvbnRleHRcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgYnVybmVkXG4gICAgICogQHJldHVybnMge09iamVjdH0gVGhlIGJhbGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBCdXJuKGNvbnRleHQsIGFtb3VudCkge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybik7XG4gICAgICAgIC8vIENoZWNrIGNvbnRyYWN0IG9wdGlvbnMgYXJlIGFscmVhZHkgc2V0IGZpcnN0IHRvIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXG4gICAgICAgIGF3YWl0IHRoaXMuQ2hlY2tJbml0aWFsaXplZChjdHgpO1xuICAgICAgICBjb25zdCBtaW50ZXIgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgY29uc3QgbWludGVyV2FsbGV0ID0gYXdhaXQgdGhpcy53YWxsZXRSZXBvc2l0b3J5LnJlYWQobWludGVyLCBjdHgpO1xuICAgICAgICBjb25zdCBjdXJyZW50QmFsYW5jZSA9IG1pbnRlcldhbGxldC5iYWxhbmNlO1xuICAgICAgICBpZiAoY3VycmVudEJhbGFuY2UgPCBhbW91bnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYE1pbnRlciBoYXMgaW5zdWZmaWNpZW50IGZ1bmRzLmApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRCYWxhbmNlID0gc3ViKGN1cnJlbnRCYWxhbmNlLCBhbW91bnQpO1xuICAgICAgICBjb25zdCB1cGRhdGVkbWludGVyID0gT2JqZWN0LmFzc2lnbih7fSwgbWludGVyV2FsbGV0LCB7XG4gICAgICAgICAgICBiYWxhbmNlOiB1cGRhdGVkQmFsYW5jZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZG1pbnRlciwgY3R4KTtcbiAgICAgICAgbG9nLmluZm8oYCR7YW1vdW50fSB0b2tlbnMgd2VyZSBidXJuZWRgKTtcbiAgICAgICAgLy8gRW1pdCB0aGUgVHJhbnNmZXIgZXZlbnRcbiAgICAgICAgY29uc3QgdHJhbnNmZXJFdmVudCA9IHsgZnJvbTogbWludGVyLCB0bzogXCIweDBcIiwgdmFsdWU6IGFtb3VudCB9O1xuICAgICAgICBjb25zdCBldmVudEhhbmRsZXIgPSB0aGlzLnJlcG8uT2JzZXJ2ZXJIYW5kbGVyKCk7XG4gICAgICAgIGV2ZW50SGFuZGxlci51cGRhdGVPYnNlcnZlcnMoRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuVFJBTlNGRVIsIFwiXCIsIHRyYW5zZmVyRXZlbnQsIGN0eCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJ1cm5Gcm9tIHJlZGVlbSB0b2tlbnMgZnJvbSBhY2NvdW50IGFsbG93ZW5jZSBhbmQgYmFsYW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtDb250ZXh0fSBjb250ZXh0IHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0XG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFjY291bnQgYWNjb3VudCBmcm9tIHdoZXJlIHRva2VucyB3aWxsIGJlIGJ1cm5lZFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnQgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWRcbiAgICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgYmFsYW5jZVxuICAgICAqL1xuICAgIGFzeW5jIEJ1cm5Gcm9tKGNvbnRleHQsIGFjY291bnQsIGFtb3VudCkge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQnVybkZyb20pO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgY29uc3QgYWNjb3VudFdhbGxldCA9IGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS5yZWFkKGFjY291bnQsIGN0eCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCYWxhbmNlID0gYWNjb3VudFdhbGxldC5iYWxhbmNlO1xuICAgICAgICBpZiAoY3VycmVudEJhbGFuY2UgPCBhbW91bnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWxhbmNlRXJyb3IoYCR7YWNjb3VudH0gaGFzIGluc3VmZmljaWVudCBmdW5kcy5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkQmFsYW5jZSA9IHN1YihjdXJyZW50QmFsYW5jZSwgYW1vdW50KTtcbiAgICAgICAgY29uc3QgdXBkYXRlZGFjY291bnQgPSBPYmplY3QuYXNzaWduKHt9LCBhY2NvdW50V2FsbGV0LCB7XG4gICAgICAgICAgICBiYWxhbmNlOiB1cGRhdGVkQmFsYW5jZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHRoaXMud2FsbGV0UmVwb3NpdG9yeS51cGRhdGUodXBkYXRlZGFjY291bnQsIGN0eCk7XG4gICAgICAgIGxvZy5pbmZvKGAke2Ftb3VudH0gdG9rZW5zIHdlcmUgYnVybmVkIGZyb20gJHthY2NvdW50fWApO1xuICAgICAgICAvLyBFbWl0IHRoZSBUcmFuc2ZlciBldmVudFxuICAgICAgICBjb25zdCB0cmFuc2ZlckV2ZW50ID0geyBmcm9tOiBhY2NvdW50LCB0bzogXCIweDBcIiwgdmFsdWU6IGFtb3VudCB9O1xuICAgICAgICBjb25zdCBldmVudEhhbmRsZXIgPSB0aGlzLnJlcG8uT2JzZXJ2ZXJIYW5kbGVyKCk7XG4gICAgICAgIGV2ZW50SGFuZGxlci51cGRhdGVPYnNlcnZlcnMoRVJDMjBUb2tlbiwgRVJDMjBFdmVudHMuVFJBTlNGRVIsIFwiXCIsIHRyYW5zZmVyRXZlbnQsIGN0eCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsaWVudEFjY291bnRCYWxhbmNlIHJldHVybnMgdGhlIGJhbGFuY2Ugb2YgdGhlIHJlcXVlc3RpbmcgY2xpZW50J3MgYWNjb3VudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29udGV4dH0gY29udGV4dCB0aGUgdHJhbnNhY3Rpb24gY29udGV4dFxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9IFJldHVybnMgdGhlIGFjY291bnQgYmFsYW5jZVxuICAgICAqL1xuICAgIGFzeW5jIENsaWVudEFjY291bnRCYWxhbmNlKGNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgeyBjdHggfSA9IGF3YWl0IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5Ub2tlbk5hbWUpO1xuICAgICAgICAvLyBDaGVjayBjb250cmFjdCBvcHRpb25zIGFyZSBhbHJlYWR5IHNldCBmaXJzdCB0byBleGVjdXRlIHRoZSBmdW5jdGlvblxuICAgICAgICBhd2FpdCB0aGlzLkNoZWNrSW5pdGlhbGl6ZWQoY3R4KTtcbiAgICAgICAgLy8gR2V0IElEIG9mIHN1Ym1pdHRpbmcgY2xpZW50IGlkZW50aXR5XG4gICAgICAgIGNvbnN0IGNsaWVudEFjY291bnRJRCA9IGN0eC5pZGVudGl0eS5nZXRJRCgpO1xuICAgICAgICBjb25zdCBjbGllbnRXYWxsZXQgPSBhd2FpdCB0aGlzLndhbGxldFJlcG9zaXRvcnkucmVhZChjbGllbnRBY2NvdW50SUQsIGN0eCk7XG4gICAgICAgIGlmICghY2xpZW50V2FsbGV0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFsYW5jZUVycm9yKGBUaGUgYWNjb3VudCAke2NsaWVudEFjY291bnRJRH0gZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xpZW50V2FsbGV0LmJhbGFuY2U7XG4gICAgfVxuICAgIC8vIENsaWVudEFjY291bnRJRCByZXR1cm5zIHRoZSBpZCBvZiB0aGUgcmVxdWVzdGluZyBjbGllbnQncyBhY2NvdW50LlxuICAgIC8vIEluIHRoaXMgaW1wbGVtZW50YXRpb24sIHRoZSBjbGllbnQgYWNjb3VudCBJRCBpcyB0aGUgY2xpZW50SWQgaXRzZWxmLlxuICAgIC8vIFVzZXJzIGNhbiB1c2UgdGhpcyBmdW5jdGlvbiB0byBnZXQgdGhlaXIgb3duIGFjY291bnQgaWQsIHdoaWNoIHRoZXkgY2FuIHRoZW4gZ2l2ZSB0byBvdGhlcnMgYXMgdGhlIHBheW1lbnQgYWRkcmVzc1xuICAgIGFzeW5jIENsaWVudEFjY291bnRJRChjb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgY3R4IH0gPSBhd2FpdCB0aGlzLmxvZ0N0eChbY29udGV4dF0sIHRoaXMuQ2xpZW50QWNjb3VudElEKTtcbiAgICAgICAgLy8gQ2hlY2sgY29udHJhY3Qgb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXQgZmlyc3QgdG8gZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgICAgYXdhaXQgdGhpcy5DaGVja0luaXRpYWxpemVkKGN0eCk7XG4gICAgICAgIC8vIEdldCBJRCBvZiBzdWJtaXR0aW5nIGNsaWVudCBpZGVudGl0eVxuICAgICAgICBjb25zdCBjbGllbnRBY2NvdW50SUQgPSBjdHguaWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgcmV0dXJuIGNsaWVudEFjY291bnRJRDtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIlRva2VuTmFtZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiU3ltYm9sXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJEZWNpbWFsc1wiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiVG90YWxTdXBwbHlcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHQsIFN0cmluZ10pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiQmFsYW5jZU9mXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIlRyYW5zZmVyXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIE51bWJlcl0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiVHJhbnNmZXJGcm9tXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIkFwcHJvdmVcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbihmYWxzZSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHQsIFN0cmluZywgU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJBbGxvd2FuY2VcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0LCBFUkMyMFRva2VuXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJJbml0aWFsaXplXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJDaGVja0luaXRpYWxpemVkXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgT3duZXIoKSxcbiAgICBUcmFuc2FjdGlvbigpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0LCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIk1pbnRcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBPd25lcigpLFxuICAgIFRyYW5zYWN0aW9uKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW0NvbnRleHQsIE51bWJlcl0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiQnVyblwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIE93bmVyKCksXG4gICAgVHJhbnNhY3Rpb24oKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dCwgU3RyaW5nLCBOdW1iZXJdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0VSQzIwQ29udHJhY3QucHJvdG90eXBlLCBcIkJ1cm5Gcm9tXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgVHJhbnNhY3Rpb24oZmFsc2UpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNFUkMyMENvbnRyYWN0LnByb3RvdHlwZSwgXCJDbGllbnRBY2NvdW50QmFsYW5jZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIFRyYW5zYWN0aW9uKGZhbHNlKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljRVJDMjBDb250cmFjdC5wcm90b3R5cGUsIFwiQ2xpZW50QWNjb3VudElEXCIsIG51bGwpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWlhKak1qQmpiMjUwY21GamRDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlqYjI1MGNtRmpkSE12WlhKak1qQXZaWEpqTWpCamIyNTBjbUZqZEM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJRU3hQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRMMFFzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXpSQ3hQUVVGUExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN3clFrRkJNRUk3UVVGRE4wTXNUMEZCVHl4RlFVTk1MR05CUVdNc1JVRkRaQ3haUVVGWkxFVkJRMW9zYlVKQlFXMUNMRWRCUTNCQ0xHbERRVUUwUWp0QlFVTTNRaXhQUVVGUExFVkJRVVVzY1VKQlFYRkNMRVZCUVVVc1owTkJRVEpDTzBGQlF6TkVMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeEZRVUZGTEZkQlFWY3NSVUZCUlN4dlFrRkJhVUk3UVVGRE9VUXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3h4UTBGQlowTTdRVUZEYUVRc1QwRkJUeXhGUVVGRkxIZENRVUYzUWl4RlFVRkZMSGxEUVVGdlF6dEJRVVYyUlN4UFFVRlBMRVZCUTB3c1UwRkJVeXhGUVVOVUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVWQlEySXNaVUZCWlN4SFFVTm9RaXhOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCUTJwRExFOUJRVThzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h0UTBGQk9FSTdRVUZGTTBRc1QwRkJUeXhGUVVGRkxGZEJRVmNzUlVGQlJTeG5SRUZCTWtNN1FVRkZha1U3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEhRWGRDUnp0QlFVTklMRTFCUVUwc1QwRkJaMElzYlVKQlFXOUNMRk5CUVZFc2EwSkJRU3RDTzBsQlR5OUZMRmxCUVhOQ0xFbEJRVms3VVVGRGFFTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFJRVVY2UWl4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTzFsQlEzcENMRzFDUVVGdFFpeERRVUZETEU5QlFVOHNTVUZCU1N4SlFVRkpMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdVVUZGTjBRc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4SFFVRkhMSGRDUVVGM1FpeERRVUZETEZGQlFWRXNRMEZEZGtRc1YwRkJWeXhGUVVOWUxHMUNRVUZ0UWl4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRMnhETEVOQlFVTTdVVUZGUml4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExIZENRVUYzUWl4RFFVRkRMRkZCUVZFc1EwRkRkRVFzVlVGQlZTeEZRVU5XTEcxQ1FVRnRRaXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlEyeERMRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRWRCUVVjc2QwSkJRWGRDTEVOQlFVTXNVVUZCVVN4RFFVTXhSQ3hUUVVGVExFVkJRMVFzYlVKQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGRGJFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkhTeXhCUVVGT0xFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCWjBJN1VVRkRPVUlzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU0zUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFMUJRVTBzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUZERMRTlCUVU4c1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF6dEpRVU53UWl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkZSeXhCUVVGT0xFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCWjBJN1VVRkRNMElzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU0zUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFMUJRVTBzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUZERMRTlCUVU4c1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU4wUWl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVdkQ08xRkJRemRDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETjBRc2RVVkJRWFZGTzFGQlEzWkZMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRE8xRkJSWGhETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdVVUZETjBNc1RVRkJUU3hMUVVGTExFZEJRVWNzUTBGQlF5eE5RVUZOTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVTNReXhQUVVGUExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTTdTVUZEZUVJc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVdkQ08xRkJRMmhETEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZETjBRc2RVVkJRWFZGTzFGQlEzWkZMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRE8xRkJSWGhETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNNVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNoQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNZVUZCWVN4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzUTBGQlF6dFJRVVZFTEVsQlFVa3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVWa0xFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSVHRaUVVONlFpeExRVUZMTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVNeFFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRTlCUVU4c1MwRkJTeXhEUVVGRE8wbEJRMllzUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVVkhMRUZCUVU0c1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZuUWl4RlFVRkZMRXRCUVdFN1VVRkROME1zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU0zUkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVUxUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU03U1VGRGVFSXNRMEZCUXp0SlFVVkVPenM3T3pzN096czdUMEZUUnp0SlFVVkhMRUZCUVU0c1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGRFdpeFBRVUZuUWl4RlFVTm9RaXhGUVVGVkxFVkJRMVlzUzBGQllUdFJRVVZpTEhWRlFVRjFSVHRSUVVOMlJTeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6VkVMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWRCUVZVc1EwRkJReXhEUVVGRE8xRkJSWGhETEUxQlFVMHNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZGYkVNc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0WlFVTnNRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVU03VVVGRGFFUXNRMEZCUXp0UlFVVkVMRTlCUVU4c1NVRkJTU3hEUVVGRE8wbEJRMlFzUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJSVWNzUVVGQlRpeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVTm9RaXhQUVVGblFpeEZRVU5vUWl4SlFVRlpMRVZCUTFvc1JVRkJWU3hGUVVOV0xFdEJRV0U3VVVGRllpeDFSVUZCZFVVN1VVRkRka1VzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0xUkN4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRlZMRU5CUVVNc1EwRkJRenRSUVVWNFF5eDNRMEZCZDBNN1VVRkZlRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZ5UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU12UkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxGTkJRVk1zUTBGQlF5eExRVUZMTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRkRU1zVFVGQlRTeEpRVUZKTEdOQlFXTXNRMEZEZEVJc1YwRkJWeXhQUVVGUExEQkNRVUV3UWl4SlFVRkpMRVZCUVVVc1EwRkRia1FzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkZla01zTkVSQlFUUkVPMUZCUXpWRUxFbEJRVWtzWjBKQlFXZENMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRE4wSXNUVUZCVFN4SlFVRkpMRmxCUVZrc1EwRkRjRUlzYzBSQlFYTkVMRU5CUTNaRUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNlVUpCUVhsQ08xRkJRM3BDTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzUjBGQlJ5eERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzUkVMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSVHRaUVVOb1JDeExRVUZMTEVWQlFVVXNaMEpCUVdkQ08xTkJRM2hDTEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGZWtRc2MwSkJRWE5DTzFGQlEzUkNMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFdEJRVXNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdXVUZEYkVJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRE8xRkJRMmhFTEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTmlMRWxCUVZrc1JVRkRXaXhGUVVGVkxFVkJRMVlzUzBGQllTeEZRVU5pTEVkQlFUQkNPMUZCUlRGQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkZka0lzU1VGQlNTeEpRVUZKTEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNN1dVRkRhRUlzVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVNeFFpeHBSRUZCYVVRc1EwRkRiRVFzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZGUkN4SlFVRkpMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5rTEN0RlFVRXJSVHRaUVVNdlJTeE5RVUZOTEVsQlFVa3NXVUZCV1N4RFFVRkRMRzlEUVVGdlF5eERRVUZETEVOQlFVTTdVVUZETDBRc1EwRkJRenRSUVVWRUxEWkRRVUUyUXp0UlFVVTNReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSUzlFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRmRrTXNhMFJCUVd0RU8xRkJRMnhFTEVsQlFVa3NWMEZCVnl4SFFVRkhMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM2hDTEUxQlFVMHNTVUZCU1N4WlFVRlpMRU5CUVVNc2EwSkJRV3RDTEVsQlFVa3NNRUpCUVRCQ0xFTkJRVU1zUTBGQlF6dFJRVU16UlN4RFFVRkRPMUZCUlVRc1owUkJRV2RFTzFGQlJXaEVMRWxCUVVrc1VVRkJjVUlzUTBGQlF6dFJRVU14UWl4SlFVRkpMRmRCUVZjc1IwRkJXU3hMUVVGTExFTkJRVU03VVVGRGFrTXNTVUZCU1N4RFFVRkRPMWxCUTBnc1VVRkJVU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRka1FzUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzU1VGQlNTeERRVUZETEZsQlFWa3NVMEZCVXl4RlFVRkZMRU5CUVVNN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1MwRkJTeXhIUVVGSExFVkJRVVVzUTBGQlF6dHZRa0ZEYmtJc2NVTkJRWEZETzI5Q1FVTnlReXhSUVVGUkxFZEJRVWNzU1VGQlNTeFhRVUZYTEVOQlFVTTdkMEpCUTNwQ0xFVkJRVVVzUlVGQlJTeEZRVUZGTzNkQ1FVTk9MRTlCUVU4c1JVRkJSU3hEUVVGRE8zZENRVU5XTEV0QlFVc3NSVUZCUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlZTeERRVUZETzNGQ1FVTjRReXhEUVVGRExFTkJRVU03YjBKQlEwZ3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRuUWtGRGNrSXNRMEZCUXp0eFFrRkJUU3hEUVVGRE8yOUNRVU5PTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTnlReXhEUVVGRE8xbEJRMGdzUTBGQlF6dHBRa0ZCVFN4RFFVRkRPMmRDUVVOT0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNRMEZCVnl4RFFVRkRMRU5CUVVNN1dVRkRka01zUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZGUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETzFGQlJXNURMSEZDUVVGeFFqdFJRVU55UWl4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGJrUXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEhRVUZITEVOQlFVTXNVMEZCVXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSUzlETEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRVZCUVVVc1ZVRkJWU3hGUVVGRk8xbEJRM1JFTEU5QlFVOHNSVUZCUlN4clFrRkJhMEk3VTBGRE5VSXNRMEZCUXl4RFFVRkRPMUZCUlVnc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVE5FTEUxQlFVMHNaVUZCWlN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZGQlFWRXNSVUZCUlR0WlFVTnNSQ3hQUVVGUExFVkJRVVVzWjBKQlFXZENPMU5CUXpGQ0xFTkJRVU1zUTBGQlF6dFJRVVZJTEVsQlFVa3NWMEZCVnl4RlFVRkZMRU5CUVVNN1dVRkRhRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEdWQlFXVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNelJDeERRVUZETzJGQlFVMHNRMEZCUXp0WlFVTk9MRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhsUVVGbExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETTBRc1EwRkJRenRSUVVWRUxEQkNRVUV3UWp0UlFVTXhRaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQlJXcEVMRWxCUVVrc1EwRkJReXhKUVVGSk8yRkJRMDRzVDBGQlR5eERRVU5PTEZWQlFXbENMRVZCUTJwQ0xGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlEzQkNMRVZCUVVVc1JVRkRSaXhoUVVGaExFVkJRMklzUjBGQmRVTXNRMEZEZUVNN1lVRkRRU3hMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zT0VKQlFUaENMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVU1UkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVWSExFRkJRVTRzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEV0N4UFFVRm5RaXhGUVVOb1FpeFBRVUZsTEVWQlEyWXNTMEZCWVR0UlFVVmlMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JGTEhWRlFVRjFSVHRSUVVOMlJTeE5RVUZOTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEhRVUZWTEVOQlFVTXNRMEZCUXp0UlFVVjRReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJSVzVETEVsQlFVa3NVMEZCVXl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSVGxFTEUxQlFVMHNWMEZCVnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVjRSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eFBRVUZQTEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRhRU1zVFVGQlRTeEpRVUZKTEZsQlFWa3NRMEZCUXl4clFrRkJhMElzUzBGQlN5d3dRa0ZCTUVJc1EwRkJReXhEUVVGRE8xRkJRelZGTEVOQlFVTTdVVUZGUkN4SlFVRkpMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRMlFzTUVKQlFUQkNPMWxCUXpGQ0xGTkJRVk1zUTBGQlF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUTNoQ0xFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFMUJRVTBzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJDeERRVUZETzJGQlFVMHNRMEZCUXp0WlFVTk9MRk5CUVZNc1IwRkJSeXhKUVVGSkxGTkJRVk1zUTBGQlF6dG5Ra0ZEZUVJc1MwRkJTeXhGUVVGRkxFdEJRVXM3WjBKQlExb3NUMEZCVHl4RlFVRkZMRTlCUVU4N1owSkJRMmhDTEV0QlFVc3NSVUZCUlN4TFFVRkxPMkZCUTJJc1EwRkJReXhEUVVGRE8xbEJSVWdzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJReTlFTEVOQlFVTTdVVUZGUkN3d1FrRkJNRUk3VVVGRE1VSXNUVUZCVFN4aFFVRmhMRWRCUVVjc1JVRkJSU3hMUVVGTExFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1EwRkJRenRSUVVOMlJDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRaaXhWUVVGcFFpeEZRVU5xUWl4WFFVRlhMRU5CUVVNc1VVRkJVU3hGUVVOd1FpeEZRVUZGTEVWQlEwWXNZVUZCWVN4RlFVTmlMRWRCUVhWRExFTkJRM2hETEVOQlFVTTdVVUZGUml4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUlVjc1FVRkJUaXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVU5pTEU5QlFXZENMRVZCUTJoQ0xFdEJRV0VzUlVGRFlpeFBRVUZsTzFGQlJXWXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3gxUlVGQmRVVTdVVUZEZGtVc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJWU3hEUVVGRExFTkJRVU03VVVGRmVFTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRmFFVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeEpRVUZKTEdOQlFXTXNRMEZEZEVJc1YwRkJWeXhQUVVGUExEQkNRVUV3UWl4TFFVRkxMRVZCUVVVc1EwRkRjRVFzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZEUkN4UFFVRlBMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU03U1VGRGVrSXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRMnBDTEV0QlFXRXNSVUZEWWl4UFFVRmxMRVZCUTJZc1IwRkJNRUk3VVVGRk1VSXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVTjBReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZaTEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGRGFrUXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJXU3hUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUTNSRUxFTkJRVU03VVVGRlJpeE5RVUZOTEZOQlFWTXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSTdZVUZETjBNc1RVRkJUU3hGUVVGRk8yRkJRMUlzUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVGRE8yRkJRM3BDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOb1FpeFBRVUZQTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hDTEVOQlFVTTdTVUZGUkN4dFJVRkJiVVU3U1VGRmJrVTdPenM3T3pzN08wOUJVVWM3U1VGRlJ5eEJRVUZPTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJaMElzUlVGQlJTeExRVUZwUWp0UlFVTnNSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRemxFTEhkSFFVRjNSenRSUVVONFJ5eE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU4wUWl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMREpGUVVFeVJTeERRVU0xUlN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVVZ1UXl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVNVF5eFBRVUZQTEVsQlFVa3NRMEZCUXp0SlFVTmtMRU5CUVVNN1NVRkZSQ3cyUkVGQk5rUTdTVUZGZGtRc1FVRkJUaXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1QwRkJaMEk3VVVGRGNrTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xRkJRM0JGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGFFVXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzWkNMRTFCUVUwc1NVRkJTU3h0UWtGQmJVSXNRMEZETTBJc2RVZEJRWFZITEVOQlEzaEhMRU5CUVVNN1VVRkRTaXhEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVZEhMRUZCUVU0c1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZuUWl4RlFVRkZMRTFCUVdNN1VVRkRla01zVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU40UkN4MVJVRkJkVVU3VVVGRGRrVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zZFVOQlFYVkRPMUZCUTNaRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRmNFTXNTVUZCU1N4TlFVRk5MRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGFFSXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXgzUTBGQmQwTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFYbENMRU5CUVVNN1VVRkRPVUlzU1VGQlNTeERRVUZETzFsQlEwZ3NXVUZCV1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZGTjBRc1RVRkJUU3hqUVVGakxFZEJRVWNzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXp0WlFVVTFReXhOUVVGTkxHTkJRV01zUjBGQlJ5eEhRVUZITEVOQlFVTXNZMEZCWXl4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJSVzVFTEUxQlFVMHNZVUZCWVN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZsQlFWa3NSVUZCUlR0blFrRkRjRVFzVDBGQlR5eEZRVUZGTEdOQlFXTTdZVUZEZUVJc1EwRkJReXhEUVVGRE8xbEJSVWdzVFVGQlRTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEdGQlFXRXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVONlJDeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRaUVVOd1FpeEpRVUZKTEVOQlFVTXNXVUZCV1N4VFFVRlRMRVZCUVVVc1EwRkJRenRuUWtGRE0wSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzI5Q1FVTnVRaXh4UTBGQmNVTTdiMEpCUTNKRExFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NWMEZCVnl4RFFVRkRPM2RDUVVOb1F5eEZRVUZGTEVWQlFVVXNUVUZCVFR0M1FrRkRWaXhQUVVGUExFVkJRVVVzVFVGQlRUdDNRa0ZEWml4TFFVRkxMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXp0eFFrRkRja01zUTBGQlF5eERRVUZETzI5Q1FVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTNKRUxFTkJRVU03Y1VKQlFVMHNRMEZCUXp0dlFrRkRUaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRGNrTXNRMEZCUXp0WlFVTklMRU5CUVVNN2FVSkJRVTBzUTBGQlF6dG5Ra0ZEVGl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExFTkJRVmNzUTBGQlF5eERRVUZETzFsQlEzWkRMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzTUVKQlFUQkNPMUZCUXpGQ0xFMUJRVTBzWVVGQllTeEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOcVJTeE5RVUZOTEZsQlFWa3NSMEZEYUVJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFTdERMRU5CUVVNN1VVRkRNMFVzV1VGQldTeERRVUZETEdWQlFXVXNRMEZETVVJc1ZVRkJWU3hGUVVOV0xGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlEzQkNMRVZCUVVVc1JVRkRSaXhoUVVGaExFVkJRMklzUjBGQmRVTXNRMEZEZUVNc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZIUnl4QlFVRk9MRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlowSXNSVUZCUlN4TlFVRmpPMUZCUTNwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6ZEVMSFZGUVVGMVJUdFJRVU4yUlN4TlFVRk5MRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRlZMRU5CUVVNc1EwRkJRenRSUVVWNFF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlJYQkRMRTFCUVUwc1dVRkJXU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZia1VzVFVGQlRTeGpRVUZqTEVkQlFVY3NXVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJRenRSUVVVMVF5eEpRVUZKTEdOQlFXTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVNMVFpeE5RVUZOTEVsQlFVa3NXVUZCV1N4RFFVRkRMR2REUVVGblF5eERRVUZETEVOQlFVTTdVVUZETTBRc1EwRkJRenRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4alFVRmpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRmJrUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNXVUZCV1N4RlFVRkZPMWxCUTNCRUxFOUJRVThzUlVGQlJTeGpRVUZqTzFOQlEzaENMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZka1FzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVVjZReXd3UWtGQk1FSTdVVUZETVVJc1RVRkJUU3hoUVVGaExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRPMUZCUTJwRkxFMUJRVTBzV1VGQldTeEhRVU5vUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQkswTXNRMEZCUXp0UlFVTXpSU3haUVVGWkxFTkJRVU1zWlVGQlpTeERRVU14UWl4VlFVRlZMRVZCUTFZc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGRGNFSXNSVUZCUlN4RlFVTkdMR0ZCUVdFc1JVRkRZaXhIUVVGMVF5eERRVU40UXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenM3TzA5QlQwYzdTVUZIUnl4QlFVRk9MRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRMW9zVDBGQlowSXNSVUZEYUVJc1QwRkJaU3hGUVVObUxFMUJRV003VVVGRlpDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3gxUlVGQmRVVTdVVUZEZGtVc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJWU3hEUVVGRExFTkJRVU03VVVGRmVFTXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVnlSU3hOUVVGTkxHTkJRV01zUjBGQlJ5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUlRkRExFbEJRVWtzWTBGQll5eEhRVUZITEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpWQ0xFMUJRVTBzU1VGQlNTeFpRVUZaTEVOQlFVTXNSMEZCUnl4UFFVRlBMREJDUVVFd1FpeERRVUZETEVOQlFVTTdVVUZETDBRc1EwRkJRenRSUVVWRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4alFVRmpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRmJrUXNUVUZCVFN4alFVRmpMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVVXNZVUZCWVN4RlFVRkZPMWxCUTNSRUxFOUJRVThzUlVGQlJTeGpRVUZqTzFOQlEzaENMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUTBGQlF5eGpRVUZqTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZlRVFzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRTFCUVUwc05FSkJRVFJDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkZla1FzTUVKQlFUQkNPMUZCUXpGQ0xFMUJRVTBzWVVGQllTeEhRVUZITEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOc1JTeE5RVUZOTEZsQlFWa3NSMEZEYUVJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFTdERMRU5CUVVNN1VVRkRNMFVzV1VGQldTeERRVUZETEdWQlFXVXNRMEZETVVJc1ZVRkJWU3hGUVVOV0xGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlEzQkNMRVZCUVVVc1JVRkRSaXhoUVVGaExFVkJRMklzUjBGQmRVTXNRMEZEZUVNc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVVZITEVGQlFVNHNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeERRVUZETEU5QlFXZENPMUZCUTNwRExFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE4wUXNkVVZCUVhWRk8xRkJRM1pGTEUxQlFVMHNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEVkQlFWVXNRMEZCUXl4RFFVRkRPMUZCUlhoRExIVkRRVUYxUXp0UlFVTjJReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJSVGRETEUxQlFVMHNXVUZCV1N4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTlVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzFsQlEyeENMRTFCUVUwc1NVRkJTU3haUVVGWkxFTkJRVU1zWlVGQlpTeGxRVUZsTEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03VVVGRE1VVXNRMEZCUXp0UlFVVkVMRTlCUVU4c1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF6dEpRVU01UWl4RFFVRkRPMGxCUlVRc2NVVkJRWEZGTzBsQlEzSkZMSGRGUVVGM1JUdEpRVU40UlN4eFNFRkJjVWc3U1VGRkwwY3NRVUZCVGl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFOUJRV2RDTzFGQlEzQkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkRia1VzZFVWQlFYVkZPMUZCUTNaRkxFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVlVzUTBGQlF5eERRVUZETzFGQlJYaERMSFZEUVVGMVF6dFJRVU4yUXl4TlFVRk5MR1ZCUVdVc1IwRkJSeXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUXpkRExFOUJRVThzWlVGQlpTeERRVUZETzBsQlEzcENMRU5CUVVNN1EwRkRSanRCUVhSdFFrODdTVUZFVEN4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE96dHhRMEZEVFN4UFFVRlBPenR2UkVGVEwwSTdRVUZUU3p0SlFVUk1MRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU03TzNGRFFVTkhMRTlCUVU4N08ybEVRVk0xUWp0QlFWVkxPMGxCUkV3c1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF6czdjVU5CUTBzc1QwRkJUenM3YlVSQlV6bENPMEZCVTBzN1NVRkVUQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkRVU3hQUVVGUE96dHpSRUZ0UW1wRE8wRkJWVXM3U1VGRVRDeFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRPenR4UTBGRFRTeFBRVUZQT3p0dlJFRlJMMEk3UVVGaFN6dEpRVVJNTEZkQlFWY3NSVUZCUlRzN2NVTkJSVWdzVDBGQlR6czdiVVJCWjBKcVFqdEJRVmxMTzBsQlJFd3NWMEZCVnl4RlFVRkZPenR4UTBGRlNDeFBRVUZQT3p0MVJFRTBRMnBDTzBGQmQwZExPMGxCUkV3c1YwRkJWeXhGUVVGRk96dHhRMEZGU0N4UFFVRlBPenRyUkVFeVEycENPMEZCVjBzN1NVRkVUQ3hYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZET3p0eFEwRkZVaXhQUVVGUE96dHZSRUZuUW1wQ08wRkJLMEpMTzBsQlJFd3NWMEZCVnl4RlFVRkZPenR4UTBGRFdTeFBRVUZQTEVWQlFWTXNWVUZCVlRzN2NVUkJaVzVFTzBGQlNVczdTVUZFVEN4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRE96dHhRMEZEWVN4UFFVRlBPenN5UkVGUmRFTTdRVUZYU3p0SlFVWk1MRXRCUVVzc1JVRkJSVHRKUVVOUUxGZEJRVmNzUlVGQlJUczdjVU5CUTAwc1QwRkJUenM3SzBOQmMwUXhRanRCUVZkTE8wbEJSa3dzUzBGQlN5eEZRVUZGTzBsQlExQXNWMEZCVnl4RlFVRkZPenR4UTBGRFRTeFBRVUZQT3pzclEwRnZRekZDTzBGQldVczdTVUZHVEN4TFFVRkxMRVZCUVVVN1NVRkRVQ3hYUVVGWExFVkJRVVU3TzNGRFFVVklMRTlCUVU4N08yMUVRWEZEYWtJN1FVRlRTenRKUVVSTUxGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTTdPM0ZEUVVOcFFpeFBRVUZQT3pzclJFRmxNVU03UVVGTlN6dEpRVVJNTEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNN08zRkRRVU5aTEU5QlFVODdPekJFUVZGeVF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXdnUTI5dVpHbDBhVzl1SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNTBaWGgwTENCVWNtRnVjMkZqZEdsdmJpQjlJR1p5YjIwZ1hDSm1ZV0p5YVdNdFkyOXVkSEpoWTNRdFlYQnBYQ0k3WEc1cGJYQnZjblFnZXlCaFpHUXNJSE4xWWlCOUlHWnliMjBnWENJdUxpOHVMaTl6YUdGeVpXUXZiV0YwYUZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnUVd4c2IzZGhibU5sUlhKeWIzSXNYRzRnSUVKaGJHRnVZMlZGY25KdmNpeGNiaUFnVG05MFNXNXBkR2xoYkdsNlpXUkZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lpNHVMeTR1TDNOb1lYSmxaQzlsY25KdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpQjlJR1p5YjIwZ1hDSXVMaTlEYjI1MGNtRmpkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUVGc2JHOTNZVzVqWlN3Z1JWSkRNakJVYjJ0bGJpd2dSVkpETWpCWFlXeHNaWFFnZlNCbWNtOXRJRndpTGk5dGIyUmxiSE5jSWp0Y2JtbHRjRzl5ZENCN0lFOTNibVZ5SUgwZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpDOWtaV052Y21GMGIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmtnZlNCbWNtOXRJRndpTGk0dlJtRmljbWxqUTI5dWRISmhZM1JTWlhCdmMybDBiM0o1WENJN1hHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSXVMaTlEYjI1MGNtRmpkRU52Ym5SbGVIUmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFSmhjMlZGY25KdmNpeGNiaUFnU1c1MFpYSnVZV3hGY25KdmNpeGNiaUFnVG05MFJtOTFibVJGY25KdmNpeGNiaUFnVm1Gc2FXUmhkR2x2YmtWeWNtOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME55ZFdSRGIyNTBjbUZqZENCOUlHWnliMjBnWENJdUxpOWpjblZrTDJOeWRXUXRZMjl1ZEhKaFkzUmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllVTlpYzJWeWRtRmliR1ZJWVc1a2JHVnlJSDBnWm5KdmJTQmNJaTR1TDBaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllVTlpYzJWeWRtRmliR1ZJWVc1a2JHVnlYQ0k3WEc1cGJYQnZjblFnZXlCRlVrTXlNRVYyWlc1MGN5QjlJR1p5YjIwZ1hDSXVMaTh1TGk5emFHRnlaV1F2WlhKak1qQXZaWEpqTWpBdFkyOXVjM1JoYm5SelhDSTdYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVlNRekl3SUhSdmEyVnVJR052Ym5SeVlXTjBJR0poYzJVZ1ptOXlJRWg1Y0dWeWJHVmtaMlZ5SUVaaFluSnBZMXh1SUNvZ1FITjFiVzFoY25rZ1NXMXdiR1Z0Wlc1MGN5QkZVa015TUMxc2FXdGxJSFJ2YTJWdUlHeHZaMmxqSUhWemFXNW5JSEpsY0c5emFYUnZjbWxsY3lCaGJtUWdZV1JoY0hSbGNuTXNJSEJ5YjNacFpHbHVaeUJ6ZEdGdVpHRnlaQ0IwYjJ0bGJpQnZjR1Z5WVhScGIyNXpJSE4xWTJnZ1lYTWdZbUZzWVc1alpTQnhkV1Z5YVdWekxDQjBjbUZ1YzJabGNuTXNJR0Z3Y0hKdmRtRnNjeXdnYldsdWRHbHVaeUJoYm1RZ1luVnlibWx1Wnk1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUMwZ1ZHaGxJR052Ym5SeVlXTjBJRzVoYldVZ2RYTmxaQ0IwYnlCelkyOXdaU0IwYjJ0bGJpQnBaR1Z1ZEdsMGVWeHVJQ29nUUc1dmRHVWdhSFIwY0hNNkx5OWxhWEJ6TG1WMGFHVnlaWFZ0TG05eVp5OUZTVkJUTDJWcGNDMHlNRnh1SUNvZ1FISmxkSFZ5YmlCN2RtOXBaSDFjYmlBcUlFQmpiR0Z6Y3lCR1lXSnlhV05GVWtNeU1FTnZiblJ5WVdOMFhHNGdLaUJBWlhoaGJYQnNaVnh1SUNvZ1kyeGhjM01nVFhsVWIydGxia052Ym5SeVlXTjBJR1Y0ZEdWdVpITWdSbUZpY21salJWSkRNakJEYjI1MGNtRmpkQ0I3WEc0Z0tpQWdJR052Ym5OMGNuVmpkRzl5S0NrZ2V5QnpkWEJsY2lnblRYbFViMnRsYmljcE95QjlYRzRnS2lCOVhHNGdLaUF2THlCVWFHVWdZMjl1ZEhKaFkzUWdaWGh3YjNObGN5QnRaWFJvYjJSeklHeHBhMlVnVkhKaGJuTm1aWElzSUVGd2NISnZkbVVzSUUxcGJuUXNJRUoxY200c0lHVjBZeTVjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRMnhwWlc1MFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTnZiblJ5WVdOMFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGZGhiR3hsZEZKbGNHOWNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdWRzlyWlc1U1pYQnZYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRXhsWkdkbGNseHVJQ29nSUNCRGJHbGxiblF0UGo1RGIyNTBjbUZqZERvZ1ZISmhibk5tWlhJb1kzUjRMQ0IwYnl3Z2RtRnNkV1VwWEc0Z0tpQWdJRU52Ym5SeVlXTjBMVDQrVjJGc2JHVjBVbVZ3YnpvZ2NtVmhaQ2htY205dEtWeHVJQ29nSUNCRGIyNTBjbUZqZEMwK1BsZGhiR3hsZEZKbGNHODZJSEpsWVdRb2RHOHBYRzRnS2lBZ0lFTnZiblJ5WVdOMExUNCtUR1ZrWjJWeU9pQndkWFJUZEdGMFpTaDFjR1JoZEdWa0lHSmhiR0Z1WTJWektWeHVJQ29nSUNCRGIyNTBjbUZqZEMwdFBqNURiR2xsYm5RNklITjFZMk5sYzNOY2JpQXFMMXh1Wlhod2IzSjBJR0ZpYzNSeVlXTjBJR05zWVhOeklFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUWdaWGgwWlc1a2N5QkdZV0p5YVdORGNuVmtRMjl1ZEhKaFkzUThSVkpETWpCWFlXeHNaWFErSUh0Y2JpQWdjSEpwZG1GMFpTQjNZV3hzWlhSU1pYQnZjMmwwYjNKNU9pQkdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25rOFJWSkRNakJYWVd4c1pYUStPMXh1WEc0Z0lIQnlhWFpoZEdVZ2RHOXJaVzVTWlhCdmMybDBiM0o1T2lCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbms4UlZKRE1qQlViMnRsYmo0N1hHNWNiaUFnY0hKcGRtRjBaU0JoYkd4dmQyRnVZMlZTWlhCdmMybDBiM0o1T2lCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbms4UVd4c2IzZGhibU5sUGp0Y2JseHVJQ0J3Y205MFpXTjBaV1FnWTI5dWMzUnlkV04wYjNJb2JtRnRaVG9nYzNSeWFXNW5LU0I3WEc0Z0lDQWdjM1Z3WlhJb2JtRnRaU3dnUlZKRE1qQlhZV3hzWlhRcE8xeHVYRzRnSUNBZ1JtRmljbWxqUlZKRE1qQkRiMjUwY21GamRDNWhaR0Z3ZEdWeUlEMWNiaUFnSUNBZ0lFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUXVZV1JoY0hSbGNpQjhmQ0J1WlhjZ1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuZGhiR3hsZEZKbGNHOXphWFJ2Y25rZ1BTQkdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25rdVptOXlUVzlrWld3b1hHNGdJQ0FnSUNCRlVrTXlNRmRoYkd4bGRDeGNiaUFnSUNBZ0lFWmhZbkpwWTBWU1F6SXdRMjl1ZEhKaFkzUXVZV1JoY0hSbGNpNWhiR2xoYzF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuUnZhMlZ1VW1Wd2IzTnBkRzl5ZVNBOUlFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVM1bWIzSk5iMlJsYkNoY2JpQWdJQ0FnSUVWU1F6SXdWRzlyWlc0c1hHNGdJQ0FnSUNCR1lXSnlhV05GVWtNeU1FTnZiblJ5WVdOMExtRmtZWEIwWlhJdVlXeHBZWE5jYmlBZ0lDQXBPMXh1WEc0Z0lDQWdkR2hwY3k1aGJHeHZkMkZ1WTJWU1pYQnZjMmwwYjNKNUlEMGdSbUZpY21salEyOXVkSEpoWTNSU1pYQnZjMmwwYjNKNUxtWnZjazF2WkdWc0tGeHVJQ0FnSUNBZ1FXeHNiM2RoYm1ObExGeHVJQ0FnSUNBZ1JtRmljbWxqUlZKRE1qQkRiMjUwY21GamRDNWhaR0Z3ZEdWeUxtRnNhV0Z6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdZWE41Ym1NZ1ZHOXJaVzVPWVcxbEtHTnZiblJsZUhRNklFTnZiblJsZUhRcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNElIMGdQU0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWTI5dWRHVjRkRjBzSUhSb2FYTXVWRzlyWlc1T1lXMWxLVHRjYmlBZ0lDQXZMeUJEYUdWamF5QmpiMjUwY21GamRDQnZjSFJwYjI1eklHRnlaU0JoYkhKbFlXUjVJSE5sZENCbWFYSnpkQ0IwYnlCbGVHVmpkWFJsSUhSb1pTQm1kVzVqZEdsdmJseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVEyaGxZMnRKYm1sMGFXRnNhWHBsWkNoamRIZ2dZWE1nWVc1NUtUdGNibHh1SUNBZ0lHTnZibk4wSUhObGJHVmpkQ0E5SUhSb2FYTXVkRzlyWlc1U1pYQnZjMmwwYjNKNUxuTmxiR1ZqZENncE8xeHVJQ0FnSUdOdmJuTjBJSFJ2YTJWdUlEMGdLR0YzWVdsMElITmxiR1ZqZEM1bGVHVmpkWFJsS0dOMGVDa3BXekJkTzF4dVhHNGdJQ0FnY21WMGRYSnVJSFJ2YTJWdUxtNWhiV1U3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1SUhSb1pTQnplVzFpYjJ3Z2IyWWdkR2hsSUhSdmEyVnVMaUJGTG1jdUlPS0FuRWhKV09LQW5TNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1MFpYaDBmU0JqYjI1MFpYaDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQmpiMjUwWlhoMFhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0VGRISnBibWQ5SUZKbGRIVnlibk1nZEdobElITjViV0p2YkNCdlppQjBhR1VnZEc5clpXNWNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ1lYTjVibU1nVTNsdFltOXNLR052Ym5SbGVIUTZJRU52Ym5SbGVIUXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkyOXVkR1Y0ZEYwc0lIUm9hWE11Vkc5clpXNU9ZVzFsS1R0Y2JpQWdJQ0F2THlCRGFHVmpheUJqYjI1MGNtRmpkQ0J2Y0hScGIyNXpJR0Z5WlNCaGJISmxZV1I1SUhObGRDQm1hWEp6ZENCMGJ5QmxlR1ZqZFhSbElIUm9aU0JtZFc1amRHbHZibHh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVRMmhsWTJ0SmJtbDBhV0ZzYVhwbFpDaGpkSGdnWVhNZ1lXNTVLVHRjYmx4dUlDQWdJR052Ym5OMElITmxiR1ZqZENBOUlIUm9hWE11ZEc5clpXNVNaWEJ2YzJsMGIzSjVMbk5sYkdWamRDZ3BPMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnS0dGM1lXbDBJSE5sYkdWamRDNWxlR1ZqZFhSbEtHTjBlQ2twV3pCZE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSdmEyVnVMbk41YldKdmJEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNGdkR2hsSUc1MWJXSmxjaUJ2WmlCa1pXTnBiV0ZzY3lCMGFHVWdkRzlyWlc0Z2RYTmxjMXh1SUNBZ0tpQmxMbWN1SURnc0lHMWxZVzV6SUhSdklHUnBkbWxrWlNCMGFHVWdkRzlyWlc0Z1lXMXZkVzUwSUdKNUlERXdNREF3TURBd01DQjBieUJuWlhRZ2FYUnpJSFZ6WlhJZ2NtVndjbVZ6Wlc1MFlYUnBiMjR1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1EyOXVkR1Y0ZEgwZ1kyOXVkR1Y0ZENCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdUblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0J1ZFcxaVpYSWdiMllnWkdWamFXMWhiSE5jYmlBZ0lDb3ZYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdZWE41Ym1NZ1JHVmphVzFoYkhNb1kyOXVkR1Y0ZERvZ1EyOXVkR1Y0ZENrNklGQnliMjFwYzJVOGJuVnRZbVZ5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhnZ2ZTQTlJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLRnRqYjI1MFpYaDBYU3dnZEdocGN5NVViMnRsYms1aGJXVXBPMXh1SUNBZ0lDOHZJRU5vWldOcklHTnZiblJ5WVdOMElHOXdkR2x2Ym5NZ1lYSmxJR0ZzY21WaFpIa2djMlYwSUdacGNuTjBJSFJ2SUdWNFpXTjFkR1VnZEdobElHWjFibU4wYVc5dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1RGFHVmphMGx1YVhScFlXeHBlbVZrS0dOMGVDQmhjeUJoYm5rcE8xeHVYRzRnSUNBZ1kyOXVjM1FnYzJWc1pXTjBJRDBnZEdocGN5NTBiMnRsYmxKbGNHOXphWFJ2Y25rdWMyVnNaV04wS0NrN1hHNGdJQ0FnWTI5dWMzUWdkRzlyWlc0Z1BTQW9ZWGRoYVhRZ2MyVnNaV04wTG1WNFpXTjFkR1VvWTNSNEtTbGJNRjA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkRzlyWlc0dVpHVmphVzFoYkhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdUlIUm9aU0IwYjNSaGJDQjBiMnRsYmlCemRYQndiSGt1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1EyOXVkR1Y0ZEgwZ1kyOXVkR1Y0ZENCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdUblZ0WW1WeWZTQlNaWFIxY201eklIUm9aU0IwYjNSaGJDQjBiMnRsYmlCemRYQndiSGxjYmlBZ0lDb3ZYRzRnSUVCVWNtRnVjMkZqZEdsdmJpaG1ZV3h6WlNsY2JpQWdZWE41Ym1NZ1ZHOTBZV3hUZFhCd2JIa29ZMjl1ZEdWNGREb2dRMjl1ZEdWNGRDazZJRkJ5YjIxcGMyVThiblZ0WW1WeVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ2dmU0E5SUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0Z0amIyNTBaWGgwWFN3Z2RHaHBjeTVVYjJ0bGJrNWhiV1VwTzF4dUlDQWdJQzh2SUVOb1pXTnJJR052Ym5SeVlXTjBJRzl3ZEdsdmJuTWdZWEpsSUdGc2NtVmhaSGtnYzJWMElHWnBjbk4wSUhSdklHVjRaV04xZEdVZ2RHaGxJR1oxYm1OMGFXOXVYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NURhR1ZqYTBsdWFYUnBZV3hwZW1Wa0tHTjBlQ0JoY3lCaGJua3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wSUQwZ2RHaHBjeTUzWVd4c1pYUlNaWEJ2YzJsMGIzSjVMbk5sYkdWamRDZ3BPMXh1SUNBZ0lHTnZibk4wSUhkaGJHeGxkSE1nUFNCaGQyRnBkQ0J6Wld4bFkzUXVaWGhsWTNWMFpTaGpkSGdwTzF4dVhHNGdJQ0FnYVdZZ0tIZGhiR3hsZEhNdWJHVnVaM1JvSUQwOUlEQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHQlVhR1VnZEc5clpXNGdKSHQwYUdsekxtZGxkRTVoYldVb0tYMGdaRzlsY3lCdWIzUWdaWGhwYzNSZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCc1pYUWdkRzkwWVd3Z1BTQXdPMXh1WEc0Z0lDQWdkMkZzYkdWMGN5NW1iM0pGWVdOb0tDaDNZV3hzWlhRcElEMCtJSHRjYmlBZ0lDQWdJSFJ2ZEdGc0lDczlJSGRoYkd4bGRDNWlZV3hoYm1ObE8xeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUhSdmRHRnNPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVKaGJHRnVZMlZQWmlCeVpYUjFjbTV6SUhSb1pTQmlZV3hoYm1ObElHOW1JSFJvWlNCbmFYWmxiaUJoWTJOdmRXNTBMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFI5SUdOMGVDQjBhR1VnZEhKaGJuTmhZM1JwYjI0Z1kyOXVkR1Y0ZEZ4dUlDQWdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdiM2R1WlhJZ1ZHaGxJRzkzYm1WeUlHWnliMjBnZDJocFkyZ2dkR2hsSUdKaGJHRnVZMlVnZDJsc2JDQmlaU0J5WlhSeWFXVjJaV1JjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMDUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnWVdOamIzVnVkQ0JpWVd4aGJtTmxYRzRnSUNBcUwxeHVJQ0JBVkhKaGJuTmhZM1JwYjI0b1ptRnNjMlVwWEc0Z0lHRnplVzVqSUVKaGJHRnVZMlZQWmloamIyNTBaWGgwT2lCRGIyNTBaWGgwTENCdmQyNWxjam9nYzNSeWFXNW5LVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGxSdmEyVnVUbUZ0WlNrN1hHNGdJQ0FnTHk4Z1EyaGxZMnNnWTI5dWRISmhZM1FnYjNCMGFXOXVjeUJoY21VZ1lXeHlaV0ZrZVNCelpYUWdabWx5YzNRZ2RHOGdaWGhsWTNWMFpTQjBhR1VnWm5WdVkzUnBiMjVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMa05vWldOclNXNXBkR2xoYkdsNlpXUW9ZM1I0SUdGeklHRnVlU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQjNZV3hzWlhRZ1BTQmhkMkZwZENCMGFHbHpMbmRoYkd4bGRGSmxjRzl6YVhSdmNua3VjbVZoWkNodmQyNWxjaXdnWTNSNEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCM1lXeHNaWFF1WW1Gc1lXNWpaVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVWNtRnVjMlpsY2lCMGNtRnVjMlpsY25NZ2RHOXJaVzV6SUdaeWIyMGdZMnhwWlc1MElHRmpZMjkxYm5RZ2RHOGdjbVZqYVhCcFpXNTBJR0ZqWTI5MWJuUXVYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJ5WldOcGNHbGxiblFnWVdOamIzVnVkQ0J0ZFhOMElHSmxJR0VnZG1Gc2FXUWdZMnhwWlc1MFNVUWdZWE1nY21WMGRYSnVaV1FnWW5rZ2RHaGxJRU5zYVdWdWRFRmpZMjkxYm5SSlJDZ3BJR1oxYm1OMGFXOXVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFI5SUdOdmJuUmxlSFFnZEdobElIUnlZVzV6WVdOMGFXOXVJR052Ym5SbGVIUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUhSdklGUm9aU0J5WldOcGNHbGxiblJjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIWmhiSFZsSUZSb1pTQmhiVzkxYm5RZ2IyWWdkRzlyWlc0Z2RHOGdZbVVnZEhKaGJuTm1aWEp5WldSY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMEp2YjJ4bFlXNTlJRkpsZEhWeWJpQjNhR1YwYUdWeUlIUm9aU0IwY21GdWMyWmxjaUIzWVhNZ2MzVmpZMlZ6YzJaMWJDQnZjaUJ1YjNSY2JpQWdJQ292WEc0Z0lFQlVjbUZ1YzJGamRHbHZiaWdwWEc0Z0lHRnplVzVqSUZSeVlXNXpabVZ5S0Z4dUlDQWdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUXNYRzRnSUNBZ2RHODZJSE4wY21sdVp5eGNiaUFnSUNCMllXeDFaVG9nYm5WdFltVnlYRzRnSUNrNklGQnliMjFwYzJVOFltOXZiR1ZoYmo0Z2UxeHVJQ0FnSUM4dklFTm9aV05ySUdOdmJuUnlZV04wSUc5d2RHbHZibk1nWVhKbElHRnNjbVZoWkhrZ2MyVjBJR1pwY25OMElIUnZJR1Y0WldOMWRHVWdkR2hsSUdaMWJtTjBhVzl1WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpiMjUwWlhoMFhTd2dkR2hwY3k1VWNtRnVjMlpsY2lrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1RGFHVmphMGx1YVhScFlXeHBlbVZrS0dOMGVDQmhjeUJoYm5rcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWm5KdmJTQTlJR04wZUM1cFpHVnVkR2wwZVM1blpYUkpSQ2dwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkSEpoYm5ObVpYSlNaWE53SUQwZ1lYZGhhWFFnZEdocGN5NWZkSEpoYm5ObVpYSW9abkp2YlN3Z2RHOHNJSFpoYkhWbExDQmpkSGdwTzF4dUlDQWdJR2xtSUNnaGRISmhibk5tWlhKU1pYTndLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJa1poYVd4bFpDQjBieUIwY21GdWMyWmxjbHdpS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVjbUZ1YzJabGNpQmdkbUZzZFdWZ0lHRnRiM1Z1ZENCdlppQjBiMnRsYm5NZ1puSnZiU0JnWm5KdmJXQWdkRzhnWUhSdllDNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1MFpYaDBmU0JqYjI1MFpYaDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0JtY205dElGUm9aU0J6Wlc1a1pYSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0VGRISnBibWQ5SUhSdklGUm9aU0J5WldOcGNHbGxiblJjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIWmhiSFZsSUZSb1pTQmhiVzkxYm5RZ2IyWWdkRzlyWlc0Z2RHOGdZbVVnZEhKaGJuTm1aWEp5WldSY2JpQWdJQ29nUUhKbGRIVnlibk1nZTBKdmIyeGxZVzU5SUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvWlNCMGNtRnVjMlpsY2lCM1lYTWdjM1ZqWTJWemMyWjFiQ0J2Y2lCdWIzUmNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlncFhHNGdJR0Z6ZVc1aklGUnlZVzV6Wm1WeVJuSnZiU2hjYmlBZ0lDQmpiMjUwWlhoME9pQkRiMjUwWlhoMExGeHVJQ0FnSUdaeWIyMDZJSE4wY21sdVp5eGNiaUFnSUNCMGJ6b2djM1J5YVc1bkxGeHVJQ0FnSUhaaGJIVmxPaUJ1ZFcxaVpYSmNiaUFnS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnTHk4Z1EyaGxZMnNnWTI5dWRISmhZM1FnYjNCMGFXOXVjeUJoY21VZ1lXeHlaV0ZrZVNCelpYUWdabWx5YzNRZ2RHOGdaWGhsWTNWMFpTQjBhR1VnWm5WdVkzUnBiMjVjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGtKMWNtNUdjbTl0S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TGtOb1pXTnJTVzVwZEdsaGJHbDZaV1FvWTNSNElHRnpJR0Z1ZVNrN1hHNWNiaUFnSUNBdkx5QlNaWFJ5YVdWMlpTQjBhR1VnWVd4c2IzZGhibU5sSUc5bUlIUm9aU0J6Y0dWdVpHVnlYRzVjYmlBZ0lDQmpiMjV6ZENCemNHVnVaR1Z5SUQwZ1kzUjRMbWxrWlc1MGFYUjVMbWRsZEVsRUtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCaGJHeHZkMkZ1WTJVZ1BTQmhkMkZwZENCMGFHbHpMbDluWlhSQmJHeHZkMkZ1WTJVb1puSnZiU3dnYzNCbGJtUmxjaXdnWTNSNEtUdGNiaUFnSUNCcFppQW9JV0ZzYkc5M1lXNWpaU0I4ZkNCaGJHeHZkMkZ1WTJVdWRtRnNkV1VnUENBd0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRV3hzYjNkaGJtTmxSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lHQnpjR1Z1WkdWeUlDUjdjM0JsYm1SbGNuMGdhR0Z6SUc1dklHRnNiRzkzWVc1alpTQm1jbTl0SUNSN1puSnZiWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SQmJHeHZkMkZ1WTJVZ1BTQmhiR3h2ZDJGdVkyVXVkbUZzZFdVN1hHNWNiaUFnSUNBdkx5QkRhR1ZqYXlCcFppQjBhR1VnZEhKaGJuTm1aWEp5WldRZ2RtRnNkV1VnYVhNZ2JHVnpjeUIwYUdGdUlIUm9aU0JoYkd4dmQyRnVZMlZjYmlBZ0lDQnBaaUFvWTNWeWNtVnVkRUZzYkc5M1lXNWpaU0E4SUhaaGJIVmxLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUW1Gc1lXNWpaVVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmNJbFJvWlNCemNHVnVaR1Z5SUdSdlpYTWdibTkwSUdoaGRtVWdaVzV2ZFdkb0lHRnNiRzkzWVc1alpTQjBieUJ6Y0dWdVpDNWNJbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJFWldOeVpXRnpaU0IwYUdVZ1lXeHNiM2RoYm1ObFhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpFRnNiRzkzWVc1alpTQTlJSE4xWWloamRYSnlaVzUwUVd4c2IzZGhibU5sTENCMllXeDFaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRV3hzYjNkaGJtTmxJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnWVd4c2IzZGhibU5sTENCN1hHNGdJQ0FnSUNCMllXeDFaVG9nZFhCa1lYUmxaRUZzYkc5M1lXNWpaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WVd4c2IzZGhibU5sVW1Wd2IzTnBkRzl5ZVM1MWNHUmhkR1VvYm1WM1FXeHNiM2RoYm1ObExDQmpkSGdwTzF4dVhHNGdJQ0FnTHk5U1pXRnNhWHBsSUhSb1pTQjBjbUZ1YzJabGNseHVJQ0FnSUdOdmJuTjBJSFJ5WVc1elptVnlVbVZ6Y0NBOUlHRjNZV2wwSUhSb2FYTXVYM1J5WVc1elptVnlLR1p5YjIwc0lIUnZMQ0IyWVd4MVpTd2dZM1I0S1R0Y2JpQWdJQ0JwWmlBb0lYUnlZVzV6Wm1WeVVtVnpjQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YQ0pHWVdsc1pXUWdkRzhnZEhKaGJuTm1aWEpjSWlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFJ5ZFdVN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCZmRISmhibk5tWlhJb1hHNGdJQ0FnWm5KdmJUb2djM1J5YVc1bkxGeHVJQ0FnSUhSdk9pQnpkSEpwYm1jc1hHNGdJQ0FnZG1Gc2RXVTZJRzUxYldKbGNpeGNiaUFnSUNCamRIZzZJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEZ4dUlDQXBJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0JqZEhndWJHOW5aMlZ5TzF4dVhHNGdJQ0FnYVdZZ0tHWnliMjBnUFQwOUlIUnZLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUVhWMGFHOXlhWHBoZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnSUNCY0ltTmhibTV2ZENCMGNtRnVjMlpsY2lCMGJ5QmhibVFnWm5KdmJTQnpZVzFsSUdOc2FXVnVkQ0JoWTJOdmRXNTBYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0haaGJIVmxJRHdnTUNrZ2UxeHVJQ0FnSUNBZ0x5OGdkSEpoYm5ObVpYSWdiMllnTUNCcGN5QmhiR3h2ZDJWa0lHbHVJRVZTUXpJd0xDQnpieUJxZFhOMElIWmhiR2xrWVhSbElHRm5ZV2x1YzNRZ2JtVm5ZWFJwZG1VZ1lXMXZkVzUwYzF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVKaGJHRnVZMlZGY25KdmNpaGNJblJ5WVc1elptVnlJR0Z0YjNWdWRDQmpZVzV1YjNRZ1ltVWdibVZuWVhScGRtVmNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVW1WMGNtbGxkbVVnZEdobElHTjFjbkpsYm5RZ1ltRnNZVzVqWlNCdlppQjBhR1VnYzJWdVpHVnlYRzVjYmlBZ0lDQmpiMjV6ZENCbWNtOXRWMkZzYkdWMElEMGdZWGRoYVhRZ2RHaHBjeTUzWVd4c1pYUlNaWEJ2YzJsMGIzSjVMbkpsWVdRb1puSnZiU3dnWTNSNEtUdGNibHh1SUNBZ0lHTnZibk4wSUdaeWIyMUNZV3hoYm1ObElEMGdabkp2YlZkaGJHeGxkQzVpWVd4aGJtTmxPMXh1WEc0Z0lDQWdMeThnUTJobFkyc2dhV1lnZEdobElITmxibVJsY2lCb1lYTWdaVzV2ZFdkb0lIUnZhMlZ1Y3lCMGJ5QnpjR1Z1WkM1Y2JpQWdJQ0JwWmlBb1puSnZiVUpoYkdGdVkyVWdQQ0IyWVd4MVpTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUpoYkdGdVkyVkZjbkp2Y2loZ1kyeHBaVzUwSUdGalkyOTFiblFnSkh0bWNtOXRmU0JvWVhNZ2FXNXpkV1ptYVdOcFpXNTBJR1oxYm1SekxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRkpsZEhKcFpYWmxJSFJvWlNCamRYSnlaVzUwSUdKaGJHRnVZMlVnYjJZZ2RHaGxJSEpsWTJWd2FXVnVkRnh1WEc0Z0lDQWdiR1YwSUhSdlYyRnNiR1YwT2lCRlVrTXlNRmRoYkd4bGREdGNiaUFnSUNCc1pYUWdibVYzVkc5WFlXeHNaWFE2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnZEc5WFlXeHNaWFFnUFNCaGQyRnBkQ0IwYUdsekxuZGhiR3hsZEZKbGNHOXphWFJ2Y25rdWNtVmhaQ2gwYnl3Z1kzUjRLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0JwWmlBb1pTQnBibk4wWVc1alpXOW1JRUpoYzJWRmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9aUzVqYjJSbElEMDlQU0EwTURRcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCRGNtVmhkR1VnWVNCdVpYY2dkMkZzYkdWMElHWnZjaUIwYUdVZ2JXbHVkR1Z5WEc0Z0lDQWdJQ0FnSUNBZ2RHOVhZV3hzWlhRZ1BTQnVaWGNnUlZKRE1qQlhZV3hzWlhRb2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYVdRNklIUnZMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1ltRnNZVzVqWlRvZ01DeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSdmEyVnVPaUJoZDJGcGRDQjBhR2x6TGxSdmEyVnVUbUZ0WlNoamRIZ2dZWE1nWVc1NUtTeGNiaUFnSUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUNBZ0lDQnVaWGRVYjFkaGJHeGxkQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aUzV0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aU0JoY3lCemRISnBibWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElIUnZRbUZzWVc1alpTQTlJSFJ2VjJGc2JHVjBMbUpoYkdGdVkyVTdYRzVjYmlBZ0lDQXZMeUJWY0dSaGRHVWdkR2hsSUdKaGJHRnVZMlZjYmlBZ0lDQmpiMjV6ZENCbWNtOXRWWEJrWVhSbFpFSmhiR0Z1WTJVZ1BTQnpkV0lvWm5KdmJVSmhiR0Z1WTJVc0lIWmhiSFZsS1R0Y2JpQWdJQ0JqYjI1emRDQjBiMVZ3WkdGMFpXUkNZV3hoYm1ObElEMGdZV1JrS0hSdlFtRnNZVzVqWlN3Z2RtRnNkV1VwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpFWnliMjFYWVd4c1pYUWdQU0JQWW1wbFkzUXVZWE56YVdkdUtIdDlMQ0JtY205dFYyRnNiR1YwTENCN1hHNGdJQ0FnSUNCaVlXeGhibU5sT2lCbWNtOXRWWEJrWVhSbFpFSmhiR0Z1WTJVc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuZGhiR3hsZEZKbGNHOXphWFJ2Y25rdWRYQmtZWFJsS0hWd1pHRjBaV1JHY205dFYyRnNiR1YwTENCamRIZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ2RYQmtZWFJsWkZSdlYyRnNiR1YwSUQwZ1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2RHOVhZV3hzWlhRc0lIdGNiaUFnSUNBZ0lHSmhiR0Z1WTJVNklIUnZWWEJrWVhSbFpFSmhiR0Z1WTJVc1hHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCcFppQW9ibVYzVkc5WFlXeHNaWFFwSUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWQyRnNiR1YwVW1Wd2IzTnBkRzl5ZVM1amNtVmhkR1VvZFhCa1lYUmxaRlJ2VjJGc2JHVjBMQ0JqZEhncE8xeHVJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG5kaGJHeGxkRkpsY0c5emFYUnZjbmt1ZFhCa1lYUmxLSFZ3WkdGMFpXUlViMWRoYkd4bGRDd2dZM1I0S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCRmJXbDBJSFJvWlNCVWNtRnVjMlpsY2lCbGRtVnVkRnh1SUNBZ0lHTnZibk4wSUhSeVlXNXpabVZ5UlhabGJuUWdQU0I3SUdaeWIyMHNJSFJ2TENCMllXeDFaVG9nZG1Gc2RXVWdmVHRjYmx4dUlDQWdJSFJvYVhNdWNtVndiMXh1SUNBZ0lDQWdMbkpsWm5KbGMyZ29YRzRnSUNBZ0lDQWdJRVZTUXpJd1ZHOXJaVzRnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdJQ0JGVWtNeU1FVjJaVzUwY3k1VVVrRk9VMFpGVWl4Y2JpQWdJQ0FnSUNBZ1hDSmNJaXhjYmlBZ0lDQWdJQ0FnZEhKaGJuTm1aWEpGZG1WdWRDeGNiaUFnSUNBZ0lDQWdZM1I0SUdGeklIVnVhMjV2ZDI0Z1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDQWdJQ0FwWEc0Z0lDQWdJQ0F1WTJGMFkyZ29LR1VwSUQwK0lHeHZaeTVsY25KdmNpaGdSbUZwYkdWa0lIUnZJRzV2ZEdsbWVTQjBjbUZ1YzJabGNqb2dKSHRsZldBcEtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVGc2JHOTNjeUJnYzNCbGJtUmxjbUFnZEc4Z2MzQmxibVFnWUhaaGJIVmxZQ0JoYlc5MWJuUWdiMllnZEc5clpXNXpJR1p5YjIwZ2RHaGxJRzkzYm1WeUxpQk9aWGNnUVhCd2NtOTJaU0JqWVd4c2N5QnZkbVZ5Y21sa1pTQjBhR1VnY0hKbGRtbHZkWE1nWVd4c2IzZGhibU5sTGx4dUlDQWdLaUJBYm05MFpTQm9kSFJ3Y3pvdkwyVnBjSE11WlhSb1pYSmxkVzB1YjNKbkwwVkpVRk12Wldsd0xUSXdYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3UTI5dWRHVjRkSDBnWTNSNElIUm9aU0IwY21GdWMyRmpkR2x2YmlCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnpjR1Z1WkdWeUlGUm9aU0J6Y0dWdVpHVnlYRzRnSUNBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCMllXeDFaU0JVYUdVZ1lXMXZkVzUwSUc5bUlIUnZhMlZ1Y3lCMGJ5QmlaU0JoY0hCeWIzWmxaQ0JtYjNJZ2RISmhibk5tWlhKY2JpQWdJQ29nUUhKbGRIVnlibk1nZTBKdmIyeGxZVzU5SUZKbGRIVnliaUIzYUdWMGFHVnlJSFJvWlNCaGNIQnliM1poYkNCM1lYTWdjM1ZqWTJWemMyWjFiQ0J2Y2lCdWIzUmNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlncFhHNGdJR0Z6ZVc1aklFRndjSEp2ZG1Vb1hHNGdJQ0FnWTI5dWRHVjRkRG9nUTI5dWRHVjRkQ3hjYmlBZ0lDQnpjR1Z1WkdWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnZG1Gc2RXVTZJRzUxYldKbGNseHVJQ0FwT2lCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUN3Z1kzUjRRWEpuY3lCOUlEMGdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29XMk52Ym5SbGVIUmRMQ0IwYUdsekxrRndjSEp2ZG1VcE8xeHVJQ0FnSUM4dklFTm9aV05ySUdOdmJuUnlZV04wSUc5d2RHbHZibk1nWVhKbElHRnNjbVZoWkhrZ2MyVjBJR1pwY25OMElIUnZJR1Y0WldOMWRHVWdkR2hsSUdaMWJtTjBhVzl1WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVEYUdWamEwbHVhWFJwWVd4cGVtVmtLR04wZUNCaGN5QmhibmtwTzF4dVhHNGdJQ0FnWTI5dWMzUWdiM2R1WlhJZ1BTQmpkSGd1YVdSbGJuUnBkSGt1WjJWMFNVUW9LVHRjYmx4dUlDQWdJR3hsZENCaGJHeHZkMkZ1WTJVZ1BTQmhkMkZwZENCMGFHbHpMbDluWlhSQmJHeHZkMkZ1WTJVb2IzZHVaWElzSUhOd1pXNWtaWElzSUdOMGVDazdYRzVjYmlBZ0lDQmpiMjV6ZENCdmQyNWxjbGRoYkd4bGRDQTlJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzV5WldGa0tHOTNibVZ5TENBdUxpNWpkSGhCY21kektUdGNibHh1SUNBZ0lHbG1JQ2h2ZDI1bGNsZGhiR3hsZEM1aVlXeGhibU5sSUR3Z2RtRnNkV1VwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCQ1lXeGhibU5sUlhKeWIzSW9ZR05zYVdWdWRDQmhZMk52ZFc1MElDUjdiM2R1WlhKOUlHaGhjeUJwYm5OMVptWnBZMmxsYm5RZ1puVnVaSE11WUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHRnNiRzkzWVc1alpTa2dlMXh1SUNBZ0lDQWdMeThnVDNabGNuZHlhWFJsSUhSb1pTQmhiR3h2ZDJGdVkyVmNiaUFnSUNBZ0lHRnNiRzkzWVc1alpTNTJZV3gxWlNBOUlIWmhiSFZsTzF4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1aGJHeHZkMkZ1WTJWU1pYQnZjMmwwYjNKNUxuVndaR0YwWlNoaGJHeHZkMkZ1WTJVc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCaGJHeHZkMkZ1WTJVZ1BTQnVaWGNnUVd4c2IzZGhibU5sS0h0Y2JpQWdJQ0FnSUNBZ2IzZHVaWEk2SUc5M2JtVnlMRnh1SUNBZ0lDQWdJQ0J6Y0dWdVpHVnlPaUJ6Y0dWdVpHVnlMRnh1SUNBZ0lDQWdJQ0IyWVd4MVpUb2dkbUZzZFdVc1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVoYkd4dmQyRnVZMlZTWlhCdmMybDBiM0o1TG1OeVpXRjBaU2hoYkd4dmQyRnVZMlVzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklFVnRhWFFnZEdobElFRndjSEp2ZG1Gc0lHVjJaVzUwWEc0Z0lDQWdZMjl1YzNRZ1lYQndjbTkyWVd4RmRtVnVkQ0E5SUhzZ2IzZHVaWElzSUhOd1pXNWtaWElzSUhaaGJIVmxPaUIyWVd4MVpTQjlPMXh1SUNBZ0lIUm9hWE11Y21Wd2J5NXlaV1p5WlhOb0tGeHVJQ0FnSUNBZ1JWSkRNakJVYjJ0bGJpQmhjeUJoYm5rc1hHNGdJQ0FnSUNCRlVrTXlNRVYyWlc1MGN5NUJVRkJTVDFaQlRDeGNiaUFnSUNBZ0lGd2lYQ0lzWEc0Z0lDQWdJQ0JoY0hCeWIzWmhiRVYyWlc1MExGeHVJQ0FnSUNBZ1kzUjRJR0Z6SUhWdWEyNXZkMjRnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBYRzRnSUNBZ0tUdGNibHh1SUNBZ0lISmxkSFZ5YmlCMGNuVmxPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nZEdobElHRnRiM1Z1ZENCdlppQjBiMnRsYm5NZ2QyaHBZMmdnWUNCZ0lHbHpJR0ZzYkc5M1pXUWdkRzhnZDJsMGFHUnlZWGNnWm5KdmJTQmdiM2R1WlhKZ0xseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlME52Ym5SbGVIUjlJR04wZUNCMGFHVWdkSEpoYm5OaFkzUnBiMjRnWTI5dWRHVjRkRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UxTjBjbWx1WjMwZ2IzZHVaWElnVkdobElHOTNibVZ5SUc5bUlIUnZhMlZ1YzF4dUlDQWdLaUJBY0dGeVlXMGdlMU4wY21sdVozMGdjM0JsYm1SbGNpQlVhR1VnYzNCbGJtUmxjaUIzYUc4Z1lYSmxJR0ZpYkdVZ2RHOGdkSEpoYm5ObVpYSWdkR2hsSUhSdmEyVnVjMXh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeWZTQlNaWFIxY200Z2RHaGxJR0Z0YjNWdWRDQnZaaUJ5WlcxaGFXNXBibWNnZEc5clpXNXpJR0ZzYkc5M1pXUWdkRzhnYzNCbGJuUmNiaUFnSUNvdlhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ1lYTjVibU1nUVd4c2IzZGhibU5sS0Z4dUlDQWdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUXNYRzRnSUNBZ2IzZHVaWEk2SUhOMGNtbHVaeXhjYmlBZ0lDQnpjR1Z1WkdWeU9pQnpkSEpwYm1kY2JpQWdLVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGtGc2JHOTNZVzVqWlNrN1hHNGdJQ0FnTHk4Z1EyaGxZMnNnWTI5dWRISmhZM1FnYjNCMGFXOXVjeUJoY21VZ1lXeHlaV0ZrZVNCelpYUWdabWx5YzNRZ2RHOGdaWGhsWTNWMFpTQjBhR1VnWm5WdVkzUnBiMjVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMa05vWldOclNXNXBkR2xoYkdsNlpXUW9ZM1I0SUdGeklHRnVlU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmhiR3h2ZDJGdVkyVWdQU0JoZDJGcGRDQjBhR2x6TGw5blpYUkJiR3h2ZDJGdVkyVW9iM2R1WlhJc0lITndaVzVrWlhJc0lHTjBlQ2s3WEc1Y2JpQWdJQ0JwWmlBb0lXRnNiRzkzWVc1alpTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUZzYkc5M1lXNWpaVVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmdjM0JsYm1SbGNpQWtlM053Wlc1a1pYSjlJR2hoY3lCdWJ5QmhiR3h2ZDJGdVkyVWdabkp2YlNBa2UyOTNibVZ5ZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmhiR3h2ZDJGdVkyVXVkbUZzZFdVN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCZloyVjBRV3hzYjNkaGJtTmxLRnh1SUNBZ0lHOTNibVZ5T2lCemRISnBibWNzWEc0Z0lDQWdjM0JsYm1SbGNqb2djM1J5YVc1bkxGeHVJQ0FnSUdOMGVEb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDazZJRkJ5YjIxcGMyVThRV3hzYjNkaGJtTmxQaUI3WEc0Z0lDQWdZMjl1YzNRZ1lXeHNiM2RoYm1ObFEyOXVaR2wwYVc5dUlEMGdRMjl1WkdsMGFXOXVMbUZ1WkNoY2JpQWdJQ0FnSUVOdmJtUnBkR2x2Ymk1aGRIUnlhV0oxZEdVOFFXeHNiM2RoYm1ObFBpaGNJbTkzYm1WeVhDSXBMbVZ4S0c5M2JtVnlLU3hjYmlBZ0lDQWdJRU52Ym1ScGRHbHZiaTVoZEhSeWFXSjFkR1U4UVd4c2IzZGhibU5sUGloY0luTndaVzVrWlhKY0lpa3VaWEVvYzNCbGJtUmxjaWxjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1lXeHNiM2RoYm1ObElEMGdZWGRoYVhRZ2RHaHBjeTVoYkd4dmQyRnVZMlZTWlhCdmMybDBiM0o1WEc0Z0lDQWdJQ0F1YzJWc1pXTjBLQ2xjYmlBZ0lDQWdJQzUzYUdWeVpTaGhiR3h2ZDJGdVkyVkRiMjVrYVhScGIyNHBYRzRnSUNBZ0lDQXVaWGhsWTNWMFpTaGpkSGdwTzF4dUlDQWdJSEpsZEhWeWJpQmhiR3h2ZDJGdVkyVS9MbHN3WFR0Y2JpQWdmVnh1WEc0Z0lDOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQU0JGZUhSbGJtUmxaQ0JHZFc1amRHbHZibk1nUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVMlYwSUc5d2RHbHZibUZzSUdsdVptOXRZWFJwYjI0Z1ptOXlJR0VnZEc5clpXNHVYRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3UTI5dWRHVjRkSDBnWTNSNElIUm9aU0IwY21GdWMyRmpkR2x2YmlCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdVM1J5YVc1bmZTQnVZVzFsSUZSb1pTQnVZVzFsSUc5bUlIUm9aU0IwYjJ0bGJseHVJQ0FnS2lCQWNHRnlZVzBnZTFOMGNtbHVaMzBnYzNsdFltOXNJRlJvWlNCemVXMWliMndnYjJZZ2RHaGxJSFJ2YTJWdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0JrWldOcGJXRnNjeUJVYUdVZ1pHVmphVzFoYkhNZ2IyWWdkR2hsSUhSdmEyVnVYRzRnSUNBcUlFQndZWEpoYlNCN1UzUnlhVzVuZlNCMGIzUmhiRk4xY0hCc2VTQlVhR1VnZEc5MFlXeFRkWEJ3YkhrZ2IyWWdkR2hsSUhSdmEyVnVYRzRnSUNBcUwxeHVJQ0JBVkhKaGJuTmhZM1JwYjI0b0tWeHVJQ0JoYzNsdVl5QkpibWwwYVdGc2FYcGxLR052Ym5SbGVIUTZJRU52Ym5SbGVIUXNJSFJ2YTJWdU9pQkZVa015TUZSdmEyVnVLU0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtGdGpiMjUwWlhoMFhTd2dkR2hwY3k1SmJtbDBhV0ZzYVhwbEtUdGNiaUFnSUNBdkx5QkRhR1ZqYXlCamIyNTBjbUZqZENCdmNIUnBiMjV6SUdGeVpTQnViM1FnWVd4eVpXRmtlU0J6WlhRc0lHTnNhV1Z1ZENCcGN5QnViM1FnWVhWMGFHOXlhWHBsWkNCMGJ5QmphR0Z1WjJVZ2RHaGxiU0J2Ym1ObElHbHVkR2wwYVdGc2FYcGxaRnh1SUNBZ0lHTnZibk4wSUhSdmEyVnVjeUE5SUdGM1lXbDBJSFJvYVhNdWRHOXJaVzVTWlhCdmMybDBiM0o1TG5ObGJHVmpkQ2dwTG1WNFpXTjFkR1VvWTNSNEtUdGNiaUFnSUNCcFppQW9kRzlyWlc1ekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJCZFhSb2IzSnBlbUYwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUZ3aVkyOXVkSEpoWTNRZ2IzQjBhVzl1Y3lCaGNtVWdZV3h5WldGa2VTQnpaWFFzSUdOc2FXVnVkQ0JwY3lCdWIzUWdZWFYwYUc5eWFYcGxaQ0IwYnlCamFHRnVaMlVnZEdobGJWd2lYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lIUnZhMlZ1TG05M2JtVnlJRDBnWTNSNExtbGtaVzUwYVhSNUxtZGxkRWxFS0NrN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuUnZhMlZ1VW1Wd2IzTnBkRzl5ZVM1amNtVmhkR1VvZEc5clpXNHNJR04wZUNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzh2SUVOb1pXTnJjeUIwYUdGMElHTnZiblJ5WVdOMElHOXdkR2x2Ym5NZ2FHRjJaU0JpWldWdUlHRnNjbVZoWkhrZ2FXNXBkR2xoYkdsNlpXUmNiaUFnUUZSeVlXNXpZV04wYVc5dUtHWmhiSE5sS1Z4dUlDQmhjM2x1WXlCRGFHVmphMGx1YVhScFlXeHBlbVZrS0dOdmJuUmxlSFE2SUVOdmJuUmxlSFFwSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUNCOUlEMGdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29XMk52Ym5SbGVIUmRMQ0IwYUdsekxrTm9aV05yU1c1cGRHbGhiR2w2WldRcE8xeHVJQ0FnSUdOdmJuTjBJSFJ2YTJWdWN5QTlJR0YzWVdsMElIUm9hWE11ZEc5clpXNVNaWEJ2YzJsMGIzSjVMbk5sYkdWamRDZ3BMbVY0WldOMWRHVW9ZM1I0S1R0Y2JpQWdJQ0JwWmlBb2RHOXJaVzV6TG14bGJtZDBhQ0E5UFNBd0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dUbTkwU1c1cGRHbGhiR2w2WldSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKamIyNTBjbUZqZENCdmNIUnBiMjV6SUc1bFpXUWdkRzhnWW1VZ2MyVjBJR0psWm05eVpTQmpZV3hzYVc1bklHRnVlU0JtZFc1amRHbHZiaXdnWTJGc2JDQkpibWwwYVdGc2FYcGxLQ2tnZEc4Z2FXNXBkR2xoYkdsNlpTQmpiMjUwY21GamRGd2lYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJOYVc1MElHTnlaV0YwWlhNZ2JtVjNJSFJ2YTJWdWN5QmhibVFnWVdSa2N5QjBhR1Z0SUhSdklHMXBiblJsY2lkeklHRmpZMjkxYm5RZ1ltRnNZVzVqWlZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTnZiblJsZUhSOUlHTnZiblJsZUhRZ2RHaGxJSFJ5WVc1ellXTjBhVzl1SUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHRnRiM1Z1ZENCaGJXOTFiblFnYjJZZ2RHOXJaVzV6SUhSdklHSmxJRzFwYm5SbFpGeHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1QySnFaV04wZlNCVWFHVWdZbUZzWVc1alpWeHVJQ0FnS2k5Y2JpQWdRRTkzYm1WeUtDbGNiaUFnUUZSeVlXNXpZV04wYVc5dUtDbGNiaUFnWVhONWJtTWdUV2x1ZENoamIyNTBaWGgwT2lCRGIyNTBaWGgwTENCaGJXOTFiblE2SUc1MWJXSmxjaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRJSDBnUFNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkyOXVkR1Y0ZEYwc0lIUm9hWE11VFdsdWRDazdYRzRnSUNBZ0x5OGdRMmhsWTJzZ1kyOXVkSEpoWTNRZ2IzQjBhVzl1Y3lCaGNtVWdZV3h5WldGa2VTQnpaWFFnWm1seWMzUWdkRzhnWlhobFkzVjBaU0IwYUdVZ1puVnVZM1JwYjI1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TGtOb1pXTnJTVzVwZEdsaGJHbDZaV1FvWTNSNElHRnpJR0Z1ZVNrN1hHNWNiaUFnSUNBdkx5QkhaWFFnU1VRZ2IyWWdjM1ZpYldsMGRHbHVaeUJqYkdsbGJuUWdhV1JsYm5ScGRIbGNiaUFnSUNCamIyNXpkQ0J0YVc1MFpYSWdQU0JqZEhndWFXUmxiblJwZEhrdVoyVjBTVVFvS1R0Y2JseHVJQ0FnSUdsbUlDaGhiVzkxYm5RZ1BEMGdNQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhjSW0xcGJuUWdZVzF2ZFc1MElHMTFjM1FnWW1VZ1lTQndiM05wZEdsMlpTQnBiblJsWjJWeVhDSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0J0YVc1MFpYSlhZV3hzWlhRNklFVlNRekl3VjJGc2JHVjBPMXh1SUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0J0YVc1MFpYSlhZV3hzWlhRZ1BTQmhkMkZwZENCMGFHbHpMbmRoYkd4bGRGSmxjRzl6YVhSdmNua3VjbVZoWkNodGFXNTBaWElzSUdOMGVDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHTjFjbkpsYm5SQ1lXeGhibU5sSUQwZ2JXbHVkR1Z5VjJGc2JHVjBMbUpoYkdGdVkyVTdYRzVjYmlBZ0lDQWdJR052Ym5OMElIVndaR0YwWldSQ1lXeGhibU5sSUQwZ1lXUmtLR04xY25KbGJuUkNZV3hoYm1ObExDQmhiVzkxYm5RcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCMWNHUmhkR1ZrYldsdWRHVnlJRDBnVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3dnYldsdWRHVnlWMkZzYkdWMExDQjdYRzRnSUNBZ0lDQWdJR0poYkdGdVkyVTZJSFZ3WkdGMFpXUkNZV3hoYm1ObExGeHVJQ0FnSUNBZ2ZTazdYRzVjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzUxY0dSaGRHVW9kWEJrWVhSbFpHMXBiblJsY2l3Z1kzUjRLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0JwWmlBb1pTQnBibk4wWVc1alpXOW1JRUpoYzJWRmNuSnZjaWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9aUzVqYjJSbElEMDlQU0EwTURRcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCRGNtVmhkR1VnWVNCdVpYY2dkMkZzYkdWMElHWnZjaUIwYUdVZ2JXbHVkR1Z5WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYm1WM1YyRnNiR1YwSUQwZ2JtVjNJRVZTUXpJd1YyRnNiR1YwS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJR2xrT2lCdGFXNTBaWElzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmlZV3hoYm1ObE9pQmhiVzkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwYjJ0bGJqb2dZWGRoYVhRZ2RHaHBjeTVVYjJ0bGJrNWhiV1VvWTI5dWRHVjRkQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1M1lXeHNaWFJTWlhCdmMybDBiM0o1TG1OeVpXRjBaU2h1WlhkWFlXeHNaWFFzSUdOMGVDazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aUzV0WlhOellXZGxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9aU0JoY3lCemRISnBibWNwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVWdGFYUWdkR2hsSUZSeVlXNXpabVZ5SUdWMlpXNTBYRzRnSUNBZ1kyOXVjM1FnZEhKaGJuTm1aWEpGZG1WdWRDQTlJSHNnWm5KdmJUb2dYQ0l3ZURCY0lpd2dkRzg2SUcxcGJuUmxjaXdnZG1Gc2RXVTZJR0Z0YjNWdWRDQjlPMXh1SUNBZ0lHTnZibk4wSUdWMlpXNTBTR0Z1Wkd4bGNpQTlYRzRnSUNBZ0lDQjBhR2x6TG5KbGNHOHVUMkp6WlhKMlpYSklZVzVrYkdWeUtDa2dZWE1nUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVUMkp6WlhKMllXSnNaVWhoYm1Sc1pYSTdYRzRnSUNBZ1pYWmxiblJJWVc1a2JHVnlMblZ3WkdGMFpVOWljMlZ5ZG1WeWN5aGNiaUFnSUNBZ0lFVlNRekl3Vkc5clpXNHNYRzRnSUNBZ0lDQkZVa015TUVWMlpXNTBjeTVVVWtGT1UwWkZVaXhjYmlBZ0lDQWdJRndpWENJc1hHNGdJQ0FnSUNCMGNtRnVjMlpsY2tWMlpXNTBMRnh1SUNBZ0lDQWdZM1I0SUdGeklIVnVhMjV2ZDI0Z1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQ2RYSnVJSEpsWkdWbGJTQjBiMnRsYm5NZ1puSnZiU0J0YVc1MFpYSW5jeUJoWTJOdmRXNTBJR0poYkdGdVkyVmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHREYjI1MFpYaDBmU0JqYjI1MFpYaDBJSFJvWlNCMGNtRnVjMkZqZEdsdmJpQmpiMjUwWlhoMFhHNGdJQ0FxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JoYlc5MWJuUWdZVzF2ZFc1MElHOW1JSFJ2YTJWdWN5QjBieUJpWlNCaWRYSnVaV1JjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMDlpYW1WamRIMGdWR2hsSUdKaGJHRnVZMlZjYmlBZ0lDb3ZYRzRnSUVCUGQyNWxjaWdwWEc0Z0lFQlVjbUZ1YzJGamRHbHZiaWdwWEc0Z0lHRnplVzVqSUVKMWNtNG9ZMjl1ZEdWNGREb2dRMjl1ZEdWNGRDd2dZVzF2ZFc1ME9pQnVkVzFpWlhJcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRJSDBnUFNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoYlkyOXVkR1Y0ZEYwc0lIUm9hWE11UW5WeWJpazdYRzRnSUNBZ0x5OGdRMmhsWTJzZ1kyOXVkSEpoWTNRZ2IzQjBhVzl1Y3lCaGNtVWdZV3h5WldGa2VTQnpaWFFnWm1seWMzUWdkRzhnWlhobFkzVjBaU0IwYUdVZ1puVnVZM1JwYjI1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TGtOb1pXTnJTVzVwZEdsaGJHbDZaV1FvWTNSNElHRnpJR0Z1ZVNrN1hHNWNiaUFnSUNCamIyNXpkQ0J0YVc1MFpYSWdQU0JqZEhndWFXUmxiblJwZEhrdVoyVjBTVVFvS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzFwYm5SbGNsZGhiR3hsZENBOUlHRjNZV2wwSUhSb2FYTXVkMkZzYkdWMFVtVndiM05wZEc5eWVTNXlaV0ZrS0cxcGJuUmxjaXdnWTNSNEtUdGNibHh1SUNBZ0lHTnZibk4wSUdOMWNuSmxiblJDWVd4aGJtTmxJRDBnYldsdWRHVnlWMkZzYkdWMExtSmhiR0Z1WTJVN1hHNWNiaUFnSUNCcFppQW9ZM1Z5Y21WdWRFSmhiR0Z1WTJVZ1BDQmhiVzkxYm5RcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkNZV3hoYm1ObFJYSnliM0lvWUUxcGJuUmxjaUJvWVhNZ2FXNXpkV1ptYVdOcFpXNTBJR1oxYm1SekxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhWd1pHRjBaV1JDWVd4aGJtTmxJRDBnYzNWaUtHTjFjbkpsYm5SQ1lXeGhibU5sTENCaGJXOTFiblFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpHMXBiblJsY2lBOUlFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lHMXBiblJsY2xkaGJHeGxkQ3dnZTF4dUlDQWdJQ0FnWW1Gc1lXNWpaVG9nZFhCa1lYUmxaRUpoYkdGdVkyVXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbmRoYkd4bGRGSmxjRzl6YVhSdmNua3VkWEJrWVhSbEtIVndaR0YwWldSdGFXNTBaWElzSUdOMGVDazdYRzVjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdKSHRoYlc5MWJuUjlJSFJ2YTJWdWN5QjNaWEpsSUdKMWNtNWxaR0FwTzF4dVhHNGdJQ0FnTHk4Z1JXMXBkQ0IwYUdVZ1ZISmhibk5tWlhJZ1pYWmxiblJjYmlBZ0lDQmpiMjV6ZENCMGNtRnVjMlpsY2tWMlpXNTBJRDBnZXlCbWNtOXRPaUJ0YVc1MFpYSXNJSFJ2T2lCY0lqQjRNRndpTENCMllXeDFaVG9nWVcxdmRXNTBJSDA3WEc0Z0lDQWdZMjl1YzNRZ1pYWmxiblJJWVc1a2JHVnlJRDFjYmlBZ0lDQWdJSFJvYVhNdWNtVndieTVQWW5ObGNuWmxja2hoYm1Sc1pYSW9LU0JoY3lCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmxQWW5ObGNuWmhZbXhsU0dGdVpHeGxjanRjYmlBZ0lDQmxkbVZ1ZEVoaGJtUnNaWEl1ZFhCa1lYUmxUMkp6WlhKMlpYSnpLRnh1SUNBZ0lDQWdSVkpETWpCVWIydGxiaXhjYmlBZ0lDQWdJRVZTUXpJd1JYWmxiblJ6TGxSU1FVNVRSa1ZTTEZ4dUlDQWdJQ0FnWENKY0lpeGNiaUFnSUNBZ0lIUnlZVzV6Wm1WeVJYWmxiblFzWEc0Z0lDQWdJQ0JqZEhnZ1lYTWdkVzVyYm05M2JpQmhjeUJHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhSY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFSjFjbTVHY205dElISmxaR1ZsYlNCMGIydGxibk1nWm5KdmJTQmhZMk52ZFc1MElHRnNiRzkzWlc1alpTQmhibVFnWW1Gc1lXNWpaVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFI5SUdOdmJuUmxlSFFnZEdobElIUnlZVzV6WVdOMGFXOXVJR052Ym5SbGVIUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdGalkyOTFiblFnWVdOamIzVnVkQ0JtY205dElIZG9aWEpsSUhSdmEyVnVjeUIzYVd4c0lHSmxJR0oxY201bFpGeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWVcxdmRXNTBJR0Z0YjNWdWRDQnZaaUIwYjJ0bGJuTWdkRzhnWW1VZ1luVnlibVZrWEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRQWW1wbFkzUjlJRlJvWlNCaVlXeGhibU5sWEc0Z0lDQXFMMXh1SUNCQVQzZHVaWElvS1Z4dUlDQkFWSEpoYm5OaFkzUnBiMjRvS1Z4dUlDQmhjM2x1WXlCQ2RYSnVSbkp2YlNoY2JpQWdJQ0JqYjI1MFpYaDBPaUJEYjI1MFpYaDBMRnh1SUNBZ0lHRmpZMjkxYm5RNklITjBjbWx1Wnl4Y2JpQWdJQ0JoYlc5MWJuUTZJRzUxYldKbGNseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNElIMGdQU0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWTI5dWRHVjRkRjBzSUhSb2FYTXVRblZ5YmtaeWIyMHBPMXh1SUNBZ0lDOHZJRU5vWldOcklHTnZiblJ5WVdOMElHOXdkR2x2Ym5NZ1lYSmxJR0ZzY21WaFpIa2djMlYwSUdacGNuTjBJSFJ2SUdWNFpXTjFkR1VnZEdobElHWjFibU4wYVc5dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1RGFHVmphMGx1YVhScFlXeHBlbVZrS0dOMGVDQmhjeUJoYm5rcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWVdOamIzVnVkRmRoYkd4bGRDQTlJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzV5WldGa0tHRmpZMjkxYm5Rc0lHTjBlQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFFtRnNZVzVqWlNBOUlHRmpZMjkxYm5SWFlXeHNaWFF1WW1Gc1lXNWpaVHRjYmx4dUlDQWdJR2xtSUNoamRYSnlaVzUwUW1Gc1lXNWpaU0E4SUdGdGIzVnVkQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVKaGJHRnVZMlZGY25KdmNpaGdKSHRoWTJOdmRXNTBmU0JvWVhNZ2FXNXpkV1ptYVdOcFpXNTBJR1oxYm1SekxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhWd1pHRjBaV1JDWVd4aGJtTmxJRDBnYzNWaUtHTjFjbkpsYm5SQ1lXeGhibU5sTENCaGJXOTFiblFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbFpHRmpZMjkxYm5RZ1BTQlBZbXBsWTNRdVlYTnphV2R1S0h0OUxDQmhZMk52ZFc1MFYyRnNiR1YwTENCN1hHNGdJQ0FnSUNCaVlXeGhibU5sT2lCMWNHUmhkR1ZrUW1Gc1lXNWpaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11ZDJGc2JHVjBVbVZ3YjNOcGRHOXllUzUxY0dSaGRHVW9kWEJrWVhSbFpHRmpZMjkxYm5Rc0lHTjBlQ2s3WEc1Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnSkh0aGJXOTFiblI5SUhSdmEyVnVjeUIzWlhKbElHSjFjbTVsWkNCbWNtOXRJQ1I3WVdOamIzVnVkSDFnS1R0Y2JseHVJQ0FnSUM4dklFVnRhWFFnZEdobElGUnlZVzV6Wm1WeUlHVjJaVzUwWEc0Z0lDQWdZMjl1YzNRZ2RISmhibk5tWlhKRmRtVnVkQ0E5SUhzZ1puSnZiVG9nWVdOamIzVnVkQ3dnZEc4NklGd2lNSGd3WENJc0lIWmhiSFZsT2lCaGJXOTFiblFnZlR0Y2JpQWdJQ0JqYjI1emRDQmxkbVZ1ZEVoaGJtUnNaWElnUFZ4dUlDQWdJQ0FnZEdocGN5NXlaWEJ2TGs5aWMyVnlkbVZ5U0dGdVpHeGxjaWdwSUdGeklFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVU5aWMyVnlkbUZpYkdWSVlXNWtiR1Z5TzF4dUlDQWdJR1YyWlc1MFNHRnVaR3hsY2k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1vWEc0Z0lDQWdJQ0JGVWtNeU1GUnZhMlZ1TEZ4dUlDQWdJQ0FnUlZKRE1qQkZkbVZ1ZEhNdVZGSkJUbE5HUlZJc1hHNGdJQ0FnSUNCY0lsd2lMRnh1SUNBZ0lDQWdkSEpoYm5ObVpYSkZkbVZ1ZEN4Y2JpQWdJQ0FnSUdOMGVDQmhjeUIxYm10dWIzZHVJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRGeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMnhwWlc1MFFXTmpiM1Z1ZEVKaGJHRnVZMlVnY21WMGRYSnVjeUIwYUdVZ1ltRnNZVzVqWlNCdlppQjBhR1VnY21WeGRXVnpkR2x1WnlCamJHbGxiblFuY3lCaFkyTnZkVzUwTGx4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwTnZiblJsZUhSOUlHTnZiblJsZUhRZ2RHaGxJSFJ5WVc1ellXTjBhVzl1SUdOdmJuUmxlSFJjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMDUxYldKbGNuMGdVbVYwZFhKdWN5QjBhR1VnWVdOamIzVnVkQ0JpWVd4aGJtTmxYRzRnSUNBcUwxeHVJQ0JBVkhKaGJuTmhZM1JwYjI0b1ptRnNjMlVwWEc0Z0lHRnplVzVqSUVOc2FXVnVkRUZqWTI5MWJuUkNZV3hoYm1ObEtHTnZiblJsZUhRNklFTnZiblJsZUhRcE9pQlFjbTl0YVhObFBHNTFiV0psY2o0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNElIMGdQU0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hiWTI5dWRHVjRkRjBzSUhSb2FYTXVWRzlyWlc1T1lXMWxLVHRjYmlBZ0lDQXZMeUJEYUdWamF5QmpiMjUwY21GamRDQnZjSFJwYjI1eklHRnlaU0JoYkhKbFlXUjVJSE5sZENCbWFYSnpkQ0IwYnlCbGVHVmpkWFJsSUhSb1pTQm1kVzVqZEdsdmJseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVEyaGxZMnRKYm1sMGFXRnNhWHBsWkNoamRIZ2dZWE1nWVc1NUtUdGNibHh1SUNBZ0lDOHZJRWRsZENCSlJDQnZaaUJ6ZFdKdGFYUjBhVzVuSUdOc2FXVnVkQ0JwWkdWdWRHbDBlVnh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkRUZqWTI5MWJuUkpSQ0E5SUdOMGVDNXBaR1Z1ZEdsMGVTNW5aWFJKUkNncE8xeHVYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBWMkZzYkdWMElEMGdZWGRoYVhRZ2RHaHBjeTUzWVd4c1pYUlNaWEJ2YzJsMGIzSjVMbkpsWVdRb1kyeHBaVzUwUVdOamIzVnVkRWxFTENCamRIZ3BPMXh1WEc0Z0lDQWdhV1lnS0NGamJHbGxiblJYWVd4c1pYUXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJDWVd4aGJtTmxSWEp5YjNJb1lGUm9aU0JoWTJOdmRXNTBJQ1I3WTJ4cFpXNTBRV05qYjNWdWRFbEVmU0JrYjJWeklHNXZkQ0JsZUdsemRHQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCamJHbGxiblJYWVd4c1pYUXVZbUZzWVc1alpUdGNiaUFnZlZ4dVhHNGdJQzh2SUVOc2FXVnVkRUZqWTI5MWJuUkpSQ0J5WlhSMWNtNXpJSFJvWlNCcFpDQnZaaUIwYUdVZ2NtVnhkV1Z6ZEdsdVp5QmpiR2xsYm5RbmN5QmhZMk52ZFc1MExseHVJQ0F2THlCSmJpQjBhR2x6SUdsdGNHeGxiV1Z1ZEdGMGFXOXVMQ0IwYUdVZ1kyeHBaVzUwSUdGalkyOTFiblFnU1VRZ2FYTWdkR2hsSUdOc2FXVnVkRWxrSUdsMGMyVnNaaTVjYmlBZ0x5OGdWWE5sY25NZ1kyRnVJSFZ6WlNCMGFHbHpJR1oxYm1OMGFXOXVJSFJ2SUdkbGRDQjBhR1ZwY2lCdmQyNGdZV05qYjNWdWRDQnBaQ3dnZDJocFkyZ2dkR2hsZVNCallXNGdkR2hsYmlCbmFYWmxJSFJ2SUc5MGFHVnljeUJoY3lCMGFHVWdjR0Y1YldWdWRDQmhaR1J5WlhOelhHNGdJRUJVY21GdWMyRmpkR2x2YmlobVlXeHpaU2xjYmlBZ1lYTjVibU1nUTJ4cFpXNTBRV05qYjNWdWRFbEVLR052Ym5SbGVIUTZJRU52Ym5SbGVIUXBJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlQ0I5SUQwZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1cyTnZiblJsZUhSZExDQjBhR2x6TGtOc2FXVnVkRUZqWTI5MWJuUkpSQ2s3WEc0Z0lDQWdMeThnUTJobFkyc2dZMjl1ZEhKaFkzUWdiM0IwYVc5dWN5QmhjbVVnWVd4eVpXRmtlU0J6WlhRZ1ptbHljM1FnZEc4Z1pYaGxZM1YwWlNCMGFHVWdablZ1WTNScGIyNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxrTm9aV05yU1c1cGRHbGhiR2w2WldRb1kzUjRJR0Z6SUdGdWVTazdYRzVjYmlBZ0lDQXZMeUJIWlhRZ1NVUWdiMllnYzNWaWJXbDBkR2x1WnlCamJHbGxiblFnYVdSbGJuUnBkSGxjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblJCWTJOdmRXNTBTVVFnUFNCamRIZ3VhV1JsYm5ScGRIa3VaMlYwU1VRb0tUdGNiaUFnSUNCeVpYUjFjbTRnWTJ4cFpXNTBRV05qYjNWdWRFbEVPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==