@decaf-ts/integrations 0.3.2 → 0.3.4

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 (597) hide show
  1. package/dist/integrations.cjs +48 -2
  2. package/dist/integrations.js +49 -2
  3. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  4. package/lib/cjs/blob/azure/index.cjs +2 -2
  5. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  6. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  11. package/lib/cjs/blob/core/index.cjs +2 -2
  12. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  13. package/lib/cjs/blob/gcp/index.cjs +2 -2
  14. package/lib/cjs/blob/index.cjs +2 -2
  15. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  16. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  17. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  18. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  19. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  20. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  21. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  22. package/lib/cjs/blob/local/index.cjs +2 -2
  23. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/memory/index.cjs +2 -2
  25. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  26. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  28. package/lib/cjs/blob/s3/index.cjs +2 -2
  29. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  30. package/lib/cjs/docker/index.cjs +2 -2
  31. package/lib/cjs/graph/constants.cjs +2 -2
  32. package/lib/cjs/graph/decorators.cjs +2 -2
  33. package/lib/cjs/graph/errors/GraphCycleError.cjs +2 -2
  34. package/lib/cjs/graph/errors/GraphExecutionError.cjs +2 -2
  35. package/lib/cjs/graph/errors/GraphInputError.cjs +2 -2
  36. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +2 -2
  37. package/lib/cjs/graph/errors/GraphPinningError.cjs +2 -2
  38. package/lib/cjs/graph/errors/GraphPortError.cjs +2 -2
  39. package/lib/cjs/graph/errors/GraphStoreError.cjs +2 -2
  40. package/lib/cjs/graph/errors/GraphTopologyError.cjs +2 -2
  41. package/lib/cjs/graph/errors/index.cjs +2 -2
  42. package/lib/cjs/graph/events/GraphExecutionEvent.cjs +2 -2
  43. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +2 -2
  44. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +2 -2
  45. package/lib/cjs/graph/events/GraphExecutionObserver.cjs +2 -2
  46. package/lib/cjs/graph/events/index.cjs +2 -2
  47. package/lib/cjs/graph/execution/GraphExecutionContext.cjs +2 -2
  48. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +3 -2
  49. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +2 -2
  50. package/lib/cjs/graph/execution/GraphExecutionResult.cjs +2 -2
  51. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +2 -2
  52. package/lib/cjs/graph/execution/index.cjs +2 -2
  53. package/lib/cjs/graph/index.cjs +2 -2
  54. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +2 -2
  55. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +2 -2
  56. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +2 -2
  57. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +2 -2
  58. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +2 -2
  59. package/lib/cjs/graph/loops/index.cjs +2 -2
  60. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +2 -2
  61. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +2 -2
  62. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +2 -2
  63. package/lib/cjs/graph/pinning/GraphPinningService.cjs +2 -2
  64. package/lib/cjs/graph/pinning/index.cjs +2 -2
  65. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +2 -2
  66. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +2 -2
  67. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +2 -2
  68. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +2 -2
  69. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +2 -2
  70. package/lib/cjs/graph/planning/GraphRelationResolver.cjs +2 -2
  71. package/lib/cjs/graph/planning/GraphTopology.cjs +2 -2
  72. package/lib/cjs/graph/planning/index.cjs +2 -2
  73. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +2 -2
  74. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +2 -2
  75. package/lib/cjs/graph/registry/index.cjs +2 -2
  76. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
  77. package/lib/cjs/graph/snapshots/index.cjs +2 -2
  78. package/lib/cjs/graph/store/GraphCachedValue.cjs +2 -2
  79. package/lib/cjs/graph/store/GraphValueKey.cjs +2 -2
  80. package/lib/cjs/graph/store/GraphValueStore.cjs +2 -2
  81. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +2 -2
  82. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
  83. package/lib/cjs/graph/store/index.cjs +2 -2
  84. package/lib/cjs/graph/types.cjs +2 -2
  85. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +2 -2
  86. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +2 -2
  87. package/lib/cjs/graph/validation/GraphValueValidator.cjs +2 -2
  88. package/lib/cjs/graph/validation/index.cjs +2 -2
  89. package/lib/cjs/index.cjs +5 -5
  90. package/lib/cjs/keycloak/index.cjs +2 -2
  91. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +4 -4
  92. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +4 -4
  93. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +4 -4
  94. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +4 -4
  95. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +4 -4
  96. package/lib/cjs/keycloak/services/KeycloakService.cjs +30 -22
  97. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +4 -4
  98. package/lib/cjs/keycloak/services/index.cjs +2 -2
  99. package/lib/cjs/keycloak/types.cjs +2 -2
  100. package/lib/cjs/kibana/helpers.cjs +2 -2
  101. package/lib/cjs/kibana/index.cjs +2 -2
  102. package/lib/cjs/kibana/services/KibanaAuthService.cjs +5 -5
  103. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +5 -5
  104. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +4 -4
  105. package/lib/cjs/kibana/services/KibanaRoleService.cjs +4 -4
  106. package/lib/cjs/kibana/services/KibanaService.cjs +27 -19
  107. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +4 -4
  108. package/lib/cjs/kibana/services/KibanaUserService.cjs +4 -4
  109. package/lib/cjs/kibana/services/index.cjs +2 -2
  110. package/lib/cjs/kibana/types.cjs +2 -2
  111. package/lib/cjs/nest/authService.cjs +2 -2
  112. package/lib/cjs/nest/index.cjs +2 -2
  113. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  114. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  115. package/lib/cjs/nest/logging.cjs +2 -2
  116. package/lib/cjs/nest/types.cjs +2 -2
  117. package/lib/cjs/nest/utils.cjs +2 -2
  118. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  119. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  120. package/lib/cjs/secrets/aws/index.cjs +2 -2
  121. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  122. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  123. package/lib/cjs/secrets/azure/index.cjs +2 -2
  124. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  125. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  126. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  127. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  128. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  129. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  130. package/lib/cjs/secrets/core/index.cjs +2 -2
  131. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  132. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  133. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  134. package/lib/cjs/secrets/index.cjs +2 -2
  135. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  136. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  137. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  138. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  139. package/lib/cjs/secrets/model/index.cjs +2 -2
  140. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  141. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  142. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  143. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  144. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  145. package/lib/cjs/secrets/vault/index.cjs +2 -2
  146. package/lib/cjs/shared/runtime.cjs +2 -2
  147. package/lib/cjs/utils.cjs +2 -2
  148. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  149. package/lib/esm/blob/azure/index.js +1 -1
  150. package/lib/esm/blob/core/BlobErrors.js +1 -1
  151. package/lib/esm/blob/core/BlobKey.js +1 -1
  152. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  153. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  154. package/lib/esm/blob/core/BlobTypes.js +1 -1
  155. package/lib/esm/blob/core/BlobValue.js +1 -1
  156. package/lib/esm/blob/core/index.js +1 -1
  157. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  158. package/lib/esm/blob/gcp/index.js +1 -1
  159. package/lib/esm/blob/index.js +1 -1
  160. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  161. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  162. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  163. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  164. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  165. package/lib/esm/blob/ipfs/index.js +1 -1
  166. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  167. package/lib/esm/blob/local/index.js +1 -1
  168. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  169. package/lib/esm/blob/memory/index.js +1 -1
  170. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  171. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  172. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  173. package/lib/esm/blob/s3/index.js +1 -1
  174. package/lib/esm/docker/DockerComposeService.js +1 -1
  175. package/lib/esm/docker/index.js +1 -1
  176. package/lib/esm/graph/constants.js +1 -1
  177. package/lib/esm/graph/decorators.js +1 -1
  178. package/lib/esm/graph/errors/GraphCycleError.js +1 -1
  179. package/lib/esm/graph/errors/GraphExecutionError.js +1 -1
  180. package/lib/esm/graph/errors/GraphInputError.js +1 -1
  181. package/lib/esm/graph/errors/GraphLoopLimitError.js +1 -1
  182. package/lib/esm/graph/errors/GraphPinningError.js +1 -1
  183. package/lib/esm/graph/errors/GraphPortError.js +1 -1
  184. package/lib/esm/graph/errors/GraphStoreError.js +1 -1
  185. package/lib/esm/graph/errors/GraphTopologyError.js +1 -1
  186. package/lib/esm/graph/errors/index.js +1 -1
  187. package/lib/esm/graph/events/GraphExecutionEvent.js +1 -1
  188. package/lib/esm/graph/events/GraphExecutionEventEmitter.js +1 -1
  189. package/lib/esm/graph/events/GraphExecutionEventFactory.js +1 -1
  190. package/lib/esm/graph/events/GraphExecutionObserver.js +1 -1
  191. package/lib/esm/graph/events/index.js +1 -1
  192. package/lib/esm/graph/execution/GraphExecutionContext.js +1 -1
  193. package/lib/esm/graph/execution/GraphExecutionEngine.js +2 -1
  194. package/lib/esm/graph/execution/GraphExecutionFrame.js +1 -1
  195. package/lib/esm/graph/execution/GraphExecutionResult.js +1 -1
  196. package/lib/esm/graph/execution/GraphNodeExecutor.js +1 -1
  197. package/lib/esm/graph/execution/index.js +1 -1
  198. package/lib/esm/graph/index.js +1 -1
  199. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +1 -1
  200. package/lib/esm/graph/loops/GraphConditionEvaluator.js +1 -1
  201. package/lib/esm/graph/loops/GraphLoopExecutionContext.js +1 -1
  202. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +1 -1
  203. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +1 -1
  204. package/lib/esm/graph/loops/index.js +1 -1
  205. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +1 -1
  206. package/lib/esm/graph/pinning/GraphPinningMetadata.js +1 -1
  207. package/lib/esm/graph/pinning/GraphPinningPolicy.js +1 -1
  208. package/lib/esm/graph/pinning/GraphPinningService.js +1 -1
  209. package/lib/esm/graph/pinning/index.js +1 -1
  210. package/lib/esm/graph/planning/GraphExecutionPlan.js +1 -1
  211. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +1 -1
  212. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +1 -1
  213. package/lib/esm/graph/planning/GraphExecutionPlanNode.js +1 -1
  214. package/lib/esm/graph/planning/GraphExecutionPlanner.js +1 -1
  215. package/lib/esm/graph/planning/GraphRelationResolver.js +1 -1
  216. package/lib/esm/graph/planning/GraphTopology.js +1 -1
  217. package/lib/esm/graph/planning/index.js +1 -1
  218. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +1 -1
  219. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +1 -1
  220. package/lib/esm/graph/registry/index.js +1 -1
  221. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +1 -1
  222. package/lib/esm/graph/snapshots/index.js +1 -1
  223. package/lib/esm/graph/store/GraphCachedValue.js +1 -1
  224. package/lib/esm/graph/store/GraphValueKey.js +1 -1
  225. package/lib/esm/graph/store/GraphValueStore.js +1 -1
  226. package/lib/esm/graph/store/GraphValueStoreAdapter.js +1 -1
  227. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +1 -1
  228. package/lib/esm/graph/store/index.js +1 -1
  229. package/lib/esm/graph/types.js +1 -1
  230. package/lib/esm/graph/validation/GraphDefinitionValidator.js +1 -1
  231. package/lib/esm/graph/validation/GraphPortSchemaResolver.js +1 -1
  232. package/lib/esm/graph/validation/GraphValueValidator.js +1 -1
  233. package/lib/esm/graph/validation/index.js +1 -1
  234. package/lib/esm/index.js +4 -4
  235. package/lib/esm/keycloak/index.js +1 -1
  236. package/lib/esm/keycloak/services/KeycloakAuthService.js +3 -3
  237. package/lib/esm/keycloak/services/KeycloakClientService.js +3 -3
  238. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +3 -3
  239. package/lib/esm/keycloak/services/KeycloakRealmService.js +3 -3
  240. package/lib/esm/keycloak/services/KeycloakRoleService.js +3 -3
  241. package/lib/esm/keycloak/services/KeycloakService.js +29 -21
  242. package/lib/esm/keycloak/services/KeycloakUserService.js +3 -3
  243. package/lib/esm/keycloak/services/index.js +1 -1
  244. package/lib/esm/keycloak/types.js +1 -1
  245. package/lib/esm/kibana/helpers.js +1 -1
  246. package/lib/esm/kibana/index.js +1 -1
  247. package/lib/esm/kibana/services/KibanaAuthService.js +4 -4
  248. package/lib/esm/kibana/services/KibanaDashboardService.js +4 -4
  249. package/lib/esm/kibana/services/KibanaDataViewService.js +3 -3
  250. package/lib/esm/kibana/services/KibanaRoleService.js +3 -3
  251. package/lib/esm/kibana/services/KibanaService.js +26 -18
  252. package/lib/esm/kibana/services/KibanaSpaceService.js +3 -3
  253. package/lib/esm/kibana/services/KibanaUserService.js +3 -3
  254. package/lib/esm/kibana/services/index.js +1 -1
  255. package/lib/esm/kibana/types.js +1 -1
  256. package/lib/esm/nest/authService.js +1 -1
  257. package/lib/esm/nest/index.js +1 -1
  258. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  259. package/lib/esm/nest/keycloakModule.js +1 -1
  260. package/lib/esm/nest/logging.js +1 -1
  261. package/lib/esm/nest/types.js +1 -1
  262. package/lib/esm/nest/utils.js +1 -1
  263. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  264. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  265. package/lib/esm/secrets/aws/index.js +1 -1
  266. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  267. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  268. package/lib/esm/secrets/azure/index.js +1 -1
  269. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  270. package/lib/esm/secrets/core/SecretName.js +1 -1
  271. package/lib/esm/secrets/core/SecretReference.js +1 -1
  272. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  273. package/lib/esm/secrets/core/SecretService.js +1 -1
  274. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  275. package/lib/esm/secrets/core/index.js +1 -1
  276. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  277. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  278. package/lib/esm/secrets/gcp/index.js +1 -1
  279. package/lib/esm/secrets/index.js +1 -1
  280. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  281. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  282. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  283. package/lib/esm/secrets/model/Secret.js +1 -1
  284. package/lib/esm/secrets/model/index.js +1 -1
  285. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  286. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  287. package/lib/esm/secrets/onepassword/index.js +1 -1
  288. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  289. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  290. package/lib/esm/secrets/vault/index.js +1 -1
  291. package/lib/esm/shared/runtime.js +1 -1
  292. package/lib/esm/utils.js +1 -1
  293. package/lib/types/graph/execution/GraphExecutionEngine.d.cts +7 -0
  294. package/lib/types/graph/execution/GraphExecutionEngine.d.mts +7 -0
  295. package/lib/types/index.d.cts +2 -2
  296. package/lib/types/index.d.mts +2 -2
  297. package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
  298. package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
  299. package/lib/types/keycloak/types.d.cts +1 -4
  300. package/lib/types/keycloak/types.d.mts +1 -4
  301. package/lib/types/kibana/services/KibanaService.d.cts +2 -1
  302. package/lib/types/kibana/services/KibanaService.d.mts +2 -1
  303. package/lib/types/kibana/types.d.cts +1 -4
  304. package/lib/types/kibana/types.d.mts +1 -4
  305. package/package.json +1 -1
  306. package/dist/integrations.cjs.map +0 -1
  307. package/dist/integrations.js.map +0 -1
  308. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  309. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  310. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  311. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  312. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  313. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  314. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  315. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  316. package/lib/cjs/blob/core/index.cjs.map +0 -1
  317. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  318. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  319. package/lib/cjs/blob/index.cjs.map +0 -1
  320. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
  321. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
  322. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
  323. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
  324. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
  325. package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
  326. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  327. package/lib/cjs/blob/local/index.cjs.map +0 -1
  328. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  329. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  330. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  331. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  332. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  333. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  334. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  335. package/lib/cjs/docker/index.cjs.map +0 -1
  336. package/lib/cjs/graph/constants.cjs.map +0 -1
  337. package/lib/cjs/graph/decorators.cjs.map +0 -1
  338. package/lib/cjs/graph/errors/GraphCycleError.cjs.map +0 -1
  339. package/lib/cjs/graph/errors/GraphExecutionError.cjs.map +0 -1
  340. package/lib/cjs/graph/errors/GraphInputError.cjs.map +0 -1
  341. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs.map +0 -1
  342. package/lib/cjs/graph/errors/GraphPinningError.cjs.map +0 -1
  343. package/lib/cjs/graph/errors/GraphPortError.cjs.map +0 -1
  344. package/lib/cjs/graph/errors/GraphStoreError.cjs.map +0 -1
  345. package/lib/cjs/graph/errors/GraphTopologyError.cjs.map +0 -1
  346. package/lib/cjs/graph/errors/index.cjs.map +0 -1
  347. package/lib/cjs/graph/events/GraphExecutionEvent.cjs.map +0 -1
  348. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs.map +0 -1
  349. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs.map +0 -1
  350. package/lib/cjs/graph/events/GraphExecutionObserver.cjs.map +0 -1
  351. package/lib/cjs/graph/events/index.cjs.map +0 -1
  352. package/lib/cjs/graph/execution/GraphExecutionContext.cjs.map +0 -1
  353. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs.map +0 -1
  354. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs.map +0 -1
  355. package/lib/cjs/graph/execution/GraphExecutionResult.cjs.map +0 -1
  356. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs.map +0 -1
  357. package/lib/cjs/graph/execution/index.cjs.map +0 -1
  358. package/lib/cjs/graph/index.cjs.map +0 -1
  359. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
  360. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs.map +0 -1
  361. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs.map +0 -1
  362. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs.map +0 -1
  363. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs.map +0 -1
  364. package/lib/cjs/graph/loops/index.cjs.map +0 -1
  365. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
  366. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs.map +0 -1
  367. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs.map +0 -1
  368. package/lib/cjs/graph/pinning/GraphPinningService.cjs.map +0 -1
  369. package/lib/cjs/graph/pinning/index.cjs.map +0 -1
  370. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs.map +0 -1
  371. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs.map +0 -1
  372. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs.map +0 -1
  373. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs.map +0 -1
  374. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs.map +0 -1
  375. package/lib/cjs/graph/planning/GraphRelationResolver.cjs.map +0 -1
  376. package/lib/cjs/graph/planning/GraphTopology.cjs.map +0 -1
  377. package/lib/cjs/graph/planning/index.cjs.map +0 -1
  378. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
  379. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs.map +0 -1
  380. package/lib/cjs/graph/registry/index.cjs.map +0 -1
  381. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
  382. package/lib/cjs/graph/snapshots/index.cjs.map +0 -1
  383. package/lib/cjs/graph/store/GraphCachedValue.cjs.map +0 -1
  384. package/lib/cjs/graph/store/GraphValueKey.cjs.map +0 -1
  385. package/lib/cjs/graph/store/GraphValueStore.cjs.map +0 -1
  386. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs.map +0 -1
  387. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
  388. package/lib/cjs/graph/store/index.cjs.map +0 -1
  389. package/lib/cjs/graph/types.cjs.map +0 -1
  390. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs.map +0 -1
  391. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs.map +0 -1
  392. package/lib/cjs/graph/validation/GraphValueValidator.cjs.map +0 -1
  393. package/lib/cjs/graph/validation/index.cjs.map +0 -1
  394. package/lib/cjs/index.cjs.map +0 -1
  395. package/lib/cjs/keycloak/index.cjs.map +0 -1
  396. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  397. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  398. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  399. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  400. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  401. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  402. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  403. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  404. package/lib/cjs/keycloak/types.cjs.map +0 -1
  405. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  406. package/lib/cjs/kibana/index.cjs.map +0 -1
  407. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  408. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  409. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  410. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  411. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  412. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  413. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  414. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  415. package/lib/cjs/kibana/types.cjs.map +0 -1
  416. package/lib/cjs/nest/authService.cjs.map +0 -1
  417. package/lib/cjs/nest/index.cjs.map +0 -1
  418. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  419. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  420. package/lib/cjs/nest/logging.cjs.map +0 -1
  421. package/lib/cjs/nest/types.cjs.map +0 -1
  422. package/lib/cjs/nest/utils.cjs.map +0 -1
  423. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  424. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  425. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  426. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  427. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  428. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  429. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  430. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  431. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  432. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  433. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  434. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  435. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  436. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  437. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  438. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  439. package/lib/cjs/secrets/index.cjs.map +0 -1
  440. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  441. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  442. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  443. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  444. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  445. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  446. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  447. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  448. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  449. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  450. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  451. package/lib/cjs/shared/runtime.cjs.map +0 -1
  452. package/lib/cjs/utils.cjs.map +0 -1
  453. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  454. package/lib/esm/blob/azure/index.js.map +0 -1
  455. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  456. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  457. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  458. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  459. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  460. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  461. package/lib/esm/blob/core/index.js.map +0 -1
  462. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  463. package/lib/esm/blob/gcp/index.js.map +0 -1
  464. package/lib/esm/blob/index.js.map +0 -1
  465. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
  466. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
  467. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
  468. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
  469. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
  470. package/lib/esm/blob/ipfs/index.js.map +0 -1
  471. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  472. package/lib/esm/blob/local/index.js.map +0 -1
  473. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  474. package/lib/esm/blob/memory/index.js.map +0 -1
  475. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  476. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  477. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  478. package/lib/esm/blob/s3/index.js.map +0 -1
  479. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  480. package/lib/esm/docker/index.js.map +0 -1
  481. package/lib/esm/graph/constants.js.map +0 -1
  482. package/lib/esm/graph/decorators.js.map +0 -1
  483. package/lib/esm/graph/errors/GraphCycleError.js.map +0 -1
  484. package/lib/esm/graph/errors/GraphExecutionError.js.map +0 -1
  485. package/lib/esm/graph/errors/GraphInputError.js.map +0 -1
  486. package/lib/esm/graph/errors/GraphLoopLimitError.js.map +0 -1
  487. package/lib/esm/graph/errors/GraphPinningError.js.map +0 -1
  488. package/lib/esm/graph/errors/GraphPortError.js.map +0 -1
  489. package/lib/esm/graph/errors/GraphStoreError.js.map +0 -1
  490. package/lib/esm/graph/errors/GraphTopologyError.js.map +0 -1
  491. package/lib/esm/graph/errors/index.js.map +0 -1
  492. package/lib/esm/graph/events/GraphExecutionEvent.js.map +0 -1
  493. package/lib/esm/graph/events/GraphExecutionEventEmitter.js.map +0 -1
  494. package/lib/esm/graph/events/GraphExecutionEventFactory.js.map +0 -1
  495. package/lib/esm/graph/events/GraphExecutionObserver.js.map +0 -1
  496. package/lib/esm/graph/events/index.js.map +0 -1
  497. package/lib/esm/graph/execution/GraphExecutionContext.js.map +0 -1
  498. package/lib/esm/graph/execution/GraphExecutionEngine.js.map +0 -1
  499. package/lib/esm/graph/execution/GraphExecutionFrame.js.map +0 -1
  500. package/lib/esm/graph/execution/GraphExecutionResult.js.map +0 -1
  501. package/lib/esm/graph/execution/GraphNodeExecutor.js.map +0 -1
  502. package/lib/esm/graph/execution/index.js.map +0 -1
  503. package/lib/esm/graph/index.js.map +0 -1
  504. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js.map +0 -1
  505. package/lib/esm/graph/loops/GraphConditionEvaluator.js.map +0 -1
  506. package/lib/esm/graph/loops/GraphLoopExecutionContext.js.map +0 -1
  507. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js.map +0 -1
  508. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js.map +0 -1
  509. package/lib/esm/graph/loops/index.js.map +0 -1
  510. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js.map +0 -1
  511. package/lib/esm/graph/pinning/GraphPinningMetadata.js.map +0 -1
  512. package/lib/esm/graph/pinning/GraphPinningPolicy.js.map +0 -1
  513. package/lib/esm/graph/pinning/GraphPinningService.js.map +0 -1
  514. package/lib/esm/graph/pinning/index.js.map +0 -1
  515. package/lib/esm/graph/planning/GraphExecutionPlan.js.map +0 -1
  516. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js.map +0 -1
  517. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js.map +0 -1
  518. package/lib/esm/graph/planning/GraphExecutionPlanNode.js.map +0 -1
  519. package/lib/esm/graph/planning/GraphExecutionPlanner.js.map +0 -1
  520. package/lib/esm/graph/planning/GraphRelationResolver.js.map +0 -1
  521. package/lib/esm/graph/planning/GraphTopology.js.map +0 -1
  522. package/lib/esm/graph/planning/index.js.map +0 -1
  523. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js.map +0 -1
  524. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js.map +0 -1
  525. package/lib/esm/graph/registry/index.js.map +0 -1
  526. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
  527. package/lib/esm/graph/snapshots/index.js.map +0 -1
  528. package/lib/esm/graph/store/GraphCachedValue.js.map +0 -1
  529. package/lib/esm/graph/store/GraphValueKey.js.map +0 -1
  530. package/lib/esm/graph/store/GraphValueStore.js.map +0 -1
  531. package/lib/esm/graph/store/GraphValueStoreAdapter.js.map +0 -1
  532. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
  533. package/lib/esm/graph/store/index.js.map +0 -1
  534. package/lib/esm/graph/types.js.map +0 -1
  535. package/lib/esm/graph/validation/GraphDefinitionValidator.js.map +0 -1
  536. package/lib/esm/graph/validation/GraphPortSchemaResolver.js.map +0 -1
  537. package/lib/esm/graph/validation/GraphValueValidator.js.map +0 -1
  538. package/lib/esm/graph/validation/index.js.map +0 -1
  539. package/lib/esm/index.js.map +0 -1
  540. package/lib/esm/keycloak/index.js.map +0 -1
  541. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  542. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  543. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  544. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  545. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  546. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  547. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  548. package/lib/esm/keycloak/services/index.js.map +0 -1
  549. package/lib/esm/keycloak/types.js.map +0 -1
  550. package/lib/esm/kibana/helpers.js.map +0 -1
  551. package/lib/esm/kibana/index.js.map +0 -1
  552. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  553. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  554. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  555. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  556. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  557. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  558. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  559. package/lib/esm/kibana/services/index.js.map +0 -1
  560. package/lib/esm/kibana/types.js.map +0 -1
  561. package/lib/esm/nest/authService.js.map +0 -1
  562. package/lib/esm/nest/index.js.map +0 -1
  563. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  564. package/lib/esm/nest/keycloakModule.js.map +0 -1
  565. package/lib/esm/nest/logging.js.map +0 -1
  566. package/lib/esm/nest/types.js.map +0 -1
  567. package/lib/esm/nest/utils.js.map +0 -1
  568. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  569. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  570. package/lib/esm/secrets/aws/index.js.map +0 -1
  571. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  572. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  573. package/lib/esm/secrets/azure/index.js.map +0 -1
  574. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  575. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  576. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  577. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  578. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  579. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  580. package/lib/esm/secrets/core/index.js.map +0 -1
  581. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  582. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  583. package/lib/esm/secrets/gcp/index.js.map +0 -1
  584. package/lib/esm/secrets/index.js.map +0 -1
  585. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  586. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  587. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  588. package/lib/esm/secrets/model/Secret.js.map +0 -1
  589. package/lib/esm/secrets/model/index.js.map +0 -1
  590. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  591. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  592. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  593. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  594. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  595. package/lib/esm/secrets/vault/index.js.map +0 -1
  596. package/lib/esm/shared/runtime.js.map +0 -1
  597. package/lib/esm/utils.js.map +0 -1
@@ -152,7 +152,7 @@ class KeycloakRoleService extends core_1.ClientBasedService {
152
152
  headers: { "Content-Type": "application/json" },
153
153
  validateStatus: () => true,
154
154
  httpsAgent: new https.Agent({
155
- rejectUnauthorized: config.isProduction(),
155
+ rejectUnauthorized: (this.config.isProduction()),
156
156
  }),
157
157
  });
158
158
  }
@@ -206,7 +206,7 @@ class KeycloakRoleService extends core_1.ClientBasedService {
206
206
  : {}),
207
207
  },
208
208
  httpsAgent: new https.Agent({
209
- rejectUnauthorized: this.config.isProduction(),
209
+ rejectUnauthorized: (this.config.isProduction()),
210
210
  }),
211
211
  validateStatus: () => true,
212
212
  });
@@ -267,5 +267,5 @@ class KeycloakRoleService extends core_1.ClientBasedService {
267
267
  }
268
268
  }
269
269
  exports.KeycloakRoleService = KeycloakRoleService;
270
- //# sourceMappingURL=KeycloakRoleService.js.map
271
- //# sourceMappingURL=KeycloakRoleService.cjs.map
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtSb2xlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha1JvbGVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1wRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFHeEM7SUFDQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUNyQixtQkFBd0MsRUFDeEMsV0FBbUQsRUFDbkQsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxD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L0IsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHtcbiAgS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnLFxuICBLZXljbG9ha1NldHVwQ29uZmlnLFxuICBLZXljbG9ha1VzZXIsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha1JvbGVTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLZXljbG9ha1NldHVwQ29uZmlnXG4+IHtcbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIEtleWNsb2FrU2V0dXBDb25maWc7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICByb2xlQ29uZmlnczogS2V5Y2xvYWtDbGllbnRSb2xlQ29uZmlnW10gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVDbGllbnRSb2xlcyk7XG4gICAgY29uc3Qgcm9sZXMgPSByb2xlQ29uZmlncyA/PyBrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5yb2xlcyA/PyBbXTtcbiAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGZvciAoY29uc3Qgcm9sZSBvZiByb2xlcykge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICAgIHJlYWxtQWNjZXNzVG9rZW4sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIDIwMSxcbiAgICAgICAge30sXG4gICAgICAgIC4uLmN0eEFyZ3NcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWFsbS1sZXZlbCByb2xlIGluIHRoZSBzcGVjaWZpZWQgcmVhbG0uXG4gICAqXG4gICAqIFdoZW4gYGNvbXBvc2l0ZVJvbGVzYCBpcyBwcm92aWRlZCwgdGhlIHJvbGUgaXMgY3JlYXRlZCBhcyBhIEtleWNsb2FrXG4gICAqIGNvbXBvc2l0ZSByb2xlIHRoYXQgaW5jbHVkZXMgdGhlIGdpdmVuIHN1Yi1yb2xlcy4gIFRoaXMgYWxsb3dzIHJvbGVcbiAgICogaGllcmFyY2hpZXMgKGUuZy4gYGFkbWluIOKKgyB3cml0ZXIg4oqDIHJlYWRlcmApIHNvIHRoYXQgYSB1c2VyIGFzc2lnbmVkXG4gICAqIHRoZSBjb21wb3NpdGUgcm9sZSBhdXRvbWF0aWNhbGx5IGluaGVyaXRzIGFsbCBzdWItcm9sZXMgaW4gdGhlaXIgSldULlxuICAgKlxuICAgKiBAcGFyYW0gcmVhbG1OYW1lICAgICAgVGhlIHJlYWxtIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgcm9sZS5cbiAgICogQHBhcmFtIHJvbGVOYW1lICAgICAgIFRoZSBuYW1lIG9mIHRoZSByZWFsbSByb2xlIHRvIGNyZWF0ZS5cbiAgICogQHBhcmFtIGNvbXBvc2l0ZVJvbGVzIE9wdGlvbmFsIGFycmF5IG9mIGV4aXN0aW5nIHJlYWxtIHJvbGUgbmFtZXMgdG9cbiAgICogICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgYXMgY29tcG9zaXRlcy5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVJlYWxtUm9sZShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICByb2xlTmFtZTogc3RyaW5nLFxuICAgIGNvbXBvc2l0ZVJvbGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUmVhbG1Sb2xlXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVSZWFsbVJvbGUpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogcm9sZU5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgQXV0by1jcmVhdGVkIHJlYWxtIHJvbGUgJHtyb2xlTmFtZX1gLFxuICAgICAgICBjb21wb3NpdGU6ICEhY29tcG9zaXRlUm9sZXMgJiYgY29tcG9zaXRlUm9sZXMubGVuZ3RoID4gMCxcbiAgICAgICAgLi4uKGNvbXBvc2l0ZVJvbGVzICYmIGNvbXBvc2l0ZVJvbGVzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/IHsgY29tcG9zaXRlczogeyByZWFsbTogY29tcG9zaXRlUm9sZXMgfSB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgMjAxLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldFJlYWxtUm9sZXMoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRSZWFsbVJvbGVzXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5nZXRSZWFsbVJvbGVzKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4ocmVzcG9uc2UuZGF0YSkgPz8gW107XG4gIH1cblxuICBhc3luYyBnZXRDbGllbnRSb2xlcyhcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJnZXRDbGllbnRSb2xlc1wiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ2V0Q2xpZW50Um9sZXMpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4ocmVzcG9uc2UuZGF0YSkgPz8gW107XG4gIH1cblxuICBhc3luYyBncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJncmFudFJlYWxtUm9sZXNUb1VzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmdyYW50UmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3JvbGVzYCxcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL3JlYWxtYCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdyYW50Q2xpZW50Um9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgY2xpZW50VVVJRDogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ3JhbnRDbGllbnRSb2xlc1RvVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ3JhbnRDbGllbnRSb2xlc1RvVXNlcik7XG4gICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLFxuICAgICAgcm9sZU5hbWVzLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXZva2VSZWFsbVJvbGVzRnJvbVVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiR0VUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPGFueVtdPihyb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkRFTEVURVwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHNlbGVjdGVkUm9sZXMsXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXBsYWNlUmVhbG1Sb2xlc0ZvclVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgY3VycmVudFJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgY3VycmVudFJvbGVzID1cbiAgICAgIHRoaXMucGFyc2VKc29uUmVzcG9uc2U8YW55W10+KGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGlmIChjdXJyZW50Um9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIkRFTEVURVwiLFxuICAgICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsXG4gICAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAgIGN1cnJlbnRSb2xlcyxcbiAgICAgICAgMjA0LFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICB1c2VyVVVJRCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlQ2xpZW50Um9sZXNGcm9tVXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IHJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8YW55W10+KHJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgY29uc3Qgc2VsZWN0ZWRSb2xlcyA9IHJvbGVzLmZpbHRlcigocm9sZSkgPT4gcm9sZU5hbWVzLmluY2x1ZGVzKHJvbGUubmFtZSkpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHNlbGVjdGVkUm9sZXMsXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGFjZUNsaWVudFJvbGVzRm9yVXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IGN1cnJlbnRSb2xlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50Um9sZXMgPVxuICAgICAgdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4oY3VycmVudFJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgaWYgKGN1cnJlbnRSb2xlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICAgIFwiREVMRVRFXCIsXG4gICAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsXG4gICAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAgIGN1cnJlbnRSb2xlcyxcbiAgICAgICAgMjA0LFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ncmFudENsaWVudFJvbGVzVG9Vc2VyKFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgY2xpZW50VVVJRCxcbiAgICAgIHVzZXJVVUlELFxuICAgICAgcm9sZU5hbWVzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICgodGhpcy5jb25maWcgYXMgYW55KS5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWRtaW5BY2Nlc3NUb2tlbihcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciEsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRSZWFsbUFjY2Vzc1Rva2VuKFxuICAgIGtleWNsb2FrU2V0dXBDb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKTtcbiAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciEsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFjY2Vzc1Rva2VuKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBjbGllbnRfaWQ6IGtleWNsb2FrVXNlci5hcGlDbGllbnRJZCxcbiAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgfSkudG9TdHJpbmcoKSxcbiAgICAgIDIwMCxcbiAgICAgIHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG4gICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcbiAgICAgIGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGFzc2lnblJvbGVzVG9Vc2VyKFxuICAgIHJvbGVzVXJsOiBzdHJpbmcsXG4gICAgc2V0Um9sZXNVcmw6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFzc2lnblJvbGVzVG9Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5hc3NpZ25Sb2xlc1RvVXNlcik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgcm9sZXNVcmwsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPGFueVtdPihyZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICBjb25zdCBzZWxlY3RlZFJvbGVzID0gcm9sZXMuZmlsdGVyKChyb2xlKSA9PiByb2xlTmFtZXMuaW5jbHVkZXMocm9sZS5uYW1lKSk7XG4gICAgaWYgKHNlbGVjdGVkUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgTm8gcm9sZXMgbWF0Y2hlZCAke3JvbGVOYW1lcy5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBzZWxlY3RlZFJvbGVzLm1hcCgocm9sZSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdChcbiAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgIHNldFJvbGVzVXJsLFxuICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgW3JvbGVdLFxuICAgICAgICAyMDQsXG4gICAgICAgIHt9LFxuICAgICAgICAuLi5jdHhBcmdzXG4gICAgICApXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoXG4gICAgbWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJERUxFVEVcIixcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYWNjZXNzVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgbWV0aG9kLFxuICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICBkYXRhOlxuICAgICAgICBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgLi4uKGFjY2Vzc1Rva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9IDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXlsb2FkICE9PSBcInN0cmluZ1wiXG4gICAgICAgICAgPyB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICgodGhpcy5jb25maWcgYXMgYW55KS5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICB9KSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgIH0pO1xuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUh0dHBSZXNwb25zZShcbiAgICByZXNwb25zZTogYW55LFxuICAgIHN1Y2Nlc3NDb2RlOiBudW1iZXIsXG4gICAgZXJyb3JNc2c/OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzIGFzIG51bWJlcjtcbiAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgIGlmIChzdGF0dXMgPT09IDQwNCB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJub3QgZm91bmRcIikpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDkgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29uZmxpY3RcIikpIHtcbiAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IEVycm9yKTogRXJyb3Ige1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUpzb25SZXNwb25zZTxUPihkYXRhOiB1bmtub3duKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKSBhcyBUO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhIGFzIFQ7XG4gIH1cbn1cbiJdfQ==
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtSb2xlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrUm9sZVNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdHO0FBQ3hHLHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLE1BQWEsbUJBQW9CLFNBQVEseUJBQWtCO0lBQ3ZELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJO1FBQzdELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckcsTUFBTSxLQUFLLEdBQUcsV0FBVyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLElB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LENBQUMsU0FBUyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0csT0FBTyxJQUFJLCtCQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sSUFBSSw2QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxJQUFJO1FBQ2xCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQ0QsTUFBTSxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBaE9ELGtEQWdPQztBQUNELDg1ckNBQTg1ckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtSb2xlU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlQ2xpZW50Um9sZXMoa2V5Y2xvYWtTZXR1cENvbmZpZywgcm9sZUNvbmZpZ3MsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVDbGllbnRSb2xlc1wiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50Um9sZXMpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHJvbGVDb25maWdzID8/IGtleWNsb2FrU2V0dXBDb25maWcuY2xpZW50LnJvbGVzID8/IFtdO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlcj8ucmVhbG19L2NsaWVudHMvJHtrZXljbG9ha1NldHVwQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEfS9yb2xlc2AsIHJlYWxtQWNjZXNzVG9rZW4sIHtcbiAgICAgICAgICAgICAgICBuYW1lOiByb2xlLnJvbGVOYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uID8/IGBBdXRvLWNyZWF0ZWQgcm9sZSAke3JvbGUucm9sZU5hbWV9YCxcbiAgICAgICAgICAgICAgICBjb21wb3NpdGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNsaWVudFJvbGU6IHRydWUsXG4gICAgICAgICAgICB9LCAyMDEsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgcmVhbG0tbGV2ZWwgcm9sZSBpbiB0aGUgc3BlY2lmaWVkIHJlYWxtLlxuICAgICAqXG4gICAgICogV2hlbiBgY29tcG9zaXRlUm9sZXNgIGlzIHByb3ZpZGVkLCB0aGUgcm9sZSBpcyBjcmVhdGVkIGFzIGEgS2V5Y2xvYWtcbiAgICAgKiBjb21wb3NpdGUgcm9sZSB0aGF0IGluY2x1ZGVzIHRoZSBnaXZlbiBzdWItcm9sZXMuICBUaGlzIGFsbG93cyByb2xlXG4gICAgICogaGllcmFyY2hpZXMgKGUuZy4gYGFkbWluIOKKgyB3cml0ZXIg4oqDIHJlYWRlcmApIHNvIHRoYXQgYSB1c2VyIGFzc2lnbmVkXG4gICAgICogdGhlIGNvbXBvc2l0ZSByb2xlIGF1dG9tYXRpY2FsbHkgaW5oZXJpdHMgYWxsIHN1Yi1yb2xlcyBpbiB0aGVpciBKV1QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVhbG1OYW1lICAgICAgVGhlIHJlYWxtIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgcm9sZS5cbiAgICAgKiBAcGFyYW0gcm9sZU5hbWUgICAgICAgVGhlIG5hbWUgb2YgdGhlIHJlYWxtIHJvbGUgdG8gY3JlYXRlLlxuICAgICAqIEBwYXJhbSBjb21wb3NpdGVSb2xlcyBPcHRpb25hbCBhcnJheSBvZiBleGlzdGluZyByZWFsbSByb2xlIG5hbWVzIHRvXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgYXMgY29tcG9zaXRlcy5cbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVSZWFsbVJvbGUocmVhbG1OYW1lLCByb2xlTmFtZSwgY29tcG9zaXRlUm9sZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVSZWFsbVJvbGVcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVJlYWxtUm9sZSk7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3JvbGVzYCwgYWRtaW5BY2Nlc3NUb2tlbiwge1xuICAgICAgICAgICAgbmFtZTogcm9sZU5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYEF1dG8tY3JlYXRlZCByZWFsbSByb2xlICR7cm9sZU5hbWV9YCxcbiAgICAgICAgICAgIGNvbXBvc2l0ZTogISFjb21wb3NpdGVSb2xlcyAmJiBjb21wb3NpdGVSb2xlcy5sZW5ndGggPiAwLFxuICAgICAgICAgICAgLi4uKGNvbXBvc2l0ZVJvbGVzICYmIGNvbXBvc2l0ZVJvbGVzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IHsgY29tcG9zaXRlczogeyByZWFsbTogY29tcG9zaXRlUm9sZXMgfSB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0sIDIwMSwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRSZWFsbVJvbGVzKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImdldFJlYWxtUm9sZXNcIiwgdHJ1ZSkpLmZvcih0aGlzLmdldFJlYWxtUm9sZXMpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0Q2xpZW50Um9sZXMocmVhbG1OYW1lLCBjbGllbnRVVUlELCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ2V0Q2xpZW50Um9sZXNcIiwgdHJ1ZSkpLmZvcih0aGlzLmdldENsaWVudFJvbGVzKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsIGFkbWluQWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjAwLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIH1cbiAgICBhc3luYyBncmFudFJlYWxtUm9sZXNUb1VzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ3JhbnRSZWFsbVJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9yb2xlc2AsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL3JlYWxtYCwgcm9sZU5hbWVzLCBhZG1pbkFjY2Vzc1Rva2VuLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ3JhbnRDbGllbnRSb2xlc1RvVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJncmFudENsaWVudFJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5ncmFudENsaWVudFJvbGVzVG9Vc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hc3NpZ25Sb2xlc1RvVXNlcihgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vY2xpZW50cy8ke2NsaWVudFVVSUR9L3JvbGVzYCwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvY2xpZW50cy8ke2NsaWVudFVVSUR9YCwgcm9sZU5hbWVzLCBhZG1pbkFjY2Vzc1Rva2VuLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldm9rZVJlYWxtUm9sZXNGcm9tVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMucmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2Uocm9sZXNSZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSb2xlcyA9IHJvbGVzLmZpbHRlcigocm9sZSkgPT4gcm9sZU5hbWVzLmluY2x1ZGVzKHJvbGUubmFtZSkpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXCJERUxFVEVcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLCBhZG1pbkFjY2Vzc1Rva2VuLCBzZWxlY3RlZFJvbGVzLCAyMDQsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlcGxhY2VSZWFsbVJvbGVzRm9yVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMucmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgY3VycmVudFJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBpZiAoY3VycmVudFJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkRFTEVURVwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsIGFkbWluQWNjZXNzVG9rZW4sIGN1cnJlbnRSb2xlcywgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmV2b2tlQ2xpZW50Um9sZXNGcm9tVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5yZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyKTtcbiAgICAgICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vY2xpZW50cy8ke2NsaWVudFVVSUR9L3JvbGVzYCwgYWRtaW5BY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiREVMRVRFXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsIGFkbWluQWNjZXNzVG9rZW4sIHNlbGVjdGVkUm9sZXMsIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyKHJlYWxtTmFtZSwgY2xpZW50VVVJRCwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlcGxhY2VDbGllbnRSb2xlc0ZvclVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnJlcGxhY2VDbGllbnRSb2xlc0ZvclVzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBpZiAoY3VycmVudFJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkRFTEVURVwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLCBhZG1pbkFjY2Vzc1Rva2VuLCBjdXJyZW50Um9sZXMsIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuZ3JhbnRDbGllbnRSb2xlc1RvVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAodGhpcy5jb25maWcuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBnZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbih0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRSZWFsbUFjY2Vzc1Rva2VuKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldFJlYWxtQWNjZXNzVG9rZW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJlYWxtQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEFjY2Vzc1Rva2VuKGtleWNsb2FrVXNlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZ2V0QWNjZXNzVG9rZW4pO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwgdW5kZWZpbmVkLCBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgIGNsaWVudF9pZDoga2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgICBncmFudF90eXBlOiBcInBhc3N3b3JkXCIsXG4gICAgICAgIH0pLnRvU3RyaW5nKCksIDIwMCwgeyBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgaWYgKGRhdGE/LmFjY2Vzc190b2tlbilcbiAgICAgICAgICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlbjtcbiAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihgVW5hYmxlIHRvIGdldCBLZXljbG9hayBhY2Nlc3MgdG9rZW4gZm9yIHVzZXIgJHtrZXljbG9ha1VzZXIudXNlcm5hbWV9YCk7XG4gICAgfVxuICAgIGFzeW5jIGFzc2lnblJvbGVzVG9Vc2VyKHJvbGVzVXJsLCBzZXRSb2xlc1VybCwgcm9sZU5hbWVzLCBhY2Nlc3NUb2tlbiwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFzc2lnblJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5hc3NpZ25Sb2xlc1RvVXNlcik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIHJvbGVzVXJsLCBhY2Nlc3NUb2tlbiwgdW5kZWZpbmVkLCAyMDAsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJvbGVzID0gcm9sZXMuZmlsdGVyKChyb2xlKSA9PiByb2xlTmFtZXMuaW5jbHVkZXMocm9sZS5uYW1lKSk7XG4gICAgICAgIGlmIChzZWxlY3RlZFJvbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYE5vIHJvbGVzIG1hdGNoZWQgJHtyb2xlTmFtZXMuam9pbihcIiwgXCIpfWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gc2VsZWN0ZWRSb2xlcy5tYXAoKHJvbGUpID0+IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgc2V0Um9sZXNVcmwsIGFjY2Vzc1Rva2VuLCBbcm9sZV0sIDIwNCwge30sIC4uLmN0eEFyZ3MpKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgIH1cbiAgICBhc3luYyByZXF1ZXN0KG1ldGhvZCwgcGF0aCwgYWNjZXNzVG9rZW4sIHBheWxvYWQsIHN1Y2Nlc3NDb2RlLCBoZWFkZXJzLCAuLi5hcmdzKSB7XG4gICAgICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVxdWVzdCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgICAgICAgIGRhdGE6IHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHBheWxvYWRcbiAgICAgICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAgICAgICAgIC4uLihhY2Nlc3NUb2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAuLi4ocGF5bG9hZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBwYXlsb2FkICE9PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8geyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9XG4gICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAodGhpcy5jb25maWcuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSwgZXJyb3JNc2cpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgICAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgICAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDQgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDkgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29uZmxpY3RcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBwYXJzZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBwYXJzZUpzb25SZXNwb25zZShkYXRhKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMyVjVZMnh2WVd0U2IyeGxVMlZ5ZG1salpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUwzTnlZeTlyWlhsamJHOWhheTl6WlhKMmFXTmxjeTlMWlhsamJHOWhhMUp2YkdWVFpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkRUQ3hsUVVGbExFVkJRMllzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVVnFReXhQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVMXdSQ3hQUVVGUExFdEJRWGRDTEUxQlFVMHNUMEZCVHl4RFFVRkRPMEZCUXpkRExFOUJRVThzUzBGQlN5eExRVUZMTEUxQlFVMHNXVUZCV1N4RFFVRkRPMEZCUlhCRExFMUJRVTBzVDBGQlR5eHRRa0ZCYjBJc1UwRkJVU3hyUWtGSGVFTTdTVUZEUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVOa0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNMVF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGRrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQmQwSXNRMEZCUXp0UlFVTnFSQ3hKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVTjBRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZETjBNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTTdVVUZEZEVJc1QwRkJUeXhGUVVGRkxFMUJRVTBzUlVGQlJTeE5RVUZOTEVWQlFVVXNRMEZCUXp0SlFVTTFRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVOeVFpeHRRa0ZCZDBNc1JVRkRlRU1zVjBGQmJVUXNSVUZEYmtRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGJrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NWMEZCVnl4SlFVRkpMRzFDUVVGdFFpeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRM0JGTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM0pFTEcxQ1FVRnRRaXhGUVVOdVFpeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEyaENMRTFCUVUwc1JVRkRUaXhwUWtGQmFVSXNiVUpCUVcxQ0xFTkJRVU1zV1VGQldTeEZRVUZGTEV0QlFVc3NXVUZCV1N4dFFrRkJiVUlzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4UlFVRlJMRVZCUTJwSUxHZENRVUZuUWl4RlFVTm9RanRuUWtGRFJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRkZCUVZFN1owSkJRMjVDTEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhKUVVGSkxIRkNRVUZ4UWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU55UlN4VFFVRlRMRVZCUVVVc1MwRkJTenRuUWtGRGFFSXNWVUZCVlN4RlFVRkZMRWxCUVVrN1lVRkRha0lzUlVGRFJDeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFNpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenM3VDBGWlJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUTI1Q0xGTkJRV2xDTEVWQlEycENMRkZCUVdkQ0xFVkJRMmhDTEdOQlFXOURMRVZCUTNCRExFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEycEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTFRaXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOb1FpeE5RVUZOTEVWQlEwNHNhVUpCUVdsQ0xGTkJRVk1zVVVGQlVTeEZRVU5zUXl4blFrRkJaMElzUlVGRGFFSTdXVUZEUlN4SlFVRkpMRVZCUVVVc1VVRkJVVHRaUVVOa0xGZEJRVmNzUlVGQlJTd3lRa0ZCTWtJc1VVRkJVU3hGUVVGRk8xbEJRMnhFTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXp0WlFVTjRSQ3hIUVVGSExFTkJRVU1zWTBGQll5eEpRVUZKTEdOQlFXTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJRenRuUWtGRE4wTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUzBGQlN5eEZRVUZGTEdOQlFXTXNSVUZCUlN4RlFVRkZPMmRDUVVNelF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMU5CUTFJc1JVRkRSQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdGQlFXRXNRMEZEYWtJc1UwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hsUVVGbExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF5OURMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTXhRaXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU5xUXl4TFFVRkxMRVZCUTB3c2FVSkJRV2xDTEZOQlFWTXNVVUZCVVN4RlFVTnNReXhuUWtGQlowSXNSVUZEYUVJc1UwRkJVeXhGUVVOVUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFOUJRVThzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGUkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1NVRkROVVFzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUTJ4Q0xGTkJRV2xDTEVWQlEycENMRlZCUVd0Q0xFVkJRMnhDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUTJoRUxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRSUVVNelFpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTnFReXhMUVVGTExFVkJRMHdzYVVKQlFXbENMRk5CUVZNc1dVRkJXU3hWUVVGVkxGRkJRVkVzUlVGRGVFUXNaMEpCUVdkQ0xFVkJRMmhDTEZOQlFWTXNSVUZEVkN4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4UFFVRlBMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCVVN4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzBsQlF6VkVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zY1VKQlFYRkNMRU5CUTNwQ0xGTkJRV2xDTEVWQlEycENMRkZCUVdkQ0xFVkJRMmhDTEZOQlFXMUNMRVZCUTI1Q0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNkVUpCUVhWQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzWkVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8xRkJRMnhETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRNVUlzYVVKQlFXbENMRk5CUVZNc1VVRkJVU3hGUVVOc1F5eHBRa0ZCYVVJc1UwRkJVeXhWUVVGVkxGRkJRVkVzYzBKQlFYTkNMRVZCUTJ4RkxGTkJRVk1zUlVGRFZDeG5Ra0ZCWjBJc1JVRkRhRUlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUXpGQ0xGTkJRV2xDTEVWQlEycENMRlZCUVd0Q0xFVkJRMnhDTEZGQlFXZENMRVZCUTJoQ0xGTkJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzZDBKQlFYZENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRM2hFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UlN4TlFVRk5MRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZETVVJc2FVSkJRV2xDTEZOQlFWTXNXVUZCV1N4VlFVRlZMRkZCUVZFc1JVRkRlRVFzYVVKQlFXbENMRk5CUVZNc1ZVRkJWU3hSUVVGUkxEQkNRVUV3UWl4VlFVRlZMRVZCUVVVc1JVRkRiRVlzVTBGQlV5eEZRVU5VTEdkQ1FVRm5RaXhGUVVOb1FpeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eDNRa0ZCZDBJc1EwRkROVUlzVTBGQmFVSXNSVUZEYWtJc1VVRkJaMElzUlVGRGFFSXNVMEZCYlVJc1JVRkRia0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN3d1FrRkJNRUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETVVRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhkQ1FVRjNRaXhEUVVGRExFTkJRVU03VVVGRGNrTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRkxFMUJRVTBzWVVGQllTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRkRU1zUzBGQlN5eEZRVU5NTEdsQ1FVRnBRaXhUUVVGVExGRkJRVkVzUlVGRGJFTXNaMEpCUVdkQ0xFVkJRMmhDTEZOQlFWTXNSVUZEVkN4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVZFc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTjBSU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6VkZMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFFSXNVVUZCVVN4RlFVTlNMR2xDUVVGcFFpeFRRVUZUTEZWQlFWVXNVVUZCVVN4elFrRkJjMElzUlVGRGJFVXNaMEpCUVdkQ0xFVkJRMmhDTEdGQlFXRXNSVUZEWWl4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExIZENRVUYzUWl4RFFVTTFRaXhUUVVGcFFpeEZRVU5xUWl4UlFVRm5RaXhGUVVOb1FpeFRRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTERCQ1FVRXdRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU14UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1EwRkJRenRSUVVOeVF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRemRETEV0QlFVc3NSVUZEVEN4cFFrRkJhVUlzVTBGQlV5eFZRVUZWTEZGQlFWRXNjMEpCUVhOQ0xFVkJRMnhGTEdkQ1FVRm5RaXhGUVVOb1FpeFRRVUZUTEVWQlExUXNSMEZCUnl4RlFVTklMRVZCUVVVc1JVRkRSaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4WlFVRlpMRWRCUTJoQ0xFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJVU3h2UWtGQmIwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRGFrVXNTVUZCU1N4WlFVRlpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlF6VkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFFSXNVVUZCVVN4RlFVTlNMR2xDUVVGcFFpeFRRVUZUTEZWQlFWVXNVVUZCVVN4elFrRkJjMElzUlVGRGJFVXNaMEpCUVdkQ0xFVkJRMmhDTEZsQlFWa3NSVUZEV2l4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1RVRkJUU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUXpsQ0xGTkJRVk1zUlVGRFZDeFJRVUZSTEVWQlExSXNVMEZCVXl4RlFVTlVMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMSGxDUVVGNVFpeERRVU0zUWl4VFFVRnBRaXhGUVVOcVFpeFZRVUZyUWl4RlFVTnNRaXhSUVVGblFpeEZRVU5vUWl4VFFVRnRRaXhGUVVOdVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMREpDUVVFeVFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTXpSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU4wUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRVVzVFVGQlRTeGhRVUZoTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOMFF5eExRVUZMTEVWQlEwd3NhVUpCUVdsQ0xGTkJRVk1zV1VGQldTeFZRVUZWTEZGQlFWRXNSVUZEZUVRc1owSkJRV2RDTEVWQlEyaENMRk5CUVZNc1JVRkRWQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVkVzWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOMFJTeE5RVUZOTEdGQlFXRXNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWRkxFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZEYUVJc1VVRkJVU3hGUVVOU0xHbENRVUZwUWl4VFFVRlRMRlZCUVZVc1VVRkJVU3d3UWtGQk1FSXNWVUZCVlN4RlFVRkZMRVZCUTJ4R0xHZENRVUZuUWl4RlFVTm9RaXhoUVVGaExFVkJRMklzUjBGQlJ5eEZRVU5JTEVWQlFVVXNSVUZEUml4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4NVFrRkJlVUlzUTBGRE4wSXNVMEZCYVVJc1JVRkRha0lzVlVGQmEwSXNSVUZEYkVJc1VVRkJaMElzUlVGRGFFSXNVMEZCYlVJc1JVRkRia0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN3eVFrRkJNa0lzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETTBRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEhsQ1FVRjVRaXhEUVVGRExFTkJRVU03VVVGRGRFTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRkxFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU0zUXl4TFFVRkxMRVZCUTB3c2FVSkJRV2xDTEZOQlFWTXNWVUZCVlN4UlFVRlJMREJDUVVFd1FpeFZRVUZWTEVWQlFVVXNSVUZEYkVZc1owSkJRV2RDTEVWQlEyaENMRk5CUVZNc1JVRkRWQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxGbEJRVmtzUjBGRGFFSXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZSTEc5Q1FVRnZRaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0UlFVTnFSU3hKUVVGSkxGbEJRVmtzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkROVUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhSUVVGUkxFVkJRMUlzYVVKQlFXbENMRk5CUVZNc1ZVRkJWU3hSUVVGUkxEQkNRVUV3UWl4VlFVRlZMRVZCUVVVc1JVRkRiRVlzWjBKQlFXZENMRVZCUTJoQ0xGbEJRVmtzUlVGRFdpeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNUVUZCVFN4SlFVRkpMRU5CUVVNc2MwSkJRWE5DTEVOQlF5OUNMRk5CUVZNc1JVRkRWQ3hWUVVGVkxFVkJRMVlzVVVGQlVTeEZRVU5TTEZOQlFWTXNSVUZEVkN4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZQTEdkQ1FVRm5RaXhEUVVGRExFMUJRVEpDTzFGQlEyeEVMRTlCUVU4c1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dFpRVU5zUWl4UFFVRlBMRVZCUVVVc1IwRkJSeXhOUVVGTkxFTkJRVU1zVVVGQlVTeE5RVUZOTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVN1dVRkRPVU1zVDBGQlR5eEZRVUZGTEVWQlFVVXNZMEZCWXl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTzFsQlF5OURMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFsQlF6RkNMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdaMEpCUXpGQ0xHdENRVUZyUWl4RlFVRkZMRU5CUVVVc1NVRkJTU3hEUVVGRExFMUJRV01zUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0aFFVTXhSQ3hEUVVGRE8xTkJRMGdzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXh0UWtGQmJVSXNRMEZETDBJc1IwRkJSeXhKUVVGNVFqdFJRVVUxUWl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1VVRkRhRVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQllTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRjRVVzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGREwwSXNiVUpCUVhkRExFVkJRM2hETEVkQlFVY3NTVUZCZVVJN1VVRkZOVUlzVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETzFGQlEyaEZMRTlCUVU4c1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhaUVVGaExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTTFSU3hEUVVGRE8wbEJSVThzUzBGQlN5eERRVUZETEdOQlFXTXNRMEZETVVJc1dVRkJNRUlzUlVGRE1VSXNSMEZCUnl4SlFVRjVRanRSUVVVMVFpeE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8xRkJRek5FTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNUVUZCVFN4RlFVTk9MRmRCUVZjc1dVRkJXU3hEUVVGRExFdEJRVXNzWjBOQlFXZERMRVZCUXpkRUxGTkJRVk1zUlVGRFZDeEpRVUZKTEdWQlFXVXNRMEZCUXp0WlFVTnNRaXhUUVVGVExFVkJRVVVzV1VGQldTeERRVUZETEZkQlFWYzdXVUZEYmtNc1VVRkJVU3hGUVVGRkxGbEJRVmtzUTBGQlF5eFJRVUZSTzFsQlF5OUNMRkZCUVZFc1JVRkJSU3haUVVGWkxFTkJRVU1zVVVGQlVUdFpRVU12UWl4VlFVRlZMRVZCUVVVc1ZVRkJWVHRUUVVOMlFpeERRVUZETEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUTJJc1IwRkJSeXhGUVVOSUxFVkJRVVVzWTBGQll5eEZRVUZGTEcxRFFVRnRReXhGUVVGRkxFVkJRM1pFTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRMnBETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUTJRc1EwRkJRenRSUVVOR0xFbEJRVWtzU1VGQlNTeEZRVUZGTEZsQlFWazdXVUZCUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03VVVGRGFrUXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkRka0lzWjBSQlFXZEVMRmxCUVZrc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGRGVFVXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYVVKQlFXbENMRU5CUTNKQ0xGRkJRV2RDTEVWQlEyaENMRmRCUVcxQ0xFVkJRMjVDTEZOQlFXMUNMRVZCUTI1Q0xGZEJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRMjVFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkRha01zUzBGQlN5eEZRVU5NTEZGQlFWRXNSVUZEVWl4WFFVRlhMRVZCUTFnc1UwRkJVeXhGUVVOVUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlVTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRMnBGTEUxQlFVMHNZVUZCWVN4SFFVRkhMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkROVVVzU1VGQlNTeGhRVUZoTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJReTlDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2IwSkJRVzlDTEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzUkZMRU5CUVVNN1VVRkRSQ3hOUVVGTkxGRkJRVkVzUjBGQmIwSXNZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlF6TkVMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRMVlzVFVGQlRTeEZRVU5PTEZkQlFWY3NSVUZEV0N4WFFVRlhMRVZCUTFnc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGRFRpeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRMFlzUTBGQlF6dFJRVU5HTEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU01UWl4RFFVRkRPMGxCUlU4c1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRGJrSXNUVUZCZVVNc1JVRkRla01zU1VGQldTeEZRVU5hTEZkQlFTdENMRVZCUXk5Q0xFOUJRV2RDTEVWQlEyaENMRmRCUVcxQ0xFVkJRMjVDTEU5QlFTdENMRVZCUXk5Q0xFZEJRVWNzU1VGQmVVSTdVVUZGTlVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRMmhETEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZEZWtNc1RVRkJUVHRaUVVOT0xFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1JVRkJSVHRaUVVNelJDeEpRVUZKTEVWQlEwWXNUMEZCVHl4TFFVRkxMRk5CUVZNN1owSkJRMjVDTEVOQlFVTXNRMEZCUXl4VFFVRlRPMmRDUVVOWUxFTkJRVU1zUTBGQlF5eFBRVUZQTEU5QlFVOHNTMEZCU3l4UlFVRlJPMjlDUVVNelFpeERRVUZETEVOQlFVTXNUMEZCVHp0dlFrRkRWQ3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNN1dVRkRMMElzVDBGQlR5eEZRVUZGTzJkQ1FVTlFMRWRCUVVjc1QwRkJUenRuUWtGRFZpeEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxHRkJRV0VzUlVGQlJTeFZRVUZWTEZkQlFWY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZEYkVVc1IwRkJSeXhEUVVGRExFOUJRVThzUzBGQlN5eFRRVUZUTEVsQlFVa3NUMEZCVHl4UFFVRlBMRXRCUVVzc1VVRkJVVHR2UWtGRGRFUXNRMEZCUXl4RFFVRkRMRVZCUVVVc1kwRkJZeXhGUVVGRkxHdENRVUZyUWl4RlFVRkZPMjlDUVVONFF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMkZCUTFJN1dVRkRSQ3hWUVVGVkxFVkJRVVVzU1VGQlNTeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRPMmRDUVVNeFFpeHJRa0ZCYTBJc1JVRkJSU3hEUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZqTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1lVRkRNVVFzUTBGQlF6dFpRVU5HTEdOQlFXTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xTkJRek5DTEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUzBGQlN5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTndReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEycEVMRU5CUVVNN1VVRkRSQ3hQUVVGUExGRkJRVkVzUTBGQlF6dEpRVU5zUWl4RFFVRkRPMGxCUlU4c2EwSkJRV3RDTEVOQlEzaENMRkZCUVdFc1JVRkRZaXhYUVVGdFFpeEZRVU51UWl4UlFVRnBRanRSUVVWcVFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJaMElzUTBGQlF6dFJRVU42UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhSUVVGUk8xbEJRM1JDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRkZCUVZFc1kwRkJZeXhYUVVGWExHTkJRV01zVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4UlFVRlJMRU5CUVVNc1ZVRkJWU3hIUVVGSE8xbEJRemxHTEVOQlFVTXNRMEZCUXl4WlFVRlpMRmRCUVZjc1kwRkJZeXhSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRSUVVOdVJpeEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnhGTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGJrTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEYWtVc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnVReXhEUVVGRE8xRkJRMFFzU1VGQlNTeE5RVUZOTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRia0lzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOeVF5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFMUJRVTBzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTnlReXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTI1RExFTkJRVU03VVVGRFJDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRMjVETEVOQlFVTTdTVUZGVXl4VlFVRlZMRU5CUVVNc1MwRkJXVHRSUVVNdlFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVsQlFVa3NaVUZCWlN4RFFVRkRPMUZCUXk5RUxFMUJRVTBzV1VGQldTeEhRVUZITEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVVelF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRM1pGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTJwSUxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1J5eFBRVUZQTEVsQlFVa3NaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM1JETEVOQlFVTTdVVUZGUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlF6RkZMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRka1VzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU53UXl4RFFVRkRPMGxCUlU4c2FVSkJRV2xDTEVOQlFVa3NTVUZCWVR0UlFVTjRReXhKUVVGSkxFOUJRVThzU1VGQlNTeExRVUZMTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUXpkQ0xFbEJRVWtzUTBGQlF6dG5Ra0ZEU0N4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZOTEVOQlFVTTdXVUZETDBJc1EwRkJRenRaUVVGRExFMUJRVTBzUTBGQlF6dG5Ra0ZEVUN4UFFVRlBMRk5CUVZNc1EwRkJRenRaUVVOdVFpeERRVUZETzFGQlEwZ3NRMEZCUXp0UlFVTkVMRTlCUVU4c1NVRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJRUpoWkZKbGNYVmxjM1JGY25KdmNpeGNiaUFnUTI5dVpteHBZM1JGY25KdmNpeGNiaUFnU1c1MFpYSnVZV3hGY25KdmNpeGNiaUFnVG05MFJtOTFibVJGY25KdmNpeGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdleUJEYjI1MFpYaDBkV0ZzUVhKbmN5d2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5JSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJEYkdsbGJuUkNZWE5sWkZObGNuWnBZMlVnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJOdmNtVmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIdGNiaUFnUzJWNVkyeHZZV3REYkdsbGJuUlNiMnhsUTI5dVptbG5MRnh1SUNCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxGeHVJQ0JMWlhsamJHOWhhMVZ6WlhJc1hHNTlJR1p5YjIwZ1hDSXVMaTkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJRUY0YVc5ekxDQjdJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZTQm1jbTl0SUZ3aVlYaHBiM05jSWp0Y2JtbHRjRzl5ZENBcUlHRnpJR2gwZEhCeklHWnliMjBnWENKdWIyUmxPbWgwZEhCelhDSTdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkxaWGxqYkc5aGExSnZiR1ZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRMnhwWlc1MFFtRnpaV1JUWlhKMmFXTmxQRnh1SUNCQmVHbHZjMGx1YzNSaGJtTmxMRnh1SUNCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sblhHNCtJSHRjYmlBZ1lYTjVibU1nYVc1cGRHbGhiR2w2WlNoY2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhzZ1kyOXVabWxuT2lCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbk95QmpiR2xsYm5RNklFRjRhVzl6U1c1emRHRnVZMlVnZlQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKcGJtbDBhV0ZzYVhwbFhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1cGJtbDBhV0ZzYVhwbEtUdGNiaUFnSUNCamIyNXpkQ0JqYjI1bWFXY2dQU0JqZEhoQmNtZHpXekJkSUdGeklFdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXYzdYRzRnSUNBZ2RHaHBjeTVmWTI5dVptbG5JRDBnWTI5dVptbG5PMXh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkQ0E5SUhSb2FYTXVZM0psWVhSbFNIUjBjRU5zYVdWdWRDaGpiMjVtYVdjcE8xeHVJQ0FnSUhSb2FYTXVYMk5zYVdWdWRDQTlJR05zYVdWdWREdGNiaUFnSUNCeVpYUjFjbTRnZXlCamIyNW1hV2NzSUdOc2FXVnVkQ0I5TzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWTNKbFlYUmxRMnhwWlc1MFVtOXNaWE1vWEc0Z0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaem9nUzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl4Y2JpQWdJQ0J5YjJ4bFEyOXVabWxuY3pvZ1MyVjVZMnh2WVd0RGJHbGxiblJTYjJ4bFEyOXVabWxuVzEwZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1OeVpXRjBaVU5zYVdWdWRGSnZiR1Z6WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVkRiR2xsYm5SU2IyeGxjeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtOXNaWE1nUFNCeWIyeGxRMjl1Wm1sbmN5QS9QeUJyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG1Oc2FXVnVkQzV5YjJ4bGN5QS9QeUJiWFR0Y2JpQWdJQ0JqYjI1emRDQnlaV0ZzYlVGalkyVnpjMVJ2YTJWdUlEMGdZWGRoYVhRZ2RHaHBjeTVuWlhSU1pXRnNiVUZqWTJWemMxUnZhMlZ1S0Z4dUlDQWdJQ0FnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnl4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnY205c1pTQnZaaUJ5YjJ4bGN5a2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdJQ0JjSWxCUFUxUmNJaXhjYmlBZ0lDQWdJQ0FnWUM5aFpHMXBiaTl5WldGc2JYTXZKSHRyWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTG5KbFlXeHRRWEJwVlhObGNqOHVjbVZoYkcxOUwyTnNhV1Z1ZEhNdkpIdHJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5MbU5zYVdWdWRDNWpiR2xsYm5SVlZVbEVmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQWdJSEpsWVd4dFFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNCdVlXMWxPaUJ5YjJ4bExuSnZiR1ZPWVcxbExGeHVJQ0FnSUNBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCeWIyeGxMbVJsYzJOeWFYQjBhVzl1SUQ4L0lHQkJkWFJ2TFdOeVpXRjBaV1FnY205c1pTQWtlM0p2YkdVdWNtOXNaVTVoYldWOVlDeGNiaUFnSUNBZ0lDQWdJQ0JqYjIxd2IzTnBkR1U2SUdaaGJITmxMRnh1SUNBZ0lDQWdJQ0FnSUdOc2FXVnVkRkp2YkdVNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lESXdNU3hjYmlBZ0lDQWdJQ0FnZTMwc1hHNGdJQ0FnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU55WldGMFpYTWdZU0J5WldGc2JTMXNaWFpsYkNCeWIyeGxJR2x1SUhSb1pTQnpjR1ZqYVdacFpXUWdjbVZoYkcwdVhHNGdJQ0FxWEc0Z0lDQXFJRmRvWlc0Z1lHTnZiWEJ2YzJsMFpWSnZiR1Z6WUNCcGN5QndjbTkyYVdSbFpDd2dkR2hsSUhKdmJHVWdhWE1nWTNKbFlYUmxaQ0JoY3lCaElFdGxlV05zYjJGclhHNGdJQ0FxSUdOdmJYQnZjMmwwWlNCeWIyeGxJSFJvWVhRZ2FXNWpiSFZrWlhNZ2RHaGxJR2RwZG1WdUlITjFZaTF5YjJ4bGN5NGdJRlJvYVhNZ1lXeHNiM2R6SUhKdmJHVmNiaUFnSUNvZ2FHbGxjbUZ5WTJocFpYTWdLR1V1Wnk0Z1lHRmtiV2x1SU9LS2d5QjNjbWwwWlhJZzRvcURJSEpsWVdSbGNtQXBJSE52SUhSb1lYUWdZU0IxYzJWeUlHRnpjMmxuYm1Wa1hHNGdJQ0FxSUhSb1pTQmpiMjF3YjNOcGRHVWdjbTlzWlNCaGRYUnZiV0YwYVdOaGJHeDVJR2x1YUdWeWFYUnpJR0ZzYkNCemRXSXRjbTlzWlhNZ2FXNGdkR2hsYVhJZ1NsZFVMbHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnY21WaGJHMU9ZVzFsSUNBZ0lDQWdWR2hsSUhKbFlXeHRJR2x1SUhkb2FXTm9JSFJ2SUdOeVpXRjBaU0IwYUdVZ2NtOXNaUzVjYmlBZ0lDb2dRSEJoY21GdElISnZiR1ZPWVcxbElDQWdJQ0FnSUZSb1pTQnVZVzFsSUc5bUlIUm9aU0J5WldGc2JTQnliMnhsSUhSdklHTnlaV0YwWlM1Y2JpQWdJQ29nUUhCaGNtRnRJR052YlhCdmMybDBaVkp2YkdWeklFOXdkR2x2Ym1Gc0lHRnljbUY1SUc5bUlHVjRhWE4wYVc1bklISmxZV3h0SUhKdmJHVWdibUZ0WlhNZ2RHOWNiaUFnSUNvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WTJ4MVpHVWdZWE1nWTI5dGNHOXphWFJsY3k1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdOeVpXRjBaVkpsWVd4dFVtOXNaU2hjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJR052YlhCdmMybDBaVkp2YkdWek9pQnpkSEpwYm1kYlhTQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVkzSmxZWFJsVW1WaGJHMVNiMnhsWENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVqY21WaGRHVlNaV0ZzYlZKdmJHVXBPMXh1SUNBZ0lHTnZibk4wSUdGa2JXbHVRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRUZrYldsdVFXTmpaWE56Vkc5clpXNG9MaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pRVDFOVVhDSXNYRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UzSmxZV3h0VG1GdFpYMHZjbTlzWlhOZ0xGeHVJQ0FnSUNBZ1lXUnRhVzVCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2JtRnRaVG9nY205c1pVNWhiV1VzWEc0Z0lDQWdJQ0FnSUdSbGMyTnlhWEIwYVc5dU9pQmdRWFYwYnkxamNtVmhkR1ZrSUhKbFlXeHRJSEp2YkdVZ0pIdHliMnhsVG1GdFpYMWdMRnh1SUNBZ0lDQWdJQ0JqYjIxd2IzTnBkR1U2SUNFaFkyOXRjRzl6YVhSbFVtOXNaWE1nSmlZZ1kyOXRjRzl6YVhSbFVtOXNaWE11YkdWdVozUm9JRDRnTUN4Y2JpQWdJQ0FnSUNBZ0xpNHVLR052YlhCdmMybDBaVkp2YkdWeklDWW1JR052YlhCdmMybDBaVkp2YkdWekxteGxibWQwYUNBK0lEQmNiaUFnSUNBZ0lDQWdJQ0EvSUhzZ1kyOXRjRzl6YVhSbGN6b2dleUJ5WldGc2JUb2dZMjl0Y0c5emFYUmxVbTlzWlhNZ2ZTQjlYRzRnSUNBZ0lDQWdJQ0FnT2lCN2ZTa3NYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdNakF4TEZ4dUlDQWdJQ0FnZTMwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdkbGRGSmxZV3h0VW05c1pYTW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4aGJubGJYVDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0puWlhSU1pXRnNiVkp2YkdWelhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1blpYUlNaV0ZzYlZKdmJHVnpLVHRjYmlBZ0lDQmpiMjV6ZENCaFpHMXBia0ZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJCWkcxcGJrRmpZMlZ6YzFSdmEyVnVLQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pIUlZSY0lpeGNiaUFnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2NtVmhiRzFPWVcxbGZTOXliMnhsYzJBc1hHNGdJQ0FnSUNCaFpHMXBia0ZqWTJWemMxUnZhMlZ1TEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnTWpBd0xGeHVJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXdZWEp6WlVwemIyNVNaWE53YjI1elpUeGhibmxiWFQ0b2NtVnpjRzl1YzJVdVpHRjBZU2tnUHo4Z1cxMDdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5Qm5aWFJEYkdsbGJuUlNiMnhsY3loY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQmpiR2xsYm5SVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeGhibmxiWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKblpYUkRiR2xsYm5SU2IyeGxjMXdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVaMlYwUTJ4cFpXNTBVbTlzWlhNcE8xeHVJQ0FnSUdOdmJuTjBJR0ZrYldsdVFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRFRmtiV2x1UVdOalpYTnpWRzlyWlc0b0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnWUM5aFpHMXBiaTl5WldGc2JYTXZKSHR5WldGc2JVNWhiV1Y5TDJOc2FXVnVkSE12Skh0amJHbGxiblJWVlVsRWZTOXliMnhsYzJBc1hHNGdJQ0FnSUNCaFpHMXBia0ZqWTJWemMxUnZhMlZ1TEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnTWpBd0xGeHVJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXdZWEp6WlVwemIyNVNaWE53YjI1elpUeGhibmxiWFQ0b2NtVnpjRzl1YzJVdVpHRjBZU2tnUHo4Z1cxMDdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5Qm5jbUZ1ZEZKbFlXeHRVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RYTmxjbFZWU1VRNklITjBjbWx1Wnl4Y2JpQWdJQ0J5YjJ4bFRtRnRaWE02SUhOMGNtbHVaMXRkTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSm5jbUZ1ZEZKbFlXeHRVbTlzWlhOVWIxVnpaWEpjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbWR5WVc1MFVtVmhiRzFTYjJ4bGMxUnZWWE5sY2lrN1hHNGdJQ0FnWTI5dWMzUWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpQTlJR0YzWVdsMElIUm9hWE11WjJWMFFXUnRhVzVCWTJObGMzTlViMnRsYmlndUxpNWpkSGhCY21kektUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtRnpjMmxuYmxKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwzSnZiR1Z6WUN4Y2JpQWdJQ0FnSUdBdllXUnRhVzR2Y21WaGJHMXpMeVI3Y21WaGJHMU9ZVzFsZlM5MWMyVnljeThrZTNWelpYSlZWVWxFZlM5eWIyeGxMVzFoY0hCcGJtZHpMM0psWVd4dFlDeGNiaUFnSUNBZ0lISnZiR1ZPWVcxbGN5eGNiaUFnSUNBZ0lHRmtiV2x1UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdkeVlXNTBRMnhwWlc1MFVtOXNaWE5VYjFWelpYSW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnWTJ4cFpXNTBWVlZKUkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtOXNaVTVoYldWek9pQnpkSEpwYm1kYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWjNKaGJuUkRiR2xsYm5SU2IyeGxjMVJ2VlhObGNsd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVozSmhiblJEYkdsbGJuUlNiMnhsYzFSdlZYTmxjaWs3WEc0Z0lDQWdZMjl1YzNRZ1lXUnRhVzVCWTJObGMzTlViMnRsYmlBOUlHRjNZV2wwSUhSb2FYTXVaMlYwUVdSdGFXNUJZMk5sYzNOVWIydGxiaWd1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1GemMybG5ibEp2YkdWelZHOVZjMlZ5S0Z4dUlDQWdJQ0FnWUM5aFpHMXBiaTl5WldGc2JYTXZKSHR5WldGc2JVNWhiV1Y5TDJOc2FXVnVkSE12Skh0amJHbGxiblJWVlVsRWZTOXliMnhsYzJBc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmRYTmxjbk12Skh0MWMyVnlWVlZKUkgwdmNtOXNaUzF0WVhCd2FXNW5jeTlqYkdsbGJuUnpMeVI3WTJ4cFpXNTBWVlZKUkgxZ0xGeHVJQ0FnSUNBZ2NtOXNaVTVoYldWekxGeHVJQ0FnSUNBZ1lXUnRhVzVCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WMmIydGxVbVZoYkcxU2IyeGxjMFp5YjIxVmMyVnlLRnh1SUNBZ0lISmxZV3h0VG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUhWelpYSlZWVWxFT2lCemRISnBibWNzWEc0Z0lDQWdjbTlzWlU1aGJXVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWNtVjJiMnRsVW1WaGJHMVNiMnhsYzBaeWIyMVZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WlhadmEyVlNaV0ZzYlZKdmJHVnpSbkp2YlZWelpYSXBPMXh1SUNBZ0lHTnZibk4wSUdGa2JXbHVRV05qWlhOelZHOXJaVzRnUFNCaGQyRnBkQ0IwYUdsekxtZGxkRUZrYldsdVFXTmpaWE56Vkc5clpXNG9MaTR1WTNSNFFYSm5jeWs3WEc0Z0lDQWdZMjl1YzNRZ2NtOXNaWE5TWlhOd2IyNXpaU0E5SUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVIwVlVYQ0lzWEc0Z0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlM0psWVd4dFRtRnRaWDB2Y205c1pYTmdMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtOXNaWE1nUFNCMGFHbHpMbkJoY25ObFNuTnZibEpsYzNCdmJuTmxQR0Z1ZVZ0ZFBpaHliMnhsYzFKbGMzQnZibk5sTG1SaGRHRXBJRDgvSUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJSE5sYkdWamRHVmtVbTlzWlhNZ1BTQnliMnhsY3k1bWFXeDBaWElvS0hKdmJHVXBJRDArSUhKdmJHVk9ZVzFsY3k1cGJtTnNkV1JsY3loeWIyeGxMbTVoYldVcEtUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrUkZURVZVUlZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwzVnpaWEp6THlSN2RYTmxjbFZWU1VSOUwzSnZiR1V0YldGd2NHbHVaM012Y21WaGJHMWdMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lITmxiR1ZqZEdWa1VtOXNaWE1zWEc0Z0lDQWdJQ0F5TURRc1hHNGdJQ0FnSUNCN2ZTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVndiR0ZqWlZKbFlXeHRVbTlzWlhOR2IzSlZjMlZ5S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIVnpaWEpWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnY205c1pVNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2ljbVZ3YkdGalpWSmxZV3h0VW05c1pYTkdiM0pWYzJWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1eVpYQnNZV05sVW1WaGJHMVNiMnhsYzBadmNsVnpaWElwTzF4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbWRsZEVGa2JXbHVRV05qWlhOelZHOXJaVzRvTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdZM1Z5Y21WdWRGSnZiR1Z6VW1WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnWUM5aFpHMXBiaTl5WldGc2JYTXZKSHR5WldGc2JVNWhiV1Y5TDNWelpYSnpMeVI3ZFhObGNsVlZTVVI5TDNKdmJHVXRiV0Z3Y0dsdVozTXZjbVZoYkcxZ0xGeHVJQ0FnSUNBZ1lXUnRhVzVCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRkp2YkdWeklEMWNiaUFnSUNBZ0lIUm9hWE11Y0dGeWMyVktjMjl1VW1WemNHOXVjMlU4WVc1NVcxMCtLR04xY25KbGJuUlNiMnhsYzFKbGMzQnZibk5sTG1SaGRHRXBJRDgvSUZ0ZE8xeHVJQ0FnSUdsbUlDaGpkWEp5Wlc1MFVtOXNaWE11YkdWdVozUm9JRDRnTUNrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXlaWEYxWlhOMEtGeHVJQ0FnSUNBZ0lDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlM0psWVd4dFRtRnRaWDB2ZFhObGNuTXZKSHQxYzJWeVZWVkpSSDB2Y205c1pTMXRZWEJ3YVc1bmN5OXlaV0ZzYldBc1hHNGdJQ0FnSUNBZ0lHRmtiV2x1UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5SU2IyeGxjeXhjYmlBZ0lDQWdJQ0FnTWpBMExGeHVJQ0FnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVuY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnSUNCeVpXRnNiVTVoYldVc1hHNGdJQ0FnSUNCMWMyVnlWVlZKUkN4Y2JpQWdJQ0FnSUhKdmJHVk9ZVzFsY3l4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WMmIydGxRMnhwWlc1MFVtOXNaWE5HY205dFZYTmxjaWhjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCamJHbGxiblJWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnZFhObGNsVlZTVVE2SUhOMGNtbHVaeXhjYmlBZ0lDQnliMnhsVG1GdFpYTTZJSE4wY21sdVoxdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKeVpYWnZhMlZEYkdsbGJuUlNiMnhsYzBaeWIyMVZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WlhadmEyVkRiR2xsYm5SU2IyeGxjMFp5YjIxVmMyVnlLVHRjYmlBZ0lDQmpiMjV6ZENCaFpHMXBia0ZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJCWkcxcGJrRmpZMlZ6YzFSdmEyVnVLQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJR052Ym5OMElISnZiR1Z6VW1WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnWUM5aFpHMXBiaTl5WldGc2JYTXZKSHR5WldGc2JVNWhiV1Y5TDJOc2FXVnVkSE12Skh0amJHbGxiblJWVlVsRWZTOXliMnhsYzJBc1hHNGdJQ0FnSUNCaFpHMXBia0ZqWTJWemMxUnZhMlZ1TEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnTWpBd0xGeHVJQ0FnSUNBZ2UzMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0J5YjJ4bGN5QTlJSFJvYVhNdWNHRnljMlZLYzI5dVVtVnpjRzl1YzJVOFlXNTVXMTArS0hKdmJHVnpVbVZ6Y0c5dWMyVXVaR0YwWVNrZ1B6OGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ2MyVnNaV04wWldSU2IyeGxjeUE5SUhKdmJHVnpMbVpwYkhSbGNpZ29jbTlzWlNrZ1BUNGdjbTlzWlU1aGJXVnpMbWx1WTJ4MVpHVnpLSEp2YkdVdWJtRnRaU2twTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJRndpUkVWTVJWUkZYQ0lzWEc0Z0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlM0psWVd4dFRtRnRaWDB2ZFhObGNuTXZKSHQxYzJWeVZWVkpSSDB2Y205c1pTMXRZWEJ3YVc1bmN5OWpiR2xsYm5Sekx5UjdZMnhwWlc1MFZWVkpSSDFnTEZ4dUlDQWdJQ0FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSE5sYkdWamRHVmtVbTlzWlhNc1hHNGdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ3YkdGalpVTnNhV1Z1ZEZKdmJHVnpSbTl5VlhObGNpaGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0JqYkdsbGJuUlZWVWxFT2lCemRISnBibWNzWEc0Z0lDQWdkWE5sY2xWVlNVUTZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxUbUZ0WlhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0p5WlhCc1lXTmxRMnhwWlc1MFVtOXNaWE5HYjNKVmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXlaWEJzWVdObFEyeHBaVzUwVW05c1pYTkdiM0pWYzJWeUtUdGNiaUFnSUNCamIyNXpkQ0JoWkcxcGJrRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1blpYUkJaRzFwYmtGalkyVnpjMVJ2YTJWdUtDNHVMbU4wZUVGeVozTXBPMXh1SUNBZ0lHTnZibk4wSUdOMWNuSmxiblJTYjJ4bGMxSmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdYQ0pIUlZSY0lpeGNiaUFnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2NtVmhiRzFPWVcxbGZTOTFjMlZ5Y3k4a2UzVnpaWEpWVlVsRWZTOXliMnhsTFcxaGNIQnBibWR6TDJOc2FXVnVkSE12Skh0amJHbGxiblJWVlVsRWZXQXNYRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwVW05c1pYTWdQVnh1SUNBZ0lDQWdkR2hwY3k1d1lYSnpaVXB6YjI1U1pYTndiMjV6WlR4aGJubGJYVDRvWTNWeWNtVnVkRkp2YkdWelVtVnpjRzl1YzJVdVpHRjBZU2tnUHo4Z1cxMDdYRzRnSUNBZ2FXWWdLR04xY25KbGJuUlNiMnhsY3k1c1pXNW5kR2dnUGlBd0tTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQWdJRndpUkVWTVJWUkZYQ0lzWEc0Z0lDQWdJQ0FnSUdBdllXUnRhVzR2Y21WaGJHMXpMeVI3Y21WaGJHMU9ZVzFsZlM5MWMyVnljeThrZTNWelpYSlZWVWxFZlM5eWIyeGxMVzFoY0hCcGJtZHpMMk5zYVdWdWRITXZKSHRqYkdsbGJuUlZWVWxFZldBc1hHNGdJQ0FnSUNBZ0lHRmtiV2x1UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNBZ0lHTjFjbkpsYm5SU2IyeGxjeXhjYmlBZ0lDQWdJQ0FnTWpBMExGeHVJQ0FnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVuY21GdWRFTnNhV1Z1ZEZKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUNBZ2NtVmhiRzFPWVcxbExGeHVJQ0FnSUNBZ1kyeHBaVzUwVlZWSlJDeGNiaUFnSUNBZ0lIVnpaWEpWVlVsRUxGeHVJQ0FnSUNBZ2NtOXNaVTVoYldWekxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHTnlaV0YwWlVoMGRIQkRiR2xsYm5Rb1kyOXVabWxuT2lCTFpYbGpiRzloYTFObGRIVndRMjl1Wm1sbktUb2dRWGhwYjNOSmJuTjBZVzVqWlNCN1hHNGdJQ0FnY21WMGRYSnVJRUY0YVc5ekxtTnlaV0YwWlNoN1hHNGdJQ0FnSUNCaVlYTmxWVkpNT2lCZ0pIdGpiMjVtYVdjdWNISnZkRzlqYjJ4OU9pOHZKSHRqYjI1bWFXY3VhRzl6ZEgxZ0xGeHVJQ0FnSUNBZ2FHVmhaR1Z5Y3pvZ2V5QmNJa052Ym5SbGJuUXRWSGx3WlZ3aU9pQmNJbUZ3Y0d4cFkyRjBhVzl1TDJwemIyNWNJaUI5TEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklDZ29kR2hwY3k1amIyNW1hV2NnWVhNZ1lXNTVLUzVwYzFCeWIyUjFZM1JwYjI0b0tTa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdaMlYwUVdSdGFXNUJZMk5sYzNOVWIydGxiaWhjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGMzUnlhVzVuUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbWRsZEVGa2JXbHVRV05qWlhOelZHOXJaVzRwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1kbGRFRmpZMlZ6YzFSdmEyVnVLSFJvYVhNdVkyOXVabWxuTG1Ga2JXbHVRWEJwVlhObGNpRXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUJuWlhSU1pXRnNiVUZqWTJWemMxUnZhMlZ1S0Z4dUlDQWdJR3RsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1blpYUlNaV0ZzYlVGalkyVnpjMVJ2YTJWdUtUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW5aWFJCWTJObGMzTlViMnRsYmloclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjaUVzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCblpYUkJZMk5sYzNOVWIydGxiaWhjYmlBZ0lDQnJaWGxqYkc5aGExVnpaWEk2SUV0bGVXTnNiMkZyVlhObGNpeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtZGxkRUZqWTJWemMxUnZhMlZ1S1R0Y2JpQWdJQ0JqYjI1emRDQnlaWE53YjI1elpTQTlJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJRndpVUU5VFZGd2lMRnh1SUNBZ0lDQWdZQzl5WldGc2JYTXZKSHRyWlhsamJHOWhhMVZ6WlhJdWNtVmhiRzE5TDNCeWIzUnZZMjlzTDI5d1pXNXBaQzFqYjI1dVpXTjBMM1J2YTJWdVlDeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lHNWxkeUJWVWt4VFpXRnlZMmhRWVhKaGJYTW9lMXh1SUNBZ0lDQWdJQ0JqYkdsbGJuUmZhV1E2SUd0bGVXTnNiMkZyVlhObGNpNWhjR2xEYkdsbGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnZFhObGNtNWhiV1U2SUd0bGVXTnNiMkZyVlhObGNpNTFjMlZ5Ym1GdFpTeGNiaUFnSUNBZ0lDQWdjR0Z6YzNkdmNtUTZJR3RsZVdOc2IyRnJWWE5sY2k1d1lYTnpkMjl5WkN4Y2JpQWdJQ0FnSUNBZ1ozSmhiblJmZEhsd1pUb2dYQ0p3WVhOemQyOXlaRndpTEZ4dUlDQWdJQ0FnZlNrdWRHOVRkSEpwYm1jb0tTeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHNnWENKamIyNTBaVzUwTFhSNWNHVmNJam9nWENKaGNIQnNhV05oZEdsdmJpOTRMWGQzZHkxbWIzSnRMWFZ5YkdWdVkyOWtaV1JjSWlCOUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdaR0YwWVNBOUlIUm9hWE11Y0dGeWMyVktjMjl1VW1WemNHOXVjMlU4ZXlCaFkyTmxjM05mZEc5clpXNC9PaUJ6ZEhKcGJtY2dmVDRvWEc0Z0lDQWdJQ0J5WlhOd2IyNXpaUzVrWVhSaFhHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb1pHRjBZVDh1WVdOalpYTnpYM1J2YTJWdUtTQnlaWFIxY200Z1pHRjBZUzVoWTJObGMzTmZkRzlyWlc0N1hHNGdJQ0FnZEdoeWIzY2dibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWhjYmlBZ0lDQWdJR0JWYm1GaWJHVWdkRzhnWjJWMElFdGxlV05zYjJGcklHRmpZMlZ6Y3lCMGIydGxiaUJtYjNJZ2RYTmxjaUFrZTJ0bGVXTnNiMkZyVlhObGNpNTFjMlZ5Ym1GdFpYMWdYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHRnpjMmxuYmxKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUhKdmJHVnpWWEpzT2lCemRISnBibWNzWEc0Z0lDQWdjMlYwVW05c1pYTlZjbXc2SUhOMGNtbHVaeXhjYmlBZ0lDQnliMnhsVG1GdFpYTTZJSE4wY21sdVoxdGRMRnh1SUNBZ0lHRmpZMlZ6YzFSdmEyVnVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1GemMybG5ibEp2YkdWelZHOVZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVoYzNOcFoyNVNiMnhsYzFSdlZYTmxjaWs3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ2NtOXNaWE5WY213c1hHNGdJQ0FnSUNCaFkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtOXNaWE1nUFNCMGFHbHpMbkJoY25ObFNuTnZibEpsYzNCdmJuTmxQR0Z1ZVZ0ZFBpaHlaWE53YjI1elpTNWtZWFJoS1NBL1B5QmJYVHRjYmlBZ0lDQmpiMjV6ZENCelpXeGxZM1JsWkZKdmJHVnpJRDBnY205c1pYTXVabWxzZEdWeUtDaHliMnhsS1NBOVBpQnliMnhsVG1GdFpYTXVhVzVqYkhWa1pYTW9jbTlzWlM1dVlXMWxLU2s3WEc0Z0lDQWdhV1lnS0hObGJHVmpkR1ZrVW05c1pYTXViR1Z1WjNSb0lEMDlQU0F3S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1RtOTBSbTkxYm1SRmNuSnZjaWhnVG04Z2NtOXNaWE1nYldGMFkyaGxaQ0FrZTNKdmJHVk9ZVzFsY3k1cWIybHVLRndpTENCY0lpbDlZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhCeWIyMXBjMlZ6T2lCUWNtOXRhWE5sUEhadmFXUStXMTBnUFNCelpXeGxZM1JsWkZKdmJHVnpMbTFoY0Nnb2NtOXNaU2tnUFQ1Y2JpQWdJQ0FnSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lDQWdYQ0pRVDFOVVhDSXNYRzRnSUNBZ0lDQWdJSE5sZEZKdmJHVnpWWEpzTEZ4dUlDQWdJQ0FnSUNCaFkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lDQWdXM0p2YkdWZExGeHVJQ0FnSUNBZ0lDQXlNRFFzWEc0Z0lDQWdJQ0FnSUh0OUxGeHVJQ0FnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0lDQXBYRzRnSUNBZ0tUdGNiaUFnSUNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNod2NtOXRhWE5sY3lrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUhKbGNYVmxjM1FvWEc0Z0lDQWdiV1YwYUc5a09pQmNJa2RGVkZ3aUlId2dYQ0pRVDFOVVhDSWdmQ0JjSWxCVlZGd2lJSHdnWENKRVJVeEZWRVZjSWl4Y2JpQWdJQ0J3WVhSb09pQnpkSEpwYm1jc1hHNGdJQ0FnWVdOalpYTnpWRzlyWlc0NklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCd1lYbHNiMkZrT2lCMWJtdHViM2R1TEZ4dUlDQWdJSE4xWTJObGMzTkRiMlJsT2lCdWRXMWlaWElzWEc0Z0lDQWdhR1ZoWkdWeWN6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2MzUnlhVzVuUGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThZVzU1UGlCN1hHNGdJQ0FnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXlaWEYxWlhOMEtUdGNiaUFnSUNCamIyNXpkQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJSFJvYVhNdVkyeHBaVzUwTG5KbGNYVmxjM1FvZTF4dUlDQWdJQ0FnYldWMGFHOWtMRnh1SUNBZ0lDQWdkWEpzT2lCZ0pIdDBhR2x6TG1OdmJtWnBaeTV3Y205MGIyTnZiSDA2THk4a2UzUm9hWE11WTI5dVptbG5MbWh2YzNSOUpIdHdZWFJvZldBc1hHNGdJQ0FnSUNCa1lYUmhPbHh1SUNBZ0lDQWdJQ0J3WVhsc2IyRmtJRDA5UFNCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ0lDQS9JSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSURvZ2RIbHdaVzltSUhCaGVXeHZZV1FnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2NHRjViRzloWkZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJLVTA5T0xuTjBjbWx1WjJsbWVTaHdZWGxzYjJGa0tTeGNiaUFnSUNBZ0lHaGxZV1JsY25NNklIdGNiaUFnSUNBZ0lDQWdMaTR1YUdWaFpHVnljeXhjYmlBZ0lDQWdJQ0FnTGk0dUtHRmpZMlZ6YzFSdmEyVnVJRDhnZXlCQmRYUm9iM0pwZW1GMGFXOXVPaUJnUW1WaGNtVnlJQ1I3WVdOalpYTnpWRzlyWlc1OVlDQjlJRG9nZTMwcExGeHVJQ0FnSUNBZ0lDQXVMaTRvY0dGNWJHOWhaQ0FoUFQwZ2RXNWtaV1pwYm1Wa0lDWW1JSFI1Y0dWdlppQndZWGxzYjJGa0lDRTlQU0JjSW5OMGNtbHVaMXdpWEc0Z0lDQWdJQ0FnSUNBZ1B5QjdJRndpUTI5dWRHVnVkQzFVZVhCbFhDSTZJRndpWVhCd2JHbGpZWFJwYjI0dmFuTnZibHdpSUgxY2JpQWdJQ0FnSUNBZ0lDQTZJSHQ5S1N4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCb2RIUndjMEZuWlc1ME9pQnVaWGNnYUhSMGNITXVRV2RsYm5Rb2UxeHVJQ0FnSUNBZ0lDQnlaV3BsWTNSVmJtRjFkR2h2Y21sNlpXUTZJQ2dvZEdocGN5NWpiMjVtYVdjZ1lYTWdZVzU1S1M1cGMxQnliMlIxWTNScGIyNG9LU2tzWEc0Z0lDQWdJQ0I5S1N4Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTNSaGRIVnpPaUFvS1NBOVBpQjBjblZsTEZ4dUlDQWdJSDBwTzF4dUlDQWdJR2xtSUNoeVpYTndiMjV6WlM1emRHRjBkWE1nSVQwOUlITjFZMk5sYzNORGIyUmxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtaGhibVJzWlVoMGRIQlNaWE53YjI1elpTaHlaWE53YjI1elpTd2djM1ZqWTJWemMwTnZaR1VwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2NtVnpjRzl1YzJVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHaGhibVJzWlVoMGRIQlNaWE53YjI1elpTaGNiaUFnSUNCeVpYTndiMjV6WlRvZ1lXNTVMRnh1SUNBZ0lITjFZMk5sYzNORGIyUmxPaUJ1ZFcxaVpYSXNYRzRnSUNBZ1pYSnliM0pOYzJjL09pQnpkSEpwYm1kY2JpQWdLVG9nZG05cFpDQjdYRzRnSUNBZ1kyOXVjM1FnYzNSaGRIVnpJRDBnY21WemNHOXVjMlV1YzNSaGRIVnpJR0Z6SUc1MWJXSmxjanRjYmlBZ0lDQmpiMjV6ZENCdFpYTnpZV2RsSUQwZ1pYSnliM0pOYzJkY2JpQWdJQ0FnSUQ4Z1lDUjdaWEp5YjNKTmMyZDlPaUJGZUhCbFkzUmxaQ0FrZTNOMVkyTmxjM05EYjJSbGZTd2djbVZqWldsMlpXUWdKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTjlPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOUxtQmNiaUFnSUNBZ0lEb2dZRVY0Y0dWamRHVmtJQ1I3YzNWalkyVnpjME52WkdWOUxDQnlaV05sYVhabFpDQWtlM0psYzNCdmJuTmxMbk4wWVhSMWMzMDZJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpWR1Y0ZEgxZ08xeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TkNCOGZDQnRaWE56WVdkbExuUnZURzkzWlhKRFlYTmxLQ2t1YVc1amJIVmtaWE1vWENKdWIzUWdabTkxYm1SY0lpa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2MzUmhkSFZ6SUQwOVBTQTBNRGtnZkh3Z2JXVnpjMkZuWlM1MGIweHZkMlZ5UTJGelpTZ3BMbWx1WTJ4MVpHVnpLRndpWTI5dVpteHBZM1JjSWlrcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkRiMjVtYkdsamRFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvYzNSaGRIVnpJRDA5UFNBME1EQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJDWVdSU1pYRjFaWE4wUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpkR0YwZFhNZ1BUMDlJRFF3TVNCOGZDQnpkR0YwZFhNZ1BUMDlJRFF3TXlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lIQmhjbk5sUlhKeWIzSW9aWEp5YjNJNklFVnljbTl5S1RvZ1JYSnliM0lnZTF4dUlDQWdJR052Ym5OMElHMWxjM05oWjJVZ1BTQmxjbkp2Y2k1dFpYTnpZV2RsSUh4OElHVnljbTl5TG01aGJXVWdmSHdnWENKVmJtdHViM2R1SUdWeWNtOXlYQ0k3WEc0Z0lDQWdZMjl1YzNRZ2JHOTNaWEpOWlhOellXZGxJRDBnYldWemMyRm5aUzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVYRzRnSUNBZ2FXWWdLR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0ltNXZkQ0JtYjNWdVpGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURSY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVG05MFJtOTFibVJGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVlXeHlaV0ZrZVNCbGVHbHpkSE5jSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVkyOXVabXhwWTNSY0lpa2dmSHdnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREE1WENJcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRU52Ym1ac2FXTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSW1sdWRtRnNhV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aVltRmtJSEpsY1hWbGMzUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBd1hDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lkVzVoZFhSb2IzSnBlbVZrWENJcElIeDhJR3h2ZDJWeVRXVnpjMkZuWlM1cGJtTnNkV1JsY3loY0lqUXdNVndpS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5Qk9iM1JHYjNWdVpFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0ptYjNKaWFXUmtaVzVjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXpYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQndZWEp6WlVwemIyNVNaWE53YjI1elpUeFVQaWhrWVhSaE9pQjFibXR1YjNkdUtUb2dWQ0I4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnYVdZZ0tIUjVjR1Z2WmlCa1lYUmhJRDA5UFNCY0luTjBjbWx1WjF3aUtTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnU2xOUFRpNXdZWEp6WlNoa1lYUmhLU0JoY3lCVU8xeHVJQ0FnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQmtZWFJoSUdGeklGUTdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==