@decaf-ts/integrations 0.14.2 → 0.14.3

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 (1166) hide show
  1. package/README.md +11 -1
  2. package/dist/integrations.cjs +3317 -2
  3. package/dist/integrations.js +3665 -2
  4. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/index.cjs +2 -2
  7. package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
  8. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  9. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  11. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  13. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  14. package/lib/cjs/blob/core/index.cjs +2 -2
  15. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
  16. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  17. package/lib/cjs/blob/gcp/index.cjs +2 -2
  18. package/lib/cjs/blob/index.cjs +2 -2
  19. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
  20. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  21. package/lib/cjs/blob/local/index.cjs +2 -2
  22. package/lib/cjs/blob/memory/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs +2 -2
  26. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  27. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
  28. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  29. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
  30. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  31. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
  32. package/lib/cjs/blob/s3/index.cjs +2 -2
  33. package/lib/cjs/calendar/CalendarService.cjs +2 -2
  34. package/lib/cjs/calendar/environment.cjs +2 -2
  35. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
  36. package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
  37. package/lib/cjs/calendar/index.cjs +2 -2
  38. package/lib/cjs/calendar/types.cjs +2 -2
  39. package/lib/cjs/calendar/validators/cron.cjs +2 -2
  40. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
  41. package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
  42. package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
  43. package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
  44. package/lib/cjs/comms/discord/index.cjs +2 -2
  45. package/lib/cjs/comms/email/EmailService.cjs +2 -2
  46. package/lib/cjs/comms/email/index.cjs +2 -2
  47. package/lib/cjs/comms/email/mime.cjs +2 -2
  48. package/lib/cjs/comms/email/smtp.cjs +2 -2
  49. package/lib/cjs/comms/environment.cjs +2 -2
  50. package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
  51. package/lib/cjs/comms/gmail/index.cjs +2 -2
  52. package/lib/cjs/comms/index.cjs +2 -2
  53. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
  54. package/lib/cjs/comms/outlook/index.cjs +2 -2
  55. package/lib/cjs/comms/slack/SlackService.cjs +2 -2
  56. package/lib/cjs/comms/slack/index.cjs +2 -2
  57. package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
  58. package/lib/cjs/comms/teams/index.cjs +2 -2
  59. package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
  60. package/lib/cjs/comms/telegram/index.cjs +2 -2
  61. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
  62. package/lib/cjs/comms/whatsapp/index.cjs +2 -2
  63. package/lib/cjs/devops/environment.cjs +2 -2
  64. package/lib/cjs/devops/github/GithubService.cjs +2 -2
  65. package/lib/cjs/devops/github/index.cjs +2 -2
  66. package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
  67. package/lib/cjs/devops/gitlab/index.cjs +2 -2
  68. package/lib/cjs/devops/index.cjs +2 -2
  69. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  70. package/lib/cjs/docker/index.cjs +2 -2
  71. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
  72. package/lib/cjs/feature-flags/constants.cjs +2 -2
  73. package/lib/cjs/feature-flags/decorators.cjs +2 -2
  74. package/lib/cjs/feature-flags/environment.cjs +2 -2
  75. package/lib/cjs/feature-flags/index.cjs +2 -2
  76. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
  77. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
  78. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
  79. package/lib/cjs/feature-flags/readers/index.cjs +2 -2
  80. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
  81. package/lib/cjs/feature-flags/types.cjs +2 -2
  82. package/lib/cjs/feature-flags/utils.cjs +2 -2
  83. package/lib/cjs/index.cjs +5 -5
  84. package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
  85. package/lib/cjs/io/airtable/index.cjs +2 -2
  86. package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
  87. package/lib/cjs/io/confluence/index.cjs +2 -2
  88. package/lib/cjs/io/environment.cjs +2 -2
  89. package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
  90. package/lib/cjs/io/google-docs/index.cjs +2 -2
  91. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
  92. package/lib/cjs/io/google-sheets/index.cjs +2 -2
  93. package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
  94. package/lib/cjs/io/graphql/index.cjs +2 -2
  95. package/lib/cjs/io/index.cjs +2 -2
  96. package/lib/cjs/io/jira/JiraService.cjs +2 -2
  97. package/lib/cjs/io/jira/index.cjs +2 -2
  98. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
  99. package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
  100. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
  101. package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
  102. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
  103. package/lib/cjs/io/spreadsheet/index.cjs +2 -2
  104. package/lib/cjs/keycloak/broker.cjs +2 -2
  105. package/lib/cjs/keycloak/index.cjs +2 -2
  106. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  107. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  108. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  109. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  110. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  111. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  112. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  113. package/lib/cjs/keycloak/services/index.cjs +2 -2
  114. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  115. package/lib/cjs/keycloak/types.cjs +2 -2
  116. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
  117. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
  118. package/lib/cjs/kibana/builders/index.cjs +2 -2
  119. package/lib/cjs/kibana/helpers.cjs +2 -2
  120. package/lib/cjs/kibana/index.cjs +2 -2
  121. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  122. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  123. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  124. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  125. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  126. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  127. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  128. package/lib/cjs/kibana/services/index.cjs +2 -2
  129. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  130. package/lib/cjs/kibana/types.cjs +2 -2
  131. package/lib/cjs/loader/ObjectLoader.cjs +2 -2
  132. package/lib/cjs/loader/assets.cjs +2 -2
  133. package/lib/cjs/loader/config.cjs +2 -2
  134. package/lib/cjs/loader/families.cjs +2 -2
  135. package/lib/cjs/loader/index.cjs +2 -2
  136. package/lib/cjs/loader/nest.cjs +2 -2
  137. package/lib/cjs/loader/types.cjs +2 -2
  138. package/lib/cjs/namespaces/index.cjs +2 -2
  139. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  140. package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
  141. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  142. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  143. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  144. package/lib/cjs/namespaces/models/index.cjs +2 -2
  145. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  146. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  147. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  148. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  149. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  150. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  151. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  152. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  153. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  154. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  155. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  156. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  157. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  158. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  159. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  160. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  161. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  162. package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
  163. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  164. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
  165. package/lib/cjs/namespaces/rls/index.cjs +2 -2
  166. package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
  167. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
  168. package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
  169. package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
  170. package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
  171. package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
  172. package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
  173. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  174. package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
  175. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  176. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  177. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  178. package/lib/cjs/namespaces/services/index.cjs +2 -2
  179. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
  180. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
  181. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  182. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  183. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  184. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  185. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  186. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  187. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  188. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  189. package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
  190. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  191. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  192. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  193. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  194. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  195. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  196. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  197. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  198. package/lib/cjs/namespaces/types.cjs +2 -2
  199. package/lib/cjs/namespaces/utils.cjs +2 -2
  200. package/lib/cjs/nest/decorators.cjs +2 -2
  201. package/lib/cjs/nest/index.cjs +2 -2
  202. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  203. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  204. package/lib/cjs/nest/logging.cjs +2 -2
  205. package/lib/cjs/nest/types.cjs +2 -2
  206. package/lib/cjs/nest/utils.cjs +2 -2
  207. package/lib/cjs/plugins/contract.cjs +2 -2
  208. package/lib/cjs/plugins/index.cjs +2 -2
  209. package/lib/cjs/plugins/kibana/host.cjs +2 -2
  210. package/lib/cjs/plugins/kibana/index.cjs +2 -2
  211. package/lib/cjs/plugins/kibana/installer.cjs +2 -2
  212. package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
  213. package/lib/cjs/plugins/kibana/templates.cjs +2 -2
  214. package/lib/cjs/plugins/kibana/types.cjs +2 -2
  215. package/lib/cjs/plugins/superset/host.cjs +2 -2
  216. package/lib/cjs/plugins/superset/index.cjs +2 -2
  217. package/lib/cjs/plugins/superset/installer.cjs +2 -2
  218. package/lib/cjs/plugins/superset/manifest.cjs +2 -2
  219. package/lib/cjs/plugins/superset/templates.cjs +2 -2
  220. package/lib/cjs/plugins/superset/types.cjs +2 -2
  221. package/lib/cjs/redis/RedisContextLock.cjs +2 -2
  222. package/lib/cjs/redis/RedisDispatch.cjs +2 -2
  223. package/lib/cjs/redis/RedisPaginator.cjs +2 -2
  224. package/lib/cjs/redis/RedisStatement.cjs +2 -2
  225. package/lib/cjs/redis/adapter.cjs +2 -2
  226. package/lib/cjs/redis/constants.cjs +2 -2
  227. package/lib/cjs/redis/handlers.cjs +2 -2
  228. package/lib/cjs/redis/index.cjs +2 -2
  229. package/lib/cjs/redis/serialization.cjs +2 -2
  230. package/lib/cjs/redis/types.cjs +2 -2
  231. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
  232. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
  233. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  234. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  235. package/lib/cjs/secrets/aws/index.cjs +2 -2
  236. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  237. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  238. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
  239. package/lib/cjs/secrets/azure/index.cjs +2 -2
  240. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
  241. package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
  242. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  243. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  244. package/lib/cjs/secrets/core/SecretReference.cjs +3 -2
  245. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  246. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  247. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  248. package/lib/cjs/secrets/core/index.cjs +2 -2
  249. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
  250. package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
  251. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
  252. package/lib/cjs/secrets/fs/index.cjs +2 -2
  253. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
  254. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  255. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  256. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  257. package/lib/cjs/secrets/index.cjs +2 -2
  258. package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +34 -0
  259. package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +479 -0
  260. package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +4 -0
  261. package/lib/cjs/secrets/kubernetes/index.cjs +27 -0
  262. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  263. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
  264. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  265. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  266. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  267. package/lib/cjs/secrets/model/index.cjs +2 -2
  268. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
  269. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  270. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  271. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  272. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
  273. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  274. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  275. package/lib/cjs/secrets/vault/index.cjs +2 -2
  276. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
  277. package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
  278. package/lib/cjs/sftp/aws/index.cjs +2 -2
  279. package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
  280. package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
  281. package/lib/cjs/sftp/core/index.cjs +2 -2
  282. package/lib/cjs/sftp/index.cjs +2 -2
  283. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
  284. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
  285. package/lib/cjs/sftp/ssh2/index.cjs +2 -2
  286. package/lib/cjs/shared/environmentValue.cjs +2 -2
  287. package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
  288. package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
  289. package/lib/cjs/shared/http/index.cjs +2 -2
  290. package/lib/cjs/shared/runtime.cjs +2 -2
  291. package/lib/cjs/user-requests/index.cjs +2 -2
  292. package/lib/cjs/utils.cjs +2 -2
  293. package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
  294. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  295. package/lib/esm/blob/azure/index.js +1 -1
  296. package/lib/esm/blob/core/BlobEnvironment.js +1 -1
  297. package/lib/esm/blob/core/BlobErrors.js +1 -1
  298. package/lib/esm/blob/core/BlobKey.js +1 -1
  299. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  300. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  301. package/lib/esm/blob/core/BlobTypes.js +1 -1
  302. package/lib/esm/blob/core/BlobValue.js +1 -1
  303. package/lib/esm/blob/core/index.js +1 -1
  304. package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
  305. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  306. package/lib/esm/blob/gcp/index.js +1 -1
  307. package/lib/esm/blob/index.js +1 -1
  308. package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
  309. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  310. package/lib/esm/blob/local/index.js +1 -1
  311. package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
  312. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  313. package/lib/esm/blob/memory/index.js +1 -1
  314. package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
  315. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  316. package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
  317. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  318. package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
  319. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  320. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
  321. package/lib/esm/blob/s3/index.js +1 -1
  322. package/lib/esm/calendar/CalendarService.js +1 -1
  323. package/lib/esm/calendar/environment.js +1 -1
  324. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
  325. package/lib/esm/calendar/google-calendar/index.js +1 -1
  326. package/lib/esm/calendar/index.js +1 -1
  327. package/lib/esm/calendar/types.js +1 -1
  328. package/lib/esm/calendar/validators/cron.js +1 -1
  329. package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
  330. package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
  331. package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
  332. package/lib/esm/comms/discord/DiscordService.js +1 -1
  333. package/lib/esm/comms/discord/index.js +1 -1
  334. package/lib/esm/comms/email/EmailService.js +1 -1
  335. package/lib/esm/comms/email/index.js +1 -1
  336. package/lib/esm/comms/email/mime.js +1 -1
  337. package/lib/esm/comms/email/smtp.js +1 -1
  338. package/lib/esm/comms/environment.js +1 -1
  339. package/lib/esm/comms/gmail/GmailService.js +1 -1
  340. package/lib/esm/comms/gmail/index.js +1 -1
  341. package/lib/esm/comms/index.js +1 -1
  342. package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
  343. package/lib/esm/comms/outlook/index.js +1 -1
  344. package/lib/esm/comms/slack/SlackService.js +1 -1
  345. package/lib/esm/comms/slack/index.js +1 -1
  346. package/lib/esm/comms/teams/TeamsService.js +1 -1
  347. package/lib/esm/comms/teams/index.js +1 -1
  348. package/lib/esm/comms/telegram/TelegramService.js +1 -1
  349. package/lib/esm/comms/telegram/index.js +1 -1
  350. package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
  351. package/lib/esm/comms/whatsapp/index.js +1 -1
  352. package/lib/esm/devops/environment.js +1 -1
  353. package/lib/esm/devops/github/GithubService.js +1 -1
  354. package/lib/esm/devops/github/index.js +1 -1
  355. package/lib/esm/devops/gitlab/GitlabService.js +1 -1
  356. package/lib/esm/devops/gitlab/index.js +1 -1
  357. package/lib/esm/devops/index.js +1 -1
  358. package/lib/esm/docker/DockerComposeService.js +1 -1
  359. package/lib/esm/docker/index.js +1 -1
  360. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
  361. package/lib/esm/feature-flags/constants.js +1 -1
  362. package/lib/esm/feature-flags/decorators.js +1 -1
  363. package/lib/esm/feature-flags/environment.js +1 -1
  364. package/lib/esm/feature-flags/index.js +1 -1
  365. package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
  366. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
  367. package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
  368. package/lib/esm/feature-flags/readers/index.js +1 -1
  369. package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
  370. package/lib/esm/feature-flags/types.js +1 -1
  371. package/lib/esm/feature-flags/utils.js +1 -1
  372. package/lib/esm/index.js +4 -4
  373. package/lib/esm/io/airtable/AirtableService.js +1 -1
  374. package/lib/esm/io/airtable/index.js +1 -1
  375. package/lib/esm/io/confluence/ConfluenceService.js +1 -1
  376. package/lib/esm/io/confluence/index.js +1 -1
  377. package/lib/esm/io/environment.js +1 -1
  378. package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
  379. package/lib/esm/io/google-docs/index.js +1 -1
  380. package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
  381. package/lib/esm/io/google-sheets/index.js +1 -1
  382. package/lib/esm/io/graphql/GraphqlService.js +1 -1
  383. package/lib/esm/io/graphql/index.js +1 -1
  384. package/lib/esm/io/index.js +1 -1
  385. package/lib/esm/io/jira/JiraService.js +1 -1
  386. package/lib/esm/io/jira/index.js +1 -1
  387. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
  388. package/lib/esm/io/microsoft-excel/index.js +1 -1
  389. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
  390. package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
  391. package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
  392. package/lib/esm/io/spreadsheet/index.js +1 -1
  393. package/lib/esm/keycloak/broker.js +1 -1
  394. package/lib/esm/keycloak/index.js +1 -1
  395. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  396. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  397. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  398. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  399. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  400. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  401. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  402. package/lib/esm/keycloak/services/index.js +1 -1
  403. package/lib/esm/keycloak/services/runtime.js +1 -1
  404. package/lib/esm/keycloak/types.js +1 -1
  405. package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
  406. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
  407. package/lib/esm/kibana/builders/index.js +1 -1
  408. package/lib/esm/kibana/helpers.js +1 -1
  409. package/lib/esm/kibana/index.js +1 -1
  410. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  411. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  412. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  413. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  414. package/lib/esm/kibana/services/KibanaService.js +1 -1
  415. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  416. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  417. package/lib/esm/kibana/services/index.js +1 -1
  418. package/lib/esm/kibana/services/runtime.js +1 -1
  419. package/lib/esm/kibana/types.js +1 -1
  420. package/lib/esm/loader/ObjectLoader.js +1 -1
  421. package/lib/esm/loader/assets.js +1 -1
  422. package/lib/esm/loader/config.js +1 -1
  423. package/lib/esm/loader/families.js +1 -1
  424. package/lib/esm/loader/index.js +1 -1
  425. package/lib/esm/loader/nest.js +1 -1
  426. package/lib/esm/loader/types.js +1 -1
  427. package/lib/esm/namespaces/index.js +1 -1
  428. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  429. package/lib/esm/namespaces/models/credential.model.js +1 -1
  430. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  431. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  432. package/lib/esm/namespaces/models/group.model.js +1 -1
  433. package/lib/esm/namespaces/models/index.js +1 -1
  434. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  435. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  436. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  437. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  438. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  439. package/lib/esm/namespaces/models/permission.model.js +1 -1
  440. package/lib/esm/namespaces/models/principal.model.js +1 -1
  441. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  442. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  443. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  444. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  445. package/lib/esm/namespaces/models/role.model.js +1 -1
  446. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  447. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  448. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  449. package/lib/esm/namespaces/models/tenant.model.js +1 -1
  450. package/lib/esm/namespaces/models/user.model.js +1 -1
  451. package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
  452. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  453. package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
  454. package/lib/esm/namespaces/rls/index.js +1 -1
  455. package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
  456. package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
  457. package/lib/esm/namespaces/rls/rls.constants.js +1 -1
  458. package/lib/esm/namespaces/rls/rls.template.js +1 -1
  459. package/lib/esm/namespaces/rls/rls.types.js +1 -1
  460. package/lib/esm/namespaces/rls/session-binding.js +1 -1
  461. package/lib/esm/namespaces/services/authz.service.js +1 -1
  462. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  463. package/lib/esm/namespaces/services/credential.service.js +1 -1
  464. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  465. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  466. package/lib/esm/namespaces/services/group.service.js +1 -1
  467. package/lib/esm/namespaces/services/index.js +1 -1
  468. package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
  469. package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
  470. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  471. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  472. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  473. package/lib/esm/namespaces/services/permission.service.js +1 -1
  474. package/lib/esm/namespaces/services/principal.service.js +1 -1
  475. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  476. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  477. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  478. package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
  479. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  480. package/lib/esm/namespaces/services/role.service.js +1 -1
  481. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  482. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  483. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  484. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  485. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  486. package/lib/esm/namespaces/services/user.service.js +1 -1
  487. package/lib/esm/namespaces/types.js +1 -1
  488. package/lib/esm/namespaces/utils.js +1 -1
  489. package/lib/esm/nest/decorators.js +1 -1
  490. package/lib/esm/nest/index.js +1 -1
  491. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  492. package/lib/esm/nest/keycloakModule.js +1 -1
  493. package/lib/esm/nest/logging.js +1 -1
  494. package/lib/esm/nest/types.js +1 -1
  495. package/lib/esm/nest/utils.js +1 -1
  496. package/lib/esm/plugins/contract.js +1 -1
  497. package/lib/esm/plugins/index.js +1 -1
  498. package/lib/esm/plugins/kibana/host.js +1 -1
  499. package/lib/esm/plugins/kibana/index.js +1 -1
  500. package/lib/esm/plugins/kibana/installer.js +1 -1
  501. package/lib/esm/plugins/kibana/manifest.js +1 -1
  502. package/lib/esm/plugins/kibana/templates.js +1 -1
  503. package/lib/esm/plugins/kibana/types.js +1 -1
  504. package/lib/esm/plugins/superset/host.js +1 -1
  505. package/lib/esm/plugins/superset/index.js +1 -1
  506. package/lib/esm/plugins/superset/installer.js +1 -1
  507. package/lib/esm/plugins/superset/manifest.js +1 -1
  508. package/lib/esm/plugins/superset/templates.js +1 -1
  509. package/lib/esm/plugins/superset/types.js +1 -1
  510. package/lib/esm/redis/RedisContextLock.js +1 -1
  511. package/lib/esm/redis/RedisDispatch.js +1 -1
  512. package/lib/esm/redis/RedisPaginator.js +1 -1
  513. package/lib/esm/redis/RedisStatement.js +1 -1
  514. package/lib/esm/redis/adapter.js +1 -1
  515. package/lib/esm/redis/constants.js +1 -1
  516. package/lib/esm/redis/handlers.js +1 -1
  517. package/lib/esm/redis/index.js +1 -1
  518. package/lib/esm/redis/serialization.js +1 -1
  519. package/lib/esm/redis/types.js +1 -1
  520. package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
  521. package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
  522. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  523. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  524. package/lib/esm/secrets/aws/index.js +1 -1
  525. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  526. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  527. package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
  528. package/lib/esm/secrets/azure/index.js +1 -1
  529. package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
  530. package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
  531. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  532. package/lib/esm/secrets/core/SecretName.js +1 -1
  533. package/lib/esm/secrets/core/SecretReference.js +2 -1
  534. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  535. package/lib/esm/secrets/core/SecretService.js +1 -1
  536. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  537. package/lib/esm/secrets/core/index.js +1 -1
  538. package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
  539. package/lib/esm/secrets/fs/FsSecretService.js +1 -1
  540. package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
  541. package/lib/esm/secrets/fs/index.js +1 -1
  542. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
  543. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  544. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  545. package/lib/esm/secrets/gcp/index.js +1 -1
  546. package/lib/esm/secrets/index.js +1 -1
  547. package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +30 -0
  548. package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +474 -0
  549. package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +9 -0
  550. package/lib/esm/secrets/kubernetes/index.js +10 -0
  551. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  552. package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
  553. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  554. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  555. package/lib/esm/secrets/model/Secret.js +1 -1
  556. package/lib/esm/secrets/model/index.js +1 -1
  557. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
  558. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  559. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  560. package/lib/esm/secrets/onepassword/index.js +1 -1
  561. package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
  562. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  563. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  564. package/lib/esm/secrets/vault/index.js +1 -1
  565. package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
  566. package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
  567. package/lib/esm/sftp/aws/index.js +1 -1
  568. package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
  569. package/lib/esm/sftp/core/SftpSource.js +1 -1
  570. package/lib/esm/sftp/core/index.js +1 -1
  571. package/lib/esm/sftp/index.js +1 -1
  572. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
  573. package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
  574. package/lib/esm/sftp/ssh2/index.js +1 -1
  575. package/lib/esm/shared/environmentValue.js +1 -1
  576. package/lib/esm/shared/http/HttpApiService.js +1 -1
  577. package/lib/esm/shared/http/hermeticBoot.js +1 -1
  578. package/lib/esm/shared/http/index.js +1 -1
  579. package/lib/esm/shared/runtime.js +1 -1
  580. package/lib/esm/user-requests/index.js +1 -1
  581. package/lib/esm/utils.js +1 -1
  582. package/lib/types/index.d.cts +2 -2
  583. package/lib/types/index.d.mts +2 -2
  584. package/lib/types/secrets/core/SecretTypes.d.cts +13 -1
  585. package/lib/types/secrets/core/SecretTypes.d.mts +13 -1
  586. package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.cts +34 -0
  587. package/lib/types/secrets/kubernetes/KubernetesSecretEnvironment.d.mts +34 -0
  588. package/lib/types/secrets/kubernetes/KubernetesSecretService.d.cts +45 -0
  589. package/lib/types/secrets/kubernetes/KubernetesSecretService.d.mts +45 -0
  590. package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.cts +49 -0
  591. package/lib/types/secrets/kubernetes/KubernetesSecretServiceConfig.d.mts +49 -0
  592. package/lib/types/secrets/kubernetes/index.d.cts +9 -0
  593. package/lib/types/secrets/kubernetes/index.d.mts +9 -0
  594. package/package.json +18 -1
  595. package/dist/integrations.cjs.map +0 -1
  596. package/dist/integrations.js.map +0 -1
  597. package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +0 -1
  598. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
  599. package/lib/cjs/blob/azure/index.cjs.map +0 -1
  600. package/lib/cjs/blob/core/BlobEnvironment.cjs.map +0 -1
  601. package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
  602. package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
  603. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
  604. package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
  605. package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
  606. package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
  607. package/lib/cjs/blob/core/index.cjs.map +0 -1
  608. package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +0 -1
  609. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
  610. package/lib/cjs/blob/gcp/index.cjs.map +0 -1
  611. package/lib/cjs/blob/index.cjs.map +0 -1
  612. package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +0 -1
  613. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
  614. package/lib/cjs/blob/local/index.cjs.map +0 -1
  615. package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +0 -1
  616. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
  617. package/lib/cjs/blob/memory/index.cjs.map +0 -1
  618. package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +0 -1
  619. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
  620. package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +0 -1
  621. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
  622. package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +0 -1
  623. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
  624. package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +0 -1
  625. package/lib/cjs/blob/s3/index.cjs.map +0 -1
  626. package/lib/cjs/calendar/CalendarService.cjs.map +0 -1
  627. package/lib/cjs/calendar/environment.cjs.map +0 -1
  628. package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +0 -1
  629. package/lib/cjs/calendar/google-calendar/index.cjs.map +0 -1
  630. package/lib/cjs/calendar/index.cjs.map +0 -1
  631. package/lib/cjs/calendar/types.cjs.map +0 -1
  632. package/lib/cjs/calendar/validators/cron.cjs.map +0 -1
  633. package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +0 -1
  634. package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +0 -1
  635. package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +0 -1
  636. package/lib/cjs/comms/discord/DiscordService.cjs.map +0 -1
  637. package/lib/cjs/comms/discord/index.cjs.map +0 -1
  638. package/lib/cjs/comms/email/EmailService.cjs.map +0 -1
  639. package/lib/cjs/comms/email/index.cjs.map +0 -1
  640. package/lib/cjs/comms/email/mime.cjs.map +0 -1
  641. package/lib/cjs/comms/email/smtp.cjs.map +0 -1
  642. package/lib/cjs/comms/environment.cjs.map +0 -1
  643. package/lib/cjs/comms/gmail/GmailService.cjs.map +0 -1
  644. package/lib/cjs/comms/gmail/index.cjs.map +0 -1
  645. package/lib/cjs/comms/index.cjs.map +0 -1
  646. package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +0 -1
  647. package/lib/cjs/comms/outlook/index.cjs.map +0 -1
  648. package/lib/cjs/comms/slack/SlackService.cjs.map +0 -1
  649. package/lib/cjs/comms/slack/index.cjs.map +0 -1
  650. package/lib/cjs/comms/teams/TeamsService.cjs.map +0 -1
  651. package/lib/cjs/comms/teams/index.cjs.map +0 -1
  652. package/lib/cjs/comms/telegram/TelegramService.cjs.map +0 -1
  653. package/lib/cjs/comms/telegram/index.cjs.map +0 -1
  654. package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +0 -1
  655. package/lib/cjs/comms/whatsapp/index.cjs.map +0 -1
  656. package/lib/cjs/devops/environment.cjs.map +0 -1
  657. package/lib/cjs/devops/github/GithubService.cjs.map +0 -1
  658. package/lib/cjs/devops/github/index.cjs.map +0 -1
  659. package/lib/cjs/devops/gitlab/GitlabService.cjs.map +0 -1
  660. package/lib/cjs/devops/gitlab/index.cjs.map +0 -1
  661. package/lib/cjs/devops/index.cjs.map +0 -1
  662. package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
  663. package/lib/cjs/docker/index.cjs.map +0 -1
  664. package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +0 -1
  665. package/lib/cjs/feature-flags/constants.cjs.map +0 -1
  666. package/lib/cjs/feature-flags/decorators.cjs.map +0 -1
  667. package/lib/cjs/feature-flags/environment.cjs.map +0 -1
  668. package/lib/cjs/feature-flags/index.cjs.map +0 -1
  669. package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +0 -1
  670. package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +0 -1
  671. package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +0 -1
  672. package/lib/cjs/feature-flags/readers/index.cjs.map +0 -1
  673. package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +0 -1
  674. package/lib/cjs/feature-flags/types.cjs.map +0 -1
  675. package/lib/cjs/feature-flags/utils.cjs.map +0 -1
  676. package/lib/cjs/index.cjs.map +0 -1
  677. package/lib/cjs/io/airtable/AirtableService.cjs.map +0 -1
  678. package/lib/cjs/io/airtable/index.cjs.map +0 -1
  679. package/lib/cjs/io/confluence/ConfluenceService.cjs.map +0 -1
  680. package/lib/cjs/io/confluence/index.cjs.map +0 -1
  681. package/lib/cjs/io/environment.cjs.map +0 -1
  682. package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +0 -1
  683. package/lib/cjs/io/google-docs/index.cjs.map +0 -1
  684. package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +0 -1
  685. package/lib/cjs/io/google-sheets/index.cjs.map +0 -1
  686. package/lib/cjs/io/graphql/GraphqlService.cjs.map +0 -1
  687. package/lib/cjs/io/graphql/index.cjs.map +0 -1
  688. package/lib/cjs/io/index.cjs.map +0 -1
  689. package/lib/cjs/io/jira/JiraService.cjs.map +0 -1
  690. package/lib/cjs/io/jira/index.cjs.map +0 -1
  691. package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +0 -1
  692. package/lib/cjs/io/microsoft-excel/index.cjs.map +0 -1
  693. package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +0 -1
  694. package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +0 -1
  695. package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +0 -1
  696. package/lib/cjs/io/spreadsheet/index.cjs.map +0 -1
  697. package/lib/cjs/keycloak/broker.cjs.map +0 -1
  698. package/lib/cjs/keycloak/index.cjs.map +0 -1
  699. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
  700. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
  701. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
  702. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
  703. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
  704. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
  705. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
  706. package/lib/cjs/keycloak/services/index.cjs.map +0 -1
  707. package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
  708. package/lib/cjs/keycloak/types.cjs.map +0 -1
  709. package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +0 -1
  710. package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +0 -1
  711. package/lib/cjs/kibana/builders/index.cjs.map +0 -1
  712. package/lib/cjs/kibana/helpers.cjs.map +0 -1
  713. package/lib/cjs/kibana/index.cjs.map +0 -1
  714. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
  715. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
  716. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
  717. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
  718. package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
  719. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
  720. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
  721. package/lib/cjs/kibana/services/index.cjs.map +0 -1
  722. package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
  723. package/lib/cjs/kibana/types.cjs.map +0 -1
  724. package/lib/cjs/loader/ObjectLoader.cjs.map +0 -1
  725. package/lib/cjs/loader/assets.cjs.map +0 -1
  726. package/lib/cjs/loader/config.cjs.map +0 -1
  727. package/lib/cjs/loader/families.cjs.map +0 -1
  728. package/lib/cjs/loader/index.cjs.map +0 -1
  729. package/lib/cjs/loader/nest.cjs.map +0 -1
  730. package/lib/cjs/loader/types.cjs.map +0 -1
  731. package/lib/cjs/namespaces/index.cjs.map +0 -1
  732. package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
  733. package/lib/cjs/namespaces/models/credential.model.cjs.map +0 -1
  734. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
  735. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
  736. package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
  737. package/lib/cjs/namespaces/models/index.cjs.map +0 -1
  738. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
  739. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
  740. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
  741. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
  742. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
  743. package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
  744. package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
  745. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
  746. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
  747. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
  748. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
  749. package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
  750. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
  751. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
  752. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
  753. package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
  754. package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
  755. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
  756. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
  757. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
  758. package/lib/cjs/namespaces/rls/index.cjs.map +0 -1
  759. package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +0 -1
  760. package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +0 -1
  761. package/lib/cjs/namespaces/rls/rls.constants.cjs.map +0 -1
  762. package/lib/cjs/namespaces/rls/rls.template.cjs.map +0 -1
  763. package/lib/cjs/namespaces/rls/rls.types.cjs.map +0 -1
  764. package/lib/cjs/namespaces/rls/session-binding.cjs.map +0 -1
  765. package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
  766. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
  767. package/lib/cjs/namespaces/services/credential.service.cjs.map +0 -1
  768. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
  769. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
  770. package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
  771. package/lib/cjs/namespaces/services/index.cjs.map +0 -1
  772. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
  773. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
  774. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
  775. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
  776. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
  777. package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
  778. package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
  779. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
  780. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
  781. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
  782. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
  783. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
  784. package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
  785. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
  786. package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
  787. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
  788. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
  789. package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
  790. package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
  791. package/lib/cjs/namespaces/types.cjs.map +0 -1
  792. package/lib/cjs/namespaces/utils.cjs.map +0 -1
  793. package/lib/cjs/nest/decorators.cjs.map +0 -1
  794. package/lib/cjs/nest/index.cjs.map +0 -1
  795. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
  796. package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
  797. package/lib/cjs/nest/logging.cjs.map +0 -1
  798. package/lib/cjs/nest/types.cjs.map +0 -1
  799. package/lib/cjs/nest/utils.cjs.map +0 -1
  800. package/lib/cjs/plugins/contract.cjs.map +0 -1
  801. package/lib/cjs/plugins/index.cjs.map +0 -1
  802. package/lib/cjs/plugins/kibana/host.cjs.map +0 -1
  803. package/lib/cjs/plugins/kibana/index.cjs.map +0 -1
  804. package/lib/cjs/plugins/kibana/installer.cjs.map +0 -1
  805. package/lib/cjs/plugins/kibana/manifest.cjs.map +0 -1
  806. package/lib/cjs/plugins/kibana/templates.cjs.map +0 -1
  807. package/lib/cjs/plugins/kibana/types.cjs.map +0 -1
  808. package/lib/cjs/plugins/superset/host.cjs.map +0 -1
  809. package/lib/cjs/plugins/superset/index.cjs.map +0 -1
  810. package/lib/cjs/plugins/superset/installer.cjs.map +0 -1
  811. package/lib/cjs/plugins/superset/manifest.cjs.map +0 -1
  812. package/lib/cjs/plugins/superset/templates.cjs.map +0 -1
  813. package/lib/cjs/plugins/superset/types.cjs.map +0 -1
  814. package/lib/cjs/redis/RedisContextLock.cjs.map +0 -1
  815. package/lib/cjs/redis/RedisDispatch.cjs.map +0 -1
  816. package/lib/cjs/redis/RedisPaginator.cjs.map +0 -1
  817. package/lib/cjs/redis/RedisStatement.cjs.map +0 -1
  818. package/lib/cjs/redis/adapter.cjs.map +0 -1
  819. package/lib/cjs/redis/constants.cjs.map +0 -1
  820. package/lib/cjs/redis/handlers.cjs.map +0 -1
  821. package/lib/cjs/redis/index.cjs.map +0 -1
  822. package/lib/cjs/redis/serialization.cjs.map +0 -1
  823. package/lib/cjs/redis/types.cjs.map +0 -1
  824. package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +0 -1
  825. package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +0 -1
  826. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
  827. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
  828. package/lib/cjs/secrets/aws/index.cjs.map +0 -1
  829. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
  830. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
  831. package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +0 -1
  832. package/lib/cjs/secrets/azure/index.cjs.map +0 -1
  833. package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +0 -1
  834. package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +0 -1
  835. package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
  836. package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
  837. package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
  838. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
  839. package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
  840. package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
  841. package/lib/cjs/secrets/core/index.cjs.map +0 -1
  842. package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +0 -1
  843. package/lib/cjs/secrets/fs/FsSecretService.cjs.map +0 -1
  844. package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +0 -1
  845. package/lib/cjs/secrets/fs/index.cjs.map +0 -1
  846. package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +0 -1
  847. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
  848. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
  849. package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
  850. package/lib/cjs/secrets/index.cjs.map +0 -1
  851. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
  852. package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +0 -1
  853. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
  854. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
  855. package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
  856. package/lib/cjs/secrets/model/index.cjs.map +0 -1
  857. package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +0 -1
  858. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
  859. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
  860. package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
  861. package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +0 -1
  862. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
  863. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
  864. package/lib/cjs/secrets/vault/index.cjs.map +0 -1
  865. package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +0 -1
  866. package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +0 -1
  867. package/lib/cjs/sftp/aws/index.cjs.map +0 -1
  868. package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +0 -1
  869. package/lib/cjs/sftp/core/SftpSource.cjs.map +0 -1
  870. package/lib/cjs/sftp/core/index.cjs.map +0 -1
  871. package/lib/cjs/sftp/index.cjs.map +0 -1
  872. package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +0 -1
  873. package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +0 -1
  874. package/lib/cjs/sftp/ssh2/index.cjs.map +0 -1
  875. package/lib/cjs/shared/environmentValue.cjs.map +0 -1
  876. package/lib/cjs/shared/http/HttpApiService.cjs.map +0 -1
  877. package/lib/cjs/shared/http/hermeticBoot.cjs.map +0 -1
  878. package/lib/cjs/shared/http/index.cjs.map +0 -1
  879. package/lib/cjs/shared/runtime.cjs.map +0 -1
  880. package/lib/cjs/user-requests/index.cjs.map +0 -1
  881. package/lib/cjs/utils.cjs.map +0 -1
  882. package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +0 -1
  883. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
  884. package/lib/esm/blob/azure/index.js.map +0 -1
  885. package/lib/esm/blob/core/BlobEnvironment.js.map +0 -1
  886. package/lib/esm/blob/core/BlobErrors.js.map +0 -1
  887. package/lib/esm/blob/core/BlobKey.js.map +0 -1
  888. package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
  889. package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
  890. package/lib/esm/blob/core/BlobTypes.js.map +0 -1
  891. package/lib/esm/blob/core/BlobValue.js.map +0 -1
  892. package/lib/esm/blob/core/index.js.map +0 -1
  893. package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +0 -1
  894. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
  895. package/lib/esm/blob/gcp/index.js.map +0 -1
  896. package/lib/esm/blob/index.js.map +0 -1
  897. package/lib/esm/blob/local/LocalBlobEnvironment.js.map +0 -1
  898. package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
  899. package/lib/esm/blob/local/index.js.map +0 -1
  900. package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +0 -1
  901. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
  902. package/lib/esm/blob/memory/index.js.map +0 -1
  903. package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +0 -1
  904. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
  905. package/lib/esm/blob/s3/R2BlobEnvironment.js.map +0 -1
  906. package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
  907. package/lib/esm/blob/s3/S3BlobEnvironment.js.map +0 -1
  908. package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
  909. package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +0 -1
  910. package/lib/esm/blob/s3/index.js.map +0 -1
  911. package/lib/esm/calendar/CalendarService.js.map +0 -1
  912. package/lib/esm/calendar/environment.js.map +0 -1
  913. package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +0 -1
  914. package/lib/esm/calendar/google-calendar/index.js.map +0 -1
  915. package/lib/esm/calendar/index.js.map +0 -1
  916. package/lib/esm/calendar/types.js.map +0 -1
  917. package/lib/esm/calendar/validators/cron.js.map +0 -1
  918. package/lib/esm/calendar/writers/CalendarFsWriter.js.map +0 -1
  919. package/lib/esm/calendar/writers/CalenderDownloader.js.map +0 -1
  920. package/lib/esm/calendar/writers/ICalendarWriter.js.map +0 -1
  921. package/lib/esm/comms/discord/DiscordService.js.map +0 -1
  922. package/lib/esm/comms/discord/index.js.map +0 -1
  923. package/lib/esm/comms/email/EmailService.js.map +0 -1
  924. package/lib/esm/comms/email/index.js.map +0 -1
  925. package/lib/esm/comms/email/mime.js.map +0 -1
  926. package/lib/esm/comms/email/smtp.js.map +0 -1
  927. package/lib/esm/comms/environment.js.map +0 -1
  928. package/lib/esm/comms/gmail/GmailService.js.map +0 -1
  929. package/lib/esm/comms/gmail/index.js.map +0 -1
  930. package/lib/esm/comms/index.js.map +0 -1
  931. package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +0 -1
  932. package/lib/esm/comms/outlook/index.js.map +0 -1
  933. package/lib/esm/comms/slack/SlackService.js.map +0 -1
  934. package/lib/esm/comms/slack/index.js.map +0 -1
  935. package/lib/esm/comms/teams/TeamsService.js.map +0 -1
  936. package/lib/esm/comms/teams/index.js.map +0 -1
  937. package/lib/esm/comms/telegram/TelegramService.js.map +0 -1
  938. package/lib/esm/comms/telegram/index.js.map +0 -1
  939. package/lib/esm/comms/whatsapp/WhatsAppService.js.map +0 -1
  940. package/lib/esm/comms/whatsapp/index.js.map +0 -1
  941. package/lib/esm/devops/environment.js.map +0 -1
  942. package/lib/esm/devops/github/GithubService.js.map +0 -1
  943. package/lib/esm/devops/github/index.js.map +0 -1
  944. package/lib/esm/devops/gitlab/GitlabService.js.map +0 -1
  945. package/lib/esm/devops/gitlab/index.js.map +0 -1
  946. package/lib/esm/devops/index.js.map +0 -1
  947. package/lib/esm/docker/DockerComposeService.js.map +0 -1
  948. package/lib/esm/docker/index.js.map +0 -1
  949. package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +0 -1
  950. package/lib/esm/feature-flags/constants.js.map +0 -1
  951. package/lib/esm/feature-flags/decorators.js.map +0 -1
  952. package/lib/esm/feature-flags/environment.js.map +0 -1
  953. package/lib/esm/feature-flags/index.js.map +0 -1
  954. package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +0 -1
  955. package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +0 -1
  956. package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +0 -1
  957. package/lib/esm/feature-flags/readers/index.js.map +0 -1
  958. package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +0 -1
  959. package/lib/esm/feature-flags/types.js.map +0 -1
  960. package/lib/esm/feature-flags/utils.js.map +0 -1
  961. package/lib/esm/index.js.map +0 -1
  962. package/lib/esm/io/airtable/AirtableService.js.map +0 -1
  963. package/lib/esm/io/airtable/index.js.map +0 -1
  964. package/lib/esm/io/confluence/ConfluenceService.js.map +0 -1
  965. package/lib/esm/io/confluence/index.js.map +0 -1
  966. package/lib/esm/io/environment.js.map +0 -1
  967. package/lib/esm/io/google-docs/GoogleDocsService.js.map +0 -1
  968. package/lib/esm/io/google-docs/index.js.map +0 -1
  969. package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +0 -1
  970. package/lib/esm/io/google-sheets/index.js.map +0 -1
  971. package/lib/esm/io/graphql/GraphqlService.js.map +0 -1
  972. package/lib/esm/io/graphql/index.js.map +0 -1
  973. package/lib/esm/io/index.js.map +0 -1
  974. package/lib/esm/io/jira/JiraService.js.map +0 -1
  975. package/lib/esm/io/jira/index.js.map +0 -1
  976. package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +0 -1
  977. package/lib/esm/io/microsoft-excel/index.js.map +0 -1
  978. package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +0 -1
  979. package/lib/esm/io/microsoft-sharepoint/index.js.map +0 -1
  980. package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +0 -1
  981. package/lib/esm/io/spreadsheet/index.js.map +0 -1
  982. package/lib/esm/keycloak/broker.js.map +0 -1
  983. package/lib/esm/keycloak/index.js.map +0 -1
  984. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
  985. package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
  986. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
  987. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
  988. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
  989. package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
  990. package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
  991. package/lib/esm/keycloak/services/index.js.map +0 -1
  992. package/lib/esm/keycloak/services/runtime.js.map +0 -1
  993. package/lib/esm/keycloak/types.js.map +0 -1
  994. package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +0 -1
  995. package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +0 -1
  996. package/lib/esm/kibana/builders/index.js.map +0 -1
  997. package/lib/esm/kibana/helpers.js.map +0 -1
  998. package/lib/esm/kibana/index.js.map +0 -1
  999. package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
  1000. package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
  1001. package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
  1002. package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
  1003. package/lib/esm/kibana/services/KibanaService.js.map +0 -1
  1004. package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
  1005. package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
  1006. package/lib/esm/kibana/services/index.js.map +0 -1
  1007. package/lib/esm/kibana/services/runtime.js.map +0 -1
  1008. package/lib/esm/kibana/types.js.map +0 -1
  1009. package/lib/esm/loader/ObjectLoader.js.map +0 -1
  1010. package/lib/esm/loader/assets.js.map +0 -1
  1011. package/lib/esm/loader/config.js.map +0 -1
  1012. package/lib/esm/loader/families.js.map +0 -1
  1013. package/lib/esm/loader/index.js.map +0 -1
  1014. package/lib/esm/loader/nest.js.map +0 -1
  1015. package/lib/esm/loader/types.js.map +0 -1
  1016. package/lib/esm/namespaces/index.js.map +0 -1
  1017. package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
  1018. package/lib/esm/namespaces/models/credential.model.js.map +0 -1
  1019. package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
  1020. package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
  1021. package/lib/esm/namespaces/models/group.model.js.map +0 -1
  1022. package/lib/esm/namespaces/models/index.js.map +0 -1
  1023. package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
  1024. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
  1025. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
  1026. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
  1027. package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
  1028. package/lib/esm/namespaces/models/permission.model.js.map +0 -1
  1029. package/lib/esm/namespaces/models/principal.model.js.map +0 -1
  1030. package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
  1031. package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
  1032. package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
  1033. package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
  1034. package/lib/esm/namespaces/models/role.model.js.map +0 -1
  1035. package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
  1036. package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
  1037. package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
  1038. package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
  1039. package/lib/esm/namespaces/models/user.model.js.map +0 -1
  1040. package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
  1041. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
  1042. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
  1043. package/lib/esm/namespaces/rls/index.js.map +0 -1
  1044. package/lib/esm/namespaces/rls/principal-resolver.js.map +0 -1
  1045. package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +0 -1
  1046. package/lib/esm/namespaces/rls/rls.constants.js.map +0 -1
  1047. package/lib/esm/namespaces/rls/rls.template.js.map +0 -1
  1048. package/lib/esm/namespaces/rls/rls.types.js.map +0 -1
  1049. package/lib/esm/namespaces/rls/session-binding.js.map +0 -1
  1050. package/lib/esm/namespaces/services/authz.service.js.map +0 -1
  1051. package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
  1052. package/lib/esm/namespaces/services/credential.service.js.map +0 -1
  1053. package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
  1054. package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
  1055. package/lib/esm/namespaces/services/group.service.js.map +0 -1
  1056. package/lib/esm/namespaces/services/index.js.map +0 -1
  1057. package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
  1058. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
  1059. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
  1060. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
  1061. package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
  1062. package/lib/esm/namespaces/services/permission.service.js.map +0 -1
  1063. package/lib/esm/namespaces/services/principal.service.js.map +0 -1
  1064. package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
  1065. package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
  1066. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
  1067. package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
  1068. package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
  1069. package/lib/esm/namespaces/services/role.service.js.map +0 -1
  1070. package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
  1071. package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
  1072. package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
  1073. package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
  1074. package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
  1075. package/lib/esm/namespaces/services/user.service.js.map +0 -1
  1076. package/lib/esm/namespaces/types.js.map +0 -1
  1077. package/lib/esm/namespaces/utils.js.map +0 -1
  1078. package/lib/esm/nest/decorators.js.map +0 -1
  1079. package/lib/esm/nest/index.js.map +0 -1
  1080. package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
  1081. package/lib/esm/nest/keycloakModule.js.map +0 -1
  1082. package/lib/esm/nest/logging.js.map +0 -1
  1083. package/lib/esm/nest/types.js.map +0 -1
  1084. package/lib/esm/nest/utils.js.map +0 -1
  1085. package/lib/esm/plugins/contract.js.map +0 -1
  1086. package/lib/esm/plugins/index.js.map +0 -1
  1087. package/lib/esm/plugins/kibana/host.js.map +0 -1
  1088. package/lib/esm/plugins/kibana/index.js.map +0 -1
  1089. package/lib/esm/plugins/kibana/installer.js.map +0 -1
  1090. package/lib/esm/plugins/kibana/manifest.js.map +0 -1
  1091. package/lib/esm/plugins/kibana/templates.js.map +0 -1
  1092. package/lib/esm/plugins/kibana/types.js.map +0 -1
  1093. package/lib/esm/plugins/superset/host.js.map +0 -1
  1094. package/lib/esm/plugins/superset/index.js.map +0 -1
  1095. package/lib/esm/plugins/superset/installer.js.map +0 -1
  1096. package/lib/esm/plugins/superset/manifest.js.map +0 -1
  1097. package/lib/esm/plugins/superset/templates.js.map +0 -1
  1098. package/lib/esm/plugins/superset/types.js.map +0 -1
  1099. package/lib/esm/redis/RedisContextLock.js.map +0 -1
  1100. package/lib/esm/redis/RedisDispatch.js.map +0 -1
  1101. package/lib/esm/redis/RedisPaginator.js.map +0 -1
  1102. package/lib/esm/redis/RedisStatement.js.map +0 -1
  1103. package/lib/esm/redis/adapter.js.map +0 -1
  1104. package/lib/esm/redis/constants.js.map +0 -1
  1105. package/lib/esm/redis/handlers.js.map +0 -1
  1106. package/lib/esm/redis/index.js.map +0 -1
  1107. package/lib/esm/redis/serialization.js.map +0 -1
  1108. package/lib/esm/redis/types.js.map +0 -1
  1109. package/lib/esm/secrets/InfraCredentialBootstrap.js.map +0 -1
  1110. package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +0 -1
  1111. package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
  1112. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
  1113. package/lib/esm/secrets/aws/index.js.map +0 -1
  1114. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
  1115. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
  1116. package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +0 -1
  1117. package/lib/esm/secrets/azure/index.js.map +0 -1
  1118. package/lib/esm/secrets/core/ClientBasedSecretService.js.map +0 -1
  1119. package/lib/esm/secrets/core/SecretEnvironment.js.map +0 -1
  1120. package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
  1121. package/lib/esm/secrets/core/SecretName.js.map +0 -1
  1122. package/lib/esm/secrets/core/SecretReference.js.map +0 -1
  1123. package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
  1124. package/lib/esm/secrets/core/SecretService.js.map +0 -1
  1125. package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
  1126. package/lib/esm/secrets/core/index.js.map +0 -1
  1127. package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +0 -1
  1128. package/lib/esm/secrets/fs/FsSecretService.js.map +0 -1
  1129. package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +0 -1
  1130. package/lib/esm/secrets/fs/index.js.map +0 -1
  1131. package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +0 -1
  1132. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
  1133. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
  1134. package/lib/esm/secrets/gcp/index.js.map +0 -1
  1135. package/lib/esm/secrets/index.js.map +0 -1
  1136. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
  1137. package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +0 -1
  1138. package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
  1139. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
  1140. package/lib/esm/secrets/model/Secret.js.map +0 -1
  1141. package/lib/esm/secrets/model/index.js.map +0 -1
  1142. package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +0 -1
  1143. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
  1144. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
  1145. package/lib/esm/secrets/onepassword/index.js.map +0 -1
  1146. package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +0 -1
  1147. package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
  1148. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
  1149. package/lib/esm/secrets/vault/index.js.map +0 -1
  1150. package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +0 -1
  1151. package/lib/esm/sftp/aws/AwsSftpService.js.map +0 -1
  1152. package/lib/esm/sftp/aws/index.js.map +0 -1
  1153. package/lib/esm/sftp/core/SftpEnvironment.js.map +0 -1
  1154. package/lib/esm/sftp/core/SftpSource.js.map +0 -1
  1155. package/lib/esm/sftp/core/index.js.map +0 -1
  1156. package/lib/esm/sftp/index.js.map +0 -1
  1157. package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +0 -1
  1158. package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +0 -1
  1159. package/lib/esm/sftp/ssh2/index.js.map +0 -1
  1160. package/lib/esm/shared/environmentValue.js.map +0 -1
  1161. package/lib/esm/shared/http/HttpApiService.js.map +0 -1
  1162. package/lib/esm/shared/http/hermeticBoot.js.map +0 -1
  1163. package/lib/esm/shared/http/index.js.map +0 -1
  1164. package/lib/esm/shared/runtime.js.map +0 -1
  1165. package/lib/esm/user-requests/index.js.map +0 -1
  1166. package/lib/esm/utils.js.map +0 -1
@@ -389,5 +389,5 @@ __decorate([
389
389
  exports.CalendarService = CalendarService = __decorate([
390
390
  (0, core_1.service)()
391
391
  ], CalendarService);
392
- //# sourceMappingURL=CalendarService.js.map
393
- //# sourceMappingURL=CalendarService.cjs.map
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhbGVuZGFyL0NhbGVuZGFyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQStCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFPbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekQ7Ozs7O0dBS0c7QUFFSSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLE9BQU87SUFJbkMsS0FBSyxDQUFDLHdCQUF3QixDQUNuQyxPQUFnQyxFQUNoQyxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FDbkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUNwRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVuRSxNQUFNLFFBQVEsR0FDWixPQUFPLENBQUMsUUFBUTtZQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUTtZQUNoRCxLQUFLLENBQUM7UUFFUixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMs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QStCLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFDRSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVM7WUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsRUFDL0IsQ0FBQztZQUNELE1BQU0sSUFBSSxlQUFlLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFDRSxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUztZQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsRUFDakMsQ0FBQztZQUNELE1BQU0sSUFBSSxlQUFlLENBQ3ZCLG9EQUFvRCxDQUNyRCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTO1lBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxFQUMxRSxDQUFDO1lBQ0QsTUFBTSxJQUFJLGVBQWUsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQS9oQlc7SUFEVCxNQUFNLENBQUMsbUJBQW1CLENBQUM7OytDQUNPO0FBRnhCLGVBQWU7SUFEM0IsT0FBTyxFQUFFO0dBQ0csZUFBZSxDQWlpQjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCwgTWF5YmVDb250ZXh0dWFsQXJnLCBzZXJ2aWNlLCBTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDcm9uRXhwcmVzc2lvblBhcnNlciB9IGZyb20gXCJjcm9uLXBhcnNlclwiO1xuaW1wb3J0IHtcbiAgQ2FsZW5kYXJGaWxlLFxuICBDYWxlbmRhclJlbWluZGVyT3B0aW9ucyxcbiAgUGFyc2VkQ3JvbixcbiAgUmVjdXJyZW5jZVJlc3VsdCxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgdHlwZSBJQ2FsZW5kYXJXcml0ZXIgfSBmcm9tIFwiLi93cml0ZXJzL0lDYWxlbmRhcldyaXRlclwiO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGludGVyb3BlcmFibGUgaUNhbGVuZGFyIG1lZGljYXRpb24gcmVtaW5kZXJzLlxuICpcbiAqIFRoZSBzZXJ2aWNlIGhhcyBubyBzdGF0aWMgTm9kZSBpbXBvcnRzLCBzbyB0aGUgc2FtZSBtb2R1bGUgY2FuIGJlIGJ1bmRsZWRcbiAqIGZvciBicm93c2Vycy4gTm9kZS1vbmx5IGZpbGVzeXN0ZW0gYmVoYXZpb3IgaXMgbG9hZGVkIGR5bmFtaWNhbGx5LlxuICovXG5Ac2VydmljZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7XG4gIEBpbmplY3QoJ1wiY2FsZW5kYXItd3JpdGVyXCInKVxuICBwcm90ZWN0ZWQgd3JpdGVyITogSUNhbGVuZGFyV3JpdGVyO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVNZWRpY2F0aW9uUmVtaW5kZXIoXG4gICAgb3B0aW9uczogQ2FsZW5kYXJSZW1pbmRlck9wdGlvbnMsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxDYWxlbmRhckZpbGU+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcik7XG4gICAgdGhpcy52YWxpZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMuc3RhcnQgPyBuZXcgRGF0ZShvcHRpb25zLnN0YXJ0KSA6IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCB0aW1lem9uZSA9XG4gICAgICBvcHRpb25zLnRpbWV6b25lID8/XG4gICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUgPz9cbiAgICAgIFwiVVRDXCI7XG5cbiAgICBjb25zdCBkdXJhdGlvbk1pbnV0ZXMgPSBvcHRpb25zLmR1cmF0aW9uTWludXRlcyA/PyAxNTtcbiAgICBjb25zdCBhbGFybU1pbnV0ZXNCZWZvcmUgPSBvcHRpb25zLmFsYXJtTWludXRlc0JlZm9yZSA/PyAxMDtcbiAgICBjb25zdCB1aWQgPSBvcHRpb25zLnVpZCA/PyB0aGlzLmNyZWF0ZVVpZCgpO1xuXG4gICAgY29uc3QgcmVjdXJyZW5jZSA9IHRoaXMuY3JlYXRlUmVjdXJyZW5jZShvcHRpb25zLCBzdGFydCwgdGltZXpvbmUsIGN0eCk7XG5cbiAgICBjb25zdCBmaXJzdE9jY3VycmVuY2UgPVxuICAgICAgcmVjdXJyZW5jZS5yZGF0ZXM/LlswXSA/P1xuICAgICAgdGhpcy5nZXRGaXJzdE9jY3VycmVuY2Uob3B0aW9ucy5jcm9uLCBzdGFydCwgdGltZXpvbmUpO1xuXG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUoZmlyc3RPY2N1cnJlbmNlLmdldFRpbWUoKSArIGR1cmF0aW9uTWludXRlcyAqIDYwXzAwMCk7XG5cbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXG4gICAgICBcIkJFR0lOOlZDQUxFTkRBUlwiLFxuICAgICAgXCJWRVJTSU9OOjIuMFwiLFxuICAgICAgXCJDQUxTQ0FMRTpHUkVHT1JJQU5cIixcbiAgICAgIFwiUFJPRElEOi0vL1BUUC8vQ2FsZW5kYXIgU2VydmljZS8vRU5cIixcbiAgICAgIFwiTUVUSE9EOlBVQkxJU0hcIixcbiAgICAgIFwiQkVHSU46VkVWRU5UXCIsXG4gICAgICBgVUlEOiR7dGhpcy5lc2NhcGVQcm9wZXJ0eSh1aWQpfWAsXG4gICAgICBgRFRTVEFNUDoke3RoaXMuZm9ybWF0VXRjRGF0ZShuZXcgRGF0ZSgpKX1gLFxuICAgICAgYERUU1RBUlQ7VFpJRD0ke3RoaXMuZXNjYXBlUGFyYW1ldGVyKHRpbWV6b25lKX06JHt0aGlzLmZvcm1hdExvY2FsRGF0ZShcbiAgICAgICAgZmlyc3RPY2N1cnJlbmNlLFxuICAgICAgICB0aW1lem9uZVxuICAgICAgKX1gLFxuICAgICAgYERURU5EO1RaSUQ9JHt0aGlzLmVzY2FwZVBhcmFtZXRlcih0aW1lem9uZSl9OiR7dGhpcy5mb3JtYXRMb2NhbERhdGUoXG4gICAgICAgIGVuZCxcbiAgICAgICAgdGltZXpvbmVcbiAgICAgICl9YCxcbiAgICAgIGBTVU1NQVJZOiR7dGhpcy5lc2NhcGVUZXh0KG9wdGlvbnMudGl0bGUpfWAsXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLmRlc2NyaXB0aW9uKSB7XG4gICAgICBsaW5lcy5wdXNoKGBERVNDUklQVElPTjoke3RoaXMuZXNjYXBlVGV4dChvcHRpb25zLmRlc2NyaXB0aW9uKX1gKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgbGluZXMucHVzaChgTE9DQVRJT046JHt0aGlzLmVzY2FwZVRleHQob3B0aW9ucy5sb2NhdGlvbil9YCk7XG4gICAgfVxuXG4gICAgaWYgKHJlY3VycmVuY2UucnJ1bGUpIHtcbiAgICAgIGxpbmVzLnB1c2goYFJSVUxFOiR7cmVjdXJyZW5jZS5ycnVsZX1gKTtcbiAgICB9XG5cbiAgICBpZiAocmVjdXJyZW5jZS5yZGF0ZXMgJiYgcmVjdXJyZW5jZS5yZGF0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRFRTVEFSVCBhbHJlYWR5IHJlcHJlc2VudHMgdGhlIGZpcnN0IG9jY3VycmVuY2UuXG4gICAgICBjb25zdCByZW1haW5pbmcgPSByZWN1cnJlbmNlLnJkYXRlcy5zbGljZSgxKTtcblxuICAgICAgbGluZXMucHVzaCguLi50aGlzLmNyZWF0ZUZvbGRlZFJEYXRlTGluZXMocmVtYWluaW5nLCB0aW1lem9uZSkpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm9yZ2FuaXplckVtYWlsKSB7XG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICBgT1JHQU5JWkVSOm1haWx0bzoke3RoaXMuZXNjYXBlUHJvcGVydHkob3B0aW9ucy5vcmdhbml6ZXJFbWFpbCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5hdHRlbmRlZUVtYWlsKSB7XG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICBbXG4gICAgICAgICAgXCJBVFRFTkRFRVwiLFxuICAgICAgICAgIFwiQ1VUWVBFPUlORElWSURVQUxcIixcbiAgICAgICAgICBcIlJPTEU9UkVRLVBBUlRJQ0lQQU5UXCIsXG4gICAgICAgICAgXCJQQVJUU1RBVD1ORUVEUy1BQ1RJT05cIixcbiAgICAgICAgICBcIlJTVlA9VFJVRVwiLFxuICAgICAgICBdLmpvaW4oXCI7XCIpICsgYDptYWlsdG86JHt0aGlzLmVzY2FwZVByb3BlcnR5KG9wdGlvbnMuYXR0ZW5kZWVFbWFpbCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsaW5lcy5wdXNoKFxuICAgICAgXCJCRUdJTjpWQUxBUk1cIixcbiAgICAgIFwiQUNUSU9OOkRJU1BMQVlcIixcbiAgICAgIGBUUklHR0VSOi1QVCR7YWxhcm1NaW51dGVzQmVmb3JlfU1gLFxuICAgICAgYERFU0NSSVBUSU9OOiR7dGhpcy5lc2NhcGVUZXh0KG9wdGlvbnMudGl0bGUpfWAsXG4gICAgICBcIkVORDpWQUxBUk1cIixcbiAgICAgIFwiRU5EOlZFVkVOVFwiLFxuICAgICAgXCJFTkQ6VkNBTEVOREFSXCJcbiAgICApO1xuXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZm9sZExpbmVzKGxpbmVzKS5qb2luKFwiXFxyXFxuXCIpICsgXCJcXHJcXG5cIjtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHRoaXMuY3JlYXRlRmlsZW5hbWUob3B0aW9ucy50aXRsZSk7XG5cbiAgICBsb2cudmVyYm9zZShgQ2FsZW5kYXIgZXZlbnQgY3JlYXRlZDogJHtmaWxlbmFtZX1gKTtcbiAgICBsb2cuZGVidWcoYENvbnRlbnQgZm9yICR7ZmlsZW5hbWV9OiAke2NvbnRlbnR9YCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBjb250ZW50LFxuICAgICAgbWltZVR5cGU6IFwidGV4dC9jYWxlbmRhclwiLFxuICAgICAgYnl0ZXM6IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShjb250ZW50KSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUFuZFN0b3JlUmVtaW5kZXIoXG4gICAgb3B0aW9uczogQ2FsZW5kYXJSZW1pbmRlck9wdGlvbnMsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuY3JlYXRlQW5kU3RvcmVSZW1pbmRlclxuICAgICk7XG5cbiAgICBjb25zdCBmaWxlID0gYXdhaXQgdGhpcy5jcmVhdGVNZWRpY2F0aW9uUmVtaW5kZXIob3B0aW9ucywgY3R4KTtcblxuICAgIGF3YWl0IHRoaXMud3JpdGVyLndyaXRlKGZpbGUsIGN0eCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlY3VycmVuY2UoXG4gICAgb3B0aW9uczogQ2FsZW5kYXJSZW1pbmRlck9wdGlvbnMsXG4gICAgc3RhcnQ6IERhdGUsXG4gICAgdGltZXpvbmU6IHN0cmluZyxcbiAgICBjdHg6IENvbnRleHQ8YW55PlxuICApOiBSZWN1cnJlbmNlUmVzdWx0IHtcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU2ltcGxlQ3JvbihvcHRpb25zLmNyb24sIGN0eCk7XG4gICAgY29uc3QgdW50aWwgPSBvcHRpb25zLnVudGlsID8gdGhpcy5mb3JtYXRVdGNEYXRlKG9wdGlvbnMudW50aWwpIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgY29uc3QgcnJ1bGUgPSB0aGlzLmNvbnZlcnRTaW1wbGVDcm9uVG9SUnVsZShwYXJzZWQsIHVudGlsKTtcblxuICAgICAgaWYgKHJydWxlKSB7XG4gICAgICAgIHJldHVybiB7IHJydWxlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJkYXRlczogdGhpcy5leHBhbmRDcm9uRGF0ZXMoXG4gICAgICAgIG9wdGlvbnMuY3JvbixcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIHRpbWV6b25lLFxuICAgICAgICBvcHRpb25zLm1heE9jY3VycmVuY2VzID8/IDM2NSxcbiAgICAgICAgb3B0aW9ucy51bnRpbFxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBjb21tb25seSBuZWVkZWQgbWVkaWNhdGlvbiBzY2hlZHVsZXMuXG4gICAqXG4gICAqIFVuc3VwcG9ydGVkIGNyb24gc2hhcGVzIGZhbGwgYmFjayB0byBleHBsaWNpdCBSREFURSBvY2N1cnJlbmNlcy5cbiAgICovXG4gIHByaXZhdGUgY29udmVydFNpbXBsZUNyb25Ub1JSdWxlKFxuICAgIGNyb246IFBhcnNlZENyb24sXG4gICAgdW50aWw/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdWZmaXggPSB1bnRpbCA/IGA7VU5USUw9JHt1bnRpbH1gIDogXCJcIjtcblxuICAgIGNvbnN0IG1pbnV0ZXMgPSBjcm9uLm1pbnV0ZS5qb2luKFwiLFwiKTtcbiAgICBjb25zdCBob3VycyA9IGNyb24uaG91ci5qb2luKFwiLFwiKTtcblxuICAgIGNvbnN0IHRpbWVQYXJ0cyA9IGBCWUhPVVI9JHtob3Vyc307QllNSU5VVEU9JHttaW51dGVzfTtCWVNFQ09ORD0wYDtcblxuICAgIGNvbnN0IGV2ZXJ5RGF5ID1cbiAgICAgIGNyb24uZGF5T2ZNb250aCA9PT0gbnVsbCAmJlxuICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG5cbiAgICBpZiAoZXZlcnlEYXkpIHtcbiAgICAgIHJldHVybiBgRlJFUT1EQUlMWTske3RpbWVQYXJ0c30ke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtseSA9XG4gICAgICBjcm9uLmRheU9mTW9udGggPT09IG51bGwgJiZcbiAgICAgIGNyb24ubW9udGggPT09IG51bGwgJiZcbiAgICAgIGNyb24uZGF5T2ZXZWVrICE9PSBudWxsO1xuXG4gICAgaWYgKHdlZWtseSkge1xuICAgICAgY29uc3Qgd2Vla2RheXMgPSBjcm9uXG4gICAgICAgIC5kYXlPZldlZWshLm1hcCgoZGF5KSA9PiB0aGlzLndlZWtkYXlUb0ljcyhkYXkpKVxuICAgICAgICAuam9pbihcIixcIik7XG5cbiAgICAgIHJldHVybiBgRlJFUT1XRUVLTFk7QllEQVk9JHt3ZWVrZGF5c307JHt0aW1lUGFydHN9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtb250aGx5ID1cbiAgICAgIGNyb24uZGF5T2ZNb250aCAhPT0gbnVsbCAmJlxuICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG5cbiAgICBpZiAobW9udGhseSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgYEZSRVE9TU9OVEhMWTtCWU1PTlRIREFZPSR7Y3Jvbi5kYXlPZk1vbnRoIS5qb2luKFwiLFwiKX07YCArXG4gICAgICAgIGAke3RpbWVQYXJ0c30ke3N1ZmZpeH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHllYXJseSA9XG4gICAgICBjcm9uLmRheU9mTW9udGggIT09IG51bGwgJiZcbiAgICAgIGNyb24ubW9udGggIT09IG51bGwgJiZcbiAgICAgIGNyb24uZGF5T2ZXZWVrID09PSBudWxsO1xuXG4gICAgaWYgKHllYXJseSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgYEZSRVE9WUVBUkxZO0JZTU9OVEg9JHtjcm9uLm1vbnRoIS5qb2luKFwiLFwiKX07YCArXG4gICAgICAgIGBCWU1PTlRIREFZPSR7Y3Jvbi5kYXlPZk1vbnRoIS5qb2luKFwiLFwiKX07YCArXG4gICAgICAgIGAke3RpbWVQYXJ0c30ke3N1ZmZpeH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENyb24gZGF5LW9mLW1vbnRoL2RheS1vZi13ZWVrIGNvbWJpbmF0aW9ucyBoYXZlIE9SLWxpa2Ugc2VtYW50aWNzXG4gICAgLy8gaW4gbWFueSBpbXBsZW1lbnRhdGlvbnMgYW5kIGNhbm5vdCBiZSByZXByZXNlbnRlZCBzYWZlbHkgYXMgb25lIFJSVUxFLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlU2ltcGxlQ3JvbihcbiAgICBleHByZXNzaW9uOiBzdHJpbmcsXG4gICAgY3R4OiBDb250ZXh0PGFueT5cbiAgKTogUGFyc2VkQ3JvbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KFtjdHhdLCB0aGlzLnBhcnNlU2ltcGxlQ3Jvbik7XG4gICAgY29uc3QgZmllbGRzID0gZXhwcmVzc2lvbi50cmltKCkuc3BsaXQoL1xccysvKTtcblxuICAgIGlmIChmaWVsZHMubGVuZ3RoICE9PSA1KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IFttaW51dGUsIGhvdXIsIGRheU9mTW9udGgsIG1vbnRoLCBkYXlPZldlZWtdID0gZmllbGRzO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1pbnV0ZTogdGhpcy5wYXJzZUNyb25GaWVsZChtaW51dGUsIDAsIDU5LCBjdHgpLFxuICAgICAgICBob3VyOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKGhvdXIsIDAsIDIzLCBjdHgpLFxuICAgICAgICBkYXlPZk1vbnRoOlxuICAgICAgICAgIGRheU9mTW9udGggPT09IFwiKlwiXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wYXJzZUNyb25GaWVsZChkYXlPZk1vbnRoLCAxLCAzMSwgY3R4KSxcbiAgICAgICAgbW9udGg6IG1vbnRoID09PSBcIipcIiA/IG51bGwgOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKG1vbnRoLCAxLCAxMiwgY3R4KSxcbiAgICAgICAgZGF5T2ZXZWVrOlxuICAgICAgICAgIGRheU9mV2VlayA9PT0gXCIqXCJcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKGRheU9mV2VlaywgMCwgNywgY3R4KS5tYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgIHZhbHVlID09PSA3ID8gMCA6IHZhbHVlXG4gICAgICAgICAgICAgICksXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gZ2VuZXJhdGUgc2ltcGxlIGNyb24gZXhwcmVzc2lvbiBmb3IgJHtleHByZXNzaW9ufWApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ3JvbkZpZWxkKFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgbWluaW11bTogbnVtYmVyLFxuICAgIG1heGltdW06IG51bWJlcixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY3R4OiBDb250ZXh0PGFueT5cbiAgKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHZhbHVlcyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuXG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIGZpZWxkLnNwbGl0KFwiLFwiKSkge1xuICAgICAgY29uc3QgW3JhbmdlRXhwcmVzc2lvbiwgc3RlcEV4cHJlc3Npb25dID0gc2VnbWVudC5zcGxpdChcIi9cIik7XG5cbiAgICAgIGNvbnN0IHN0ZXAgPVxuICAgICAgICBzdGVwRXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlci5wYXJzZUludChzdGVwRXhwcmVzc2lvbiwgMTApO1xuXG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoc3RlcCkgfHwgc3RlcCA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiBzdGVwOiAke3NlZ21lbnR9YCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzdGFydDogbnVtYmVyO1xuICAgICAgbGV0IGVuZDogbnVtYmVyO1xuXG4gICAgICBpZiAocmFuZ2VFeHByZXNzaW9uID09PSBcIipcIikge1xuICAgICAgICBzdGFydCA9IG1pbmltdW07XG4gICAgICAgIGVuZCA9IG1heGltdW07XG4gICAgICB9IGVsc2UgaWYgKHJhbmdlRXhwcmVzc2lvbi5pbmNsdWRlcyhcIi1cIikpIHtcbiAgICAgICAgY29uc3QgYm91bmRzID0gcmFuZ2VFeHByZXNzaW9uLnNwbGl0KFwiLVwiKTtcblxuICAgICAgICBpZiAoYm91bmRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiByYW5nZTogJHtzZWdtZW50fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnQgPSBOdW1iZXIucGFyc2VJbnQoYm91bmRzWzBdLCAxMCk7XG4gICAgICAgIGVuZCA9IE51bWJlci5wYXJzZUludChib3VuZHNbMV0sIDEwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0ID0gTnVtYmVyLnBhcnNlSW50KHJhbmdlRXhwcmVzc2lvbiwgMTApO1xuICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAhTnVtYmVyLmlzSW50ZWdlcihzdGFydCkgfHxcbiAgICAgICAgIU51bWJlci5pc0ludGVnZXIoZW5kKSB8fFxuICAgICAgICBzdGFydCA8IG1pbmltdW0gfHxcbiAgICAgICAgZW5kID4gbWF4aW11bSB8fFxuICAgICAgICBzdGFydCA+IGVuZFxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiBmaWVsZDogJHtzZWdtZW50fWApO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCB2YWx1ZSA9IHN0YXJ0OyB2YWx1ZSA8PSBlbmQ7IHZhbHVlICs9IHN0ZXApIHtcbiAgICAgICAgdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi52YWx1ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kQ3JvbkRhdGVzKFxuICAgIGNyb246IHN0cmluZyxcbiAgICBzdGFydDogRGF0ZSxcbiAgICB0aW1lem9uZTogc3RyaW5nLFxuICAgIG1heGltdW06IG51bWJlcixcbiAgICB1bnRpbD86IERhdGVcbiAgKTogRGF0ZVtdIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IENyb25FeHByZXNzaW9uUGFyc2VyLnBhcnNlKGNyb24sIHtcbiAgICAgIGN1cnJlbnREYXRlOiBzdGFydCxcbiAgICAgIHR6OiB0aW1lem9uZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG9jY3VycmVuY2VzOiBEYXRlW10gPSBbXTtcblxuICAgIHdoaWxlIChvY2N1cnJlbmNlcy5sZW5ndGggPCBtYXhpbXVtKSB7XG4gICAgICBjb25zdCBuZXh0ID0gaW50ZXJ2YWwubmV4dCgpLnRvRGF0ZSgpO1xuXG4gICAgICBpZiAodW50aWwgJiYgbmV4dCA+IHVudGlsKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBvY2N1cnJlbmNlcy5wdXNoKG5leHQpO1xuICAgIH1cblxuICAgIGlmIChvY2N1cnJlbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUaGUgY3JvbiBleHByZXNzaW9uIHByb2R1Y2VkIG5vIG9jY3VycmVuY2VzIGluIHRoZSByZXF1ZXN0ZWQgcmFuZ2UuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9jY3VycmVuY2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdE9jY3VycmVuY2UoXG4gICAgY3Jvbjogc3RyaW5nLFxuICAgIHN0YXJ0OiBEYXRlLFxuICAgIHRpbWV6b25lOiBzdHJpbmdcbiAgKTogRGF0ZSB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBDcm9uRXhwcmVzc2lvblBhcnNlci5wYXJzZShjcm9uLCB7XG4gICAgICBjdXJyZW50RGF0ZTogc3RhcnQsXG4gICAgICB0ejogdGltZXpvbmUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW50ZXJ2YWwubmV4dCgpLnRvRGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb2xkZWRSRGF0ZUxpbmVzKGRhdGVzOiBEYXRlW10sIHRpbWV6b25lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcHJlZml4ID0gYFJEQVRFO1RaSUQ9JHt0aGlzLmVzY2FwZVBhcmFtZXRlcih0aW1lem9uZSl9OmA7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBkYXRlcy5tYXAoKGRhdGUpID0+IHRoaXMuZm9ybWF0TG9jYWxEYXRlKGRhdGUsIHRpbWV6b25lKSk7XG5cbiAgICAvLyBLZWVwIGVhY2ggbG9naWNhbCBwcm9wZXJ0eSByZWFzb25hYmx5IHNpemVkIGJlZm9yZSBSRkMgbGluZSBmb2xkaW5nLlxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgY3VycmVudCA9IHByZWZpeDtcblxuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBjb25zdCBjYW5kaWRhdGUgPVxuICAgICAgICBjdXJyZW50ID09PSBwcmVmaXggPyBgJHtjdXJyZW50fSR7dmFsdWV9YCA6IGAke2N1cnJlbnR9LCR7dmFsdWV9YDtcblxuICAgICAgaWYgKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShjYW5kaWRhdGUpLmxlbmd0aCA+IDcwMCkge1xuICAgICAgICByZXN1bHQucHVzaChjdXJyZW50KTtcbiAgICAgICAgY3VycmVudCA9IGAke3ByZWZpeH0ke3ZhbHVlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50ID0gY2FuZGlkYXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50ICE9PSBwcmVmaXgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFV0Y0RhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGVcbiAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAucmVwbGFjZSgvWy06XS9nLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVokLywgXCJaXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRMb2NhbERhdGUoZGF0ZTogRGF0ZSwgdGltZXpvbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLUNBXCIsIHtcbiAgICAgIHRpbWVab25lOiB0aW1lem9uZSxcbiAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICAgIHNlY29uZDogXCIyLWRpZ2l0XCIsXG4gICAgICBob3VyQ3ljbGU6IFwiaDIzXCIsXG4gICAgfSkuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcblxuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHBhcnRzXG4gICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQudHlwZSAhPT0gXCJsaXRlcmFsXCIpXG4gICAgICAgIC5tYXAoKHBhcnQpID0+IFtwYXJ0LnR5cGUsIHBhcnQudmFsdWVdKVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgYCR7dmFsdWVzLnllYXJ9JHt2YWx1ZXMubW9udGh9JHt2YWx1ZXMuZGF5fWAgK1xuICAgICAgYFQke3ZhbHVlcy5ob3VyfSR7dmFsdWVzLm1pbnV0ZX0ke3ZhbHVlcy5zZWNvbmR9YFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZvbGRMaW5lcyhsaW5lczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGxpbmVzLmZsYXRNYXAoKGxpbmUpID0+IHRoaXMuZm9sZExpbmUobGluZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJGQyA1NTQ1IGNvbnRlbnQgbGluZXMgc2hvdWxkIGJlIGZvbGRlZCBhdCA3NSBvY3RldHMuXG4gICAqL1xuICBwcml2YXRlIGZvbGRMaW5lKGxpbmU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCByZW1haW5pbmcgPSBsaW5lO1xuICAgIGxldCBmaXJzdCA9IHRydWU7XG5cbiAgICB3aGlsZSAoZW5jb2Rlci5lbmNvZGUoZmlyc3QgPyByZW1haW5pbmcgOiBgICR7cmVtYWluaW5nfWApLmxlbmd0aCA+IDc1KSB7XG4gICAgICBjb25zdCBwcmVmaXggPSBmaXJzdCA/IFwiXCIgOiBcIiBcIjtcbiAgICAgIGxldCBjaHVuayA9IFwiXCI7XG4gICAgICBsZXQgY29uc3VtZWQgPSAwO1xuXG4gICAgICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiByZW1haW5pbmcpIHtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gYCR7cHJlZml4fSR7Y2h1bmt9JHtjaGFyYWN0ZXJ9YDtcblxuICAgICAgICBpZiAoZW5jb2Rlci5lbmNvZGUoY2FuZGlkYXRlKS5sZW5ndGggPiA3NSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2h1bmsgKz0gY2hhcmFjdGVyO1xuICAgICAgICBjb25zdW1lZCArPSBjaGFyYWN0ZXIubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWNodW5rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb2xkIGlDYWxlbmRhciBjb250ZW50IGxpbmUuXCIpO1xuICAgICAgfVxuXG4gICAgICByZXN1bHQucHVzaChgJHtwcmVmaXh9JHtjaHVua31gKTtcbiAgICAgIHJlbWFpbmluZyA9IHJlbWFpbmluZy5zbGljZShjb25zdW1lZCk7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJlc3VsdC5wdXNoKGZpcnN0ID8gcmVtYWluaW5nIDogYCAke3JlbWFpbmluZ31gKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpXG4gICAgICAucmVwbGFjZSgvXFxyP1xcbi9nLCBcIlxcXFxuXCIpXG4gICAgICAucmVwbGFjZSgvOy9nLCBcIlxcXFw7XCIpXG4gICAgICAucmVwbGFjZSgvLC9nLCBcIlxcXFwsXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcclxcbl0vZywgXCJcIik7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVBhcmFtZXRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIS9eW0EtWmEtejAtOV8rLi8tXSskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVW5zYWZlIGlDYWxlbmRhciBwYXJhbWV0ZXI6ICR7dmFsdWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB3ZWVrZGF5VG9JY3MoZGF5OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRheXMgPSBbXCJTVVwiLCBcIk1PXCIsIFwiVFVcIiwgXCJXRVwiLCBcIlRIXCIsIFwiRlJcIiwgXCJTQVwiXTtcbiAgICBjb25zdCByZXN1bHQgPSBkYXlzW2RheV07XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgSW52YWxpZCB3ZWVrZGF5OiAke2RheX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVVaWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYW5kb20gPVxuICAgICAgZ2xvYmFsVGhpcy5jcnlwdG8/LnJhbmRvbVVVSUQ/LigpID8/XG4gICAgICBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpLnNsaWNlKDIpfWA7XG5cbiAgICByZXR1cm4gYCR7cmFuZG9tfUBjYWxlbmRhci1zZXJ2aWNlYDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmlsZW5hbWUodGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2FmZVRpdGxlID0gdGl0bGVcbiAgICAgIC5ub3JtYWxpemUoXCJORktEXCIpXG4gICAgICAucmVwbGFjZSgvW15cXHcuLV0rL2csIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIilcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGAke3NhZmVUaXRsZSB8fCBcImNhbGVuZGFyLXJlbWluZGVyXCJ9Lmljc2A7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zOiBDYWxlbmRhclJlbWluZGVyT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3B0aW9ucy5jcm9uPy50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJBIGNyb24gZXhwcmVzc2lvbiBpcyByZXF1aXJlZC5cIik7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnRpdGxlPy50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJBIGNhbGVuZGFyIHRpdGxlIGlzIHJlcXVpcmVkLlwiKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmR1cmF0aW9uTWludXRlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoIU51bWJlci5pc0Zpbml0ZShvcHRpb25zLmR1cmF0aW9uTWludXRlcykgfHxcbiAgICAgICAgb3B0aW9ucy5kdXJhdGlvbk1pbnV0ZXMgPD0gMClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJkdXJhdGlvbk1pbnV0ZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby5cIik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgb3B0aW9ucy5hbGFybU1pbnV0ZXNCZWZvcmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKG9wdGlvbnMuYWxhcm1NaW51dGVzQmVmb3JlKSB8fFxuICAgICAgICBvcHRpb25zLmFsYXJtTWludXRlc0JlZm9yZSA8IDApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcImFsYXJtTWludXRlc0JlZm9yZSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoIU51bWJlci5pc0ludGVnZXIob3B0aW9ucy5tYXhPY2N1cnJlbmNlcykgfHwgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyA8PSAwKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1heE9jY3VycmVuY2VzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ2FsZW5kYXJTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdB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Q0FBQyxDQUFDO0FBRXBCLDg3dENBQTg3dEMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgc2VydmljZSwgU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ3JvbkV4cHJlc3Npb25QYXJzZXIgfSBmcm9tIFwiY3Jvbi1wYXJzZXJcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcbi8qKlxuICogQ3JlYXRlcyBpbnRlcm9wZXJhYmxlIGlDYWxlbmRhciBtZWRpY2F0aW9uIHJlbWluZGVycy5cbiAqXG4gKiBUaGUgc2VydmljZSBoYXMgbm8gc3RhdGljIE5vZGUgaW1wb3J0cywgc28gdGhlIHNhbWUgbW9kdWxlIGNhbiBiZSBidW5kbGVkXG4gKiBmb3IgYnJvd3NlcnMuIE5vZGUtb25seSBmaWxlc3lzdGVtIGJlaGF2aW9yIGlzIGxvYWRlZCBkeW5hbWljYWxseS5cbiAqL1xubGV0IENhbGVuZGFyU2VydmljZSA9IGNsYXNzIENhbGVuZGFyU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgIGFzeW5jIGNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcihvcHRpb25zLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcik7XG4gICAgICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMuc3RhcnQgPyBuZXcgRGF0ZShvcHRpb25zLnN0YXJ0KSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IHRpbWV6b25lID0gb3B0aW9ucy50aW1lem9uZSA/P1xuICAgICAgICAgICAgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lID8/XG4gICAgICAgICAgICBcIlVUQ1wiO1xuICAgICAgICBjb25zdCBkdXJhdGlvbk1pbnV0ZXMgPSBvcHRpb25zLmR1cmF0aW9uTWludXRlcyA/PyAxNTtcbiAgICAgICAgY29uc3QgYWxhcm1NaW51dGVzQmVmb3JlID0gb3B0aW9ucy5hbGFybU1pbnV0ZXNCZWZvcmUgPz8gMTA7XG4gICAgICAgIGNvbnN0IHVpZCA9IG9wdGlvbnMudWlkID8/IHRoaXMuY3JlYXRlVWlkKCk7XG4gICAgICAgIGNvbnN0IHJlY3VycmVuY2UgPSB0aGlzLmNyZWF0ZVJlY3VycmVuY2Uob3B0aW9ucywgc3RhcnQsIHRpbWV6b25lLCBjdHgpO1xuICAgICAgICBjb25zdCBmaXJzdE9jY3VycmVuY2UgPSByZWN1cnJlbmNlLnJkYXRlcz8uWzBdID8/XG4gICAgICAgICAgICB0aGlzLmdldEZpcnN0T2NjdXJyZW5jZShvcHRpb25zLmNyb24sIHN0YXJ0LCB0aW1lem9uZSk7XG4gICAgICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKGZpcnN0T2NjdXJyZW5jZS5nZXRUaW1lKCkgKyBkdXJhdGlvbk1pbnV0ZXMgKiA2MF8wMDApO1xuICAgICAgICBjb25zdCBsaW5lcyA9IFtcbiAgICAgICAgICAgIFwiQkVHSU46VkNBTEVOREFSXCIsXG4gICAgICAgICAgICBcIlZFUlNJT046Mi4wXCIsXG4gICAgICAgICAgICBcIkNBTFNDQUxFOkdSRUdPUklBTlwiLFxuICAgICAgICAgICAgXCJQUk9ESUQ6LS8vUFRQLy9DYWxlbmRhciBTZXJ2aWNlLy9FTlwiLFxuICAgICAgICAgICAgXCJNRVRIT0Q6UFVCTElTSFwiLFxuICAgICAgICAgICAgXCJCRUdJTjpWRVZFTlRcIixcbiAgICAgICAgICAgIGBVSUQ6JHt0aGlzLmVzY2FwZVByb3BlcnR5KHVpZCl9YCxcbiAgICAgICAgICAgIGBEVFNUQU1QOiR7dGhpcy5mb3JtYXRVdGNEYXRlKG5ldyBEYXRlKCkpfWAsXG4gICAgICAgICAgICBgRFRTVEFSVDtUWklEPSR7dGhpcy5lc2NhcGVQYXJhbWV0ZXIodGltZXpvbmUpfToke3RoaXMuZm9ybWF0TG9jYWxEYXRlKGZpcnN0T2NjdXJyZW5jZSwgdGltZXpvbmUpfWAsXG4gICAgICAgICAgICBgRFRFTkQ7VFpJRD0ke3RoaXMuZXNjYXBlUGFyYW1ldGVyKHRpbWV6b25lKX06JHt0aGlzLmZvcm1hdExvY2FsRGF0ZShlbmQsIHRpbWV6b25lKX1gLFxuICAgICAgICAgICAgYFNVTU1BUlk6JHt0aGlzLmVzY2FwZVRleHQob3B0aW9ucy50aXRsZSl9YCxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYERFU0NSSVBUSU9OOiR7dGhpcy5lc2NhcGVUZXh0KG9wdGlvbnMuZGVzY3JpcHRpb24pfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGBMT0NBVElPTjoke3RoaXMuZXNjYXBlVGV4dChvcHRpb25zLmxvY2F0aW9uKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVjdXJyZW5jZS5ycnVsZSkge1xuICAgICAgICAgICAgbGluZXMucHVzaChgUlJVTEU6JHtyZWN1cnJlbmNlLnJydWxlfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnJlbmNlLnJkYXRlcyAmJiByZWN1cnJlbmNlLnJkYXRlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAvLyBEVFNUQVJUIGFscmVhZHkgcmVwcmVzZW50cyB0aGUgZmlyc3Qgb2NjdXJyZW5jZS5cbiAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IHJlY3VycmVuY2UucmRhdGVzLnNsaWNlKDEpO1xuICAgICAgICAgICAgbGluZXMucHVzaCguLi50aGlzLmNyZWF0ZUZvbGRlZFJEYXRlTGluZXMocmVtYWluaW5nLCB0aW1lem9uZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLm9yZ2FuaXplckVtYWlsKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGBPUkdBTklaRVI6bWFpbHRvOiR7dGhpcy5lc2NhcGVQcm9wZXJ0eShvcHRpb25zLm9yZ2FuaXplckVtYWlsKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hdHRlbmRlZUVtYWlsKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKFtcbiAgICAgICAgICAgICAgICBcIkFUVEVOREVFXCIsXG4gICAgICAgICAgICAgICAgXCJDVVRZUEU9SU5ESVZJRFVBTFwiLFxuICAgICAgICAgICAgICAgIFwiUk9MRT1SRVEtUEFSVElDSVBBTlRcIixcbiAgICAgICAgICAgICAgICBcIlBBUlRTVEFUPU5FRURTLUFDVElPTlwiLFxuICAgICAgICAgICAgICAgIFwiUlNWUD1UUlVFXCIsXG4gICAgICAgICAgICBdLmpvaW4oXCI7XCIpICsgYDptYWlsdG86JHt0aGlzLmVzY2FwZVByb3BlcnR5KG9wdGlvbnMuYXR0ZW5kZWVFbWFpbCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMucHVzaChcIkJFR0lOOlZBTEFSTVwiLCBcIkFDVElPTjpESVNQTEFZXCIsIGBUUklHR0VSOi1QVCR7YWxhcm1NaW51dGVzQmVmb3JlfU1gLCBgREVTQ1JJUFRJT046JHt0aGlzLmVzY2FwZVRleHQob3B0aW9ucy50aXRsZSl9YCwgXCJFTkQ6VkFMQVJNXCIsIFwiRU5EOlZFVkVOVFwiLCBcIkVORDpWQ0FMRU5EQVJcIik7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmZvbGRMaW5lcyhsaW5lcykuam9pbihcIlxcclxcblwiKSArIFwiXFxyXFxuXCI7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gdGhpcy5jcmVhdGVGaWxlbmFtZShvcHRpb25zLnRpdGxlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYENhbGVuZGFyIGV2ZW50IGNyZWF0ZWQ6ICR7ZmlsZW5hbWV9YCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ29udGVudCBmb3IgJHtmaWxlbmFtZX06ICR7Y29udGVudH1gKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIG1pbWVUeXBlOiBcInRleHQvY2FsZW5kYXJcIixcbiAgICAgICAgICAgIGJ5dGVzOiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoY29udGVudCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUFuZFN0b3JlUmVtaW5kZXIob3B0aW9ucywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuQ1JFQVRFLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQW5kU3RvcmVSZW1pbmRlcik7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCB0aGlzLmNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcihvcHRpb25zLCBjdHgpO1xuICAgICAgICBhd2FpdCB0aGlzLndyaXRlci53cml0ZShmaWxlLCBjdHgpO1xuICAgIH1cbiAgICBjcmVhdGVSZWN1cnJlbmNlKG9wdGlvbnMsIHN0YXJ0LCB0aW1lem9uZSwgY3R4KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTaW1wbGVDcm9uKG9wdGlvbnMuY3JvbiwgY3R4KTtcbiAgICAgICAgY29uc3QgdW50aWwgPSBvcHRpb25zLnVudGlsID8gdGhpcy5mb3JtYXRVdGNEYXRlKG9wdGlvbnMudW50aWwpIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBycnVsZSA9IHRoaXMuY29udmVydFNpbXBsZUNyb25Ub1JSdWxlKHBhcnNlZCwgdW50aWwpO1xuICAgICAgICAgICAgaWYgKHJydWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcnJ1bGUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmRhdGVzOiB0aGlzLmV4cGFuZENyb25EYXRlcyhvcHRpb25zLmNyb24sIHN0YXJ0LCB0aW1lem9uZSwgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyA/PyAzNjUsIG9wdGlvbnMudW50aWwpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgY29tbW9ubHkgbmVlZGVkIG1lZGljYXRpb24gc2NoZWR1bGVzLlxuICAgICAqXG4gICAgICogVW5zdXBwb3J0ZWQgY3JvbiBzaGFwZXMgZmFsbCBiYWNrIHRvIGV4cGxpY2l0IFJEQVRFIG9jY3VycmVuY2VzLlxuICAgICAqL1xuICAgIGNvbnZlcnRTaW1wbGVDcm9uVG9SUnVsZShjcm9uLCB1bnRpbCkge1xuICAgICAgICBjb25zdCBzdWZmaXggPSB1bnRpbCA/IGA7VU5USUw9JHt1bnRpbH1gIDogXCJcIjtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGNyb24ubWludXRlLmpvaW4oXCIsXCIpO1xuICAgICAgICBjb25zdCBob3VycyA9IGNyb24uaG91ci5qb2luKFwiLFwiKTtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gYEJZSE9VUj0ke2hvdXJzfTtCWU1JTlVURT0ke21pbnV0ZXN9O0JZU0VDT05EPTBgO1xuICAgICAgICBjb25zdCBldmVyeURheSA9IGNyb24uZGF5T2ZNb250aCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG4gICAgICAgIGlmIChldmVyeURheSkge1xuICAgICAgICAgICAgcmV0dXJuIGBGUkVRPURBSUxZOyR7dGltZVBhcnRzfSR7c3VmZml4fWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd2Vla2x5ID0gY3Jvbi5kYXlPZk1vbnRoID09PSBudWxsICYmXG4gICAgICAgICAgICBjcm9uLm1vbnRoID09PSBudWxsICYmXG4gICAgICAgICAgICBjcm9uLmRheU9mV2VlayAhPT0gbnVsbDtcbiAgICAgICAgaWYgKHdlZWtseSkge1xuICAgICAgICAgICAgY29uc3Qgd2Vla2RheXMgPSBjcm9uXG4gICAgICAgICAgICAgICAgLmRheU9mV2Vlay5tYXAoKGRheSkgPT4gdGhpcy53ZWVrZGF5VG9JY3MoZGF5KSlcbiAgICAgICAgICAgICAgICAuam9pbihcIixcIik7XG4gICAgICAgICAgICByZXR1cm4gYEZSRVE9V0VFS0xZO0JZREFZPSR7d2Vla2RheXN9OyR7dGltZVBhcnRzfSR7c3VmZml4fWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9udGhseSA9IGNyb24uZGF5T2ZNb250aCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG4gICAgICAgIGlmIChtb250aGx5KSB7XG4gICAgICAgICAgICByZXR1cm4gKGBGUkVRPU1PTlRITFk7QllNT05USERBWT0ke2Nyb24uZGF5T2ZNb250aC5qb2luKFwiLFwiKX07YCArXG4gICAgICAgICAgICAgICAgYCR7dGltZVBhcnRzfSR7c3VmZml4fWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHllYXJseSA9IGNyb24uZGF5T2ZNb250aCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5tb250aCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG4gICAgICAgIGlmICh5ZWFybHkpIHtcbiAgICAgICAgICAgIHJldHVybiAoYEZSRVE9WUVBUkxZO0JZTU9OVEg9JHtjcm9uLm1vbnRoLmpvaW4oXCIsXCIpfTtgICtcbiAgICAgICAgICAgICAgICBgQllNT05USERBWT0ke2Nyb24uZGF5T2ZNb250aC5qb2luKFwiLFwiKX07YCArXG4gICAgICAgICAgICAgICAgYCR7dGltZVBhcnRzfSR7c3VmZml4fWApO1xuICAgICAgICB9XG4gICAgICAgIC8vIENyb24gZGF5LW9mLW1vbnRoL2RheS1vZi13ZWVrIGNvbWJpbmF0aW9ucyBoYXZlIE9SLWxpa2Ugc2VtYW50aWNzXG4gICAgICAgIC8vIGluIG1hbnkgaW1wbGVtZW50YXRpb25zIGFuZCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgc2FmZWx5IGFzIG9uZSBSUlVMRS5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcGFyc2VTaW1wbGVDcm9uKGV4cHJlc3Npb24sIGN0eCkge1xuICAgICAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoW2N0eF0sIHRoaXMucGFyc2VTaW1wbGVDcm9uKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gZXhwcmVzc2lvbi50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggIT09IDUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW21pbnV0ZSwgaG91ciwgZGF5T2ZNb250aCwgbW9udGgsIGRheU9mV2Vla10gPSBmaWVsZHM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1pbnV0ZTogdGhpcy5wYXJzZUNyb25GaWVsZChtaW51dGUsIDAsIDU5LCBjdHgpLFxuICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMucGFyc2VDcm9uRmllbGQoaG91ciwgMCwgMjMsIGN0eCksXG4gICAgICAgICAgICAgICAgZGF5T2ZNb250aDogZGF5T2ZNb250aCA9PT0gXCIqXCJcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wYXJzZUNyb25GaWVsZChkYXlPZk1vbnRoLCAxLCAzMSwgY3R4KSxcbiAgICAgICAgICAgICAgICBtb250aDogbW9udGggPT09IFwiKlwiID8gbnVsbCA6IHRoaXMucGFyc2VDcm9uRmllbGQobW9udGgsIDEsIDEyLCBjdHgpLFxuICAgICAgICAgICAgICAgIGRheU9mV2VlazogZGF5T2ZXZWVrID09PSBcIipcIlxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKGRheU9mV2VlaywgMCwgNywgY3R4KS5tYXAoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gNyA/IDAgOiB2YWx1ZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgRmFpbGVkIHRvIGdlbmVyYXRlIHNpbXBsZSBjcm9uIGV4cHJlc3Npb24gZm9yICR7ZXhwcmVzc2lvbn1gKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFyc2VDcm9uRmllbGQoZmllbGQsIG1pbmltdW0sIG1heGltdW0sIFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjdHgpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gbmV3IFNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgZmllbGQuc3BsaXQoXCIsXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBbcmFuZ2VFeHByZXNzaW9uLCBzdGVwRXhwcmVzc2lvbl0gPSBzZWdtZW50LnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwRXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlci5wYXJzZUludChzdGVwRXhwcmVzc2lvbiwgMTApO1xuICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHN0ZXApIHx8IHN0ZXAgPD0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiBzdGVwOiAke3NlZ21lbnR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgc3RhcnQ7XG4gICAgICAgICAgICBsZXQgZW5kO1xuICAgICAgICAgICAgaWYgKHJhbmdlRXhwcmVzc2lvbiA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgICAgICBzdGFydCA9IG1pbmltdW07XG4gICAgICAgICAgICAgICAgZW5kID0gbWF4aW11bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlRXhwcmVzc2lvbi5pbmNsdWRlcyhcIi1cIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib3VuZHMgPSByYW5nZUV4cHJlc3Npb24uc3BsaXQoXCItXCIpO1xuICAgICAgICAgICAgICAgIGlmIChib3VuZHMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiByYW5nZTogJHtzZWdtZW50fWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdGFydCA9IE51bWJlci5wYXJzZUludChib3VuZHNbMF0sIDEwKTtcbiAgICAgICAgICAgICAgICBlbmQgPSBOdW1iZXIucGFyc2VJbnQoYm91bmRzWzFdLCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGFydCA9IE51bWJlci5wYXJzZUludChyYW5nZUV4cHJlc3Npb24sIDEwKTtcbiAgICAgICAgICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihzdGFydCkgfHxcbiAgICAgICAgICAgICAgICAhTnVtYmVyLmlzSW50ZWdlcihlbmQpIHx8XG4gICAgICAgICAgICAgICAgc3RhcnQgPCBtaW5pbXVtIHx8XG4gICAgICAgICAgICAgICAgZW5kID4gbWF4aW11bSB8fFxuICAgICAgICAgICAgICAgIHN0YXJ0ID4gZW5kKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgSW52YWxpZCBjcm9uIGZpZWxkOiAke3NlZ21lbnR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCB2YWx1ZSA9IHN0YXJ0OyB2YWx1ZSA8PSBlbmQ7IHZhbHVlICs9IHN0ZXApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gWy4uLnZhbHVlc10uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIH1cbiAgICBleHBhbmRDcm9uRGF0ZXMoY3Jvbiwgc3RhcnQsIHRpbWV6b25lLCBtYXhpbXVtLCB1bnRpbCkge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IENyb25FeHByZXNzaW9uUGFyc2VyLnBhcnNlKGNyb24sIHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRlOiBzdGFydCxcbiAgICAgICAgICAgIHR6OiB0aW1lem9uZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9jY3VycmVuY2VzID0gW107XG4gICAgICAgIHdoaWxlIChvY2N1cnJlbmNlcy5sZW5ndGggPCBtYXhpbXVtKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gaW50ZXJ2YWwubmV4dCgpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHVudGlsICYmIG5leHQgPiB1bnRpbCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2NjdXJyZW5jZXMucHVzaChuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2NjdXJyZW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgY3JvbiBleHByZXNzaW9uIHByb2R1Y2VkIG5vIG9jY3VycmVuY2VzIGluIHRoZSByZXF1ZXN0ZWQgcmFuZ2UuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvY2N1cnJlbmNlcztcbiAgICB9XG4gICAgZ2V0Rmlyc3RPY2N1cnJlbmNlKGNyb24sIHN0YXJ0LCB0aW1lem9uZSkge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IENyb25FeHByZXNzaW9uUGFyc2VyLnBhcnNlKGNyb24sIHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRlOiBzdGFydCxcbiAgICAgICAgICAgIHR6OiB0aW1lem9uZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpbnRlcnZhbC5uZXh0KCkudG9EYXRlKCk7XG4gICAgfVxuICAgIGNyZWF0ZUZvbGRlZFJEYXRlTGluZXMoZGF0ZXMsIHRpbWV6b25lKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGBSREFURTtUWklEPSR7dGhpcy5lc2NhcGVQYXJhbWV0ZXIodGltZXpvbmUpfTpgO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBkYXRlcy5tYXAoKGRhdGUpID0+IHRoaXMuZm9ybWF0TG9jYWxEYXRlKGRhdGUsIHRpbWV6b25lKSk7XG4gICAgICAgIC8vIEtlZXAgZWFjaCBsb2dpY2FsIHByb3BlcnR5IHJlYXNvbmFibHkgc2l6ZWQgYmVmb3JlIFJGQyBsaW5lIGZvbGRpbmcuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgY3VycmVudCA9IHByZWZpeDtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGN1cnJlbnQgPT09IHByZWZpeCA/IGAke2N1cnJlbnR9JHt2YWx1ZX1gIDogYCR7Y3VycmVudH0sJHt2YWx1ZX1gO1xuICAgICAgICAgICAgaWYgKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShjYW5kaWRhdGUpLmxlbmd0aCA+IDcwMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBgJHtwcmVmaXh9JHt2YWx1ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IGNhbmRpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudCAhPT0gcHJlZml4KSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChjdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmb3JtYXRVdGNEYXRlKGRhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGVcbiAgICAgICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZSgvWy06XS9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVokLywgXCJaXCIpO1xuICAgIH1cbiAgICBmb3JtYXRMb2NhbERhdGUoZGF0ZSwgdGltZXpvbmUpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLUNBXCIsIHtcbiAgICAgICAgICAgIHRpbWVab25lOiB0aW1lem9uZSxcbiAgICAgICAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIHNlY29uZDogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBob3VyQ3ljbGU6IFwiaDIzXCIsXG4gICAgICAgIH0pLmZvcm1hdFRvUGFydHMoZGF0ZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5mcm9tRW50cmllcyhwYXJ0c1xuICAgICAgICAgICAgLmZpbHRlcigocGFydCkgPT4gcGFydC50eXBlICE9PSBcImxpdGVyYWxcIilcbiAgICAgICAgICAgIC5tYXAoKHBhcnQpID0+IFtwYXJ0LnR5cGUsIHBhcnQudmFsdWVdKSk7XG4gICAgICAgIHJldHVybiAoYCR7dmFsdWVzLnllYXJ9JHt2YWx1ZXMubW9udGh9JHt2YWx1ZXMuZGF5fWAgK1xuICAgICAgICAgICAgYFQke3ZhbHVlcy5ob3VyfSR7dmFsdWVzLm1pbnV0ZX0ke3ZhbHVlcy5zZWNvbmR9YCk7XG4gICAgfVxuICAgIGZvbGRMaW5lcyhsaW5lcykge1xuICAgICAgICByZXR1cm4gbGluZXMuZmxhdE1hcCgobGluZSkgPT4gdGhpcy5mb2xkTGluZShsaW5lKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJGQyA1NTQ1IGNvbnRlbnQgbGluZXMgc2hvdWxkIGJlIGZvbGRlZCBhdCA3NSBvY3RldHMuXG4gICAgICovXG4gICAgZm9sZExpbmUobGluZSkge1xuICAgICAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgcmVtYWluaW5nID0gbGluZTtcbiAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcbiAgICAgICAgd2hpbGUgKGVuY29kZXIuZW5jb2RlKGZpcnN0ID8gcmVtYWluaW5nIDogYCAke3JlbWFpbmluZ31gKS5sZW5ndGggPiA3NSkge1xuICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gZmlyc3QgPyBcIlwiIDogXCIgXCI7XG4gICAgICAgICAgICBsZXQgY2h1bmsgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IGNvbnN1bWVkID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hhcmFjdGVyIG9mIHJlbWFpbmluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGAke3ByZWZpeH0ke2NodW5rfSR7Y2hhcmFjdGVyfWA7XG4gICAgICAgICAgICAgICAgaWYgKGVuY29kZXIuZW5jb2RlKGNhbmRpZGF0ZSkubGVuZ3RoID4gNzUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNodW5rICs9IGNoYXJhY3RlcjtcbiAgICAgICAgICAgICAgICBjb25zdW1lZCArPSBjaGFyYWN0ZXIubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjaHVuaykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb2xkIGlDYWxlbmRhciBjb250ZW50IGxpbmUuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2goYCR7cHJlZml4fSR7Y2h1bmt9YCk7XG4gICAgICAgICAgICByZW1haW5pbmcgPSByZW1haW5pbmcuc2xpY2UoY29uc3VtZWQpO1xuICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChmaXJzdCA/IHJlbWFpbmluZyA6IGAgJHtyZW1haW5pbmd9YCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGVzY2FwZVRleHQodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxyP1xcbi9nLCBcIlxcXFxuXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvOy9nLCBcIlxcXFw7XCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvLC9nLCBcIlxcXFwsXCIpO1xuICAgIH1cbiAgICBlc2NhcGVQcm9wZXJ0eSh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcclxcbl0vZywgXCJcIik7XG4gICAgfVxuICAgIGVzY2FwZVBhcmFtZXRlcih2YWx1ZSkge1xuICAgICAgICBpZiAoIS9eW0EtWmEtejAtOV8rLi8tXSskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVW5zYWZlIGlDYWxlbmRhciBwYXJhbWV0ZXI6ICR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB3ZWVrZGF5VG9JY3MoZGF5KSB7XG4gICAgICAgIGNvbnN0IGRheXMgPSBbXCJTVVwiLCBcIk1PXCIsIFwiVFVcIiwgXCJXRVwiLCBcIlRIXCIsIFwiRlJcIiwgXCJTQVwiXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZGF5c1tkYXldO1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgSW52YWxpZCB3ZWVrZGF5OiAke2RheX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjcmVhdGVVaWQoKSB7XG4gICAgICAgIGNvbnN0IHJhbmRvbSA9IGdsb2JhbFRoaXMuY3J5cHRvPy5yYW5kb21VVUlEPy4oKSA/P1xuICAgICAgICAgICAgYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KS5zbGljZSgyKX1gO1xuICAgICAgICByZXR1cm4gYCR7cmFuZG9tfUBjYWxlbmRhci1zZXJ2aWNlYDtcbiAgICB9XG4gICAgY3JlYXRlRmlsZW5hbWUodGl0bGUpIHtcbiAgICAgICAgY29uc3Qgc2FmZVRpdGxlID0gdGl0bGVcbiAgICAgICAgICAgIC5ub3JtYWxpemUoXCJORktEXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvW15cXHcuLV0rL2csIFwiLVwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIilcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gYCR7c2FmZVRpdGxlIHx8IFwiY2FsZW5kYXItcmVtaW5kZXJcIn0uaWNzYDtcbiAgICB9XG4gICAgdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNyb24/LnRyaW0oKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIkEgY3JvbiBleHByZXNzaW9uIGlzIHJlcXVpcmVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMudGl0bGU/LnRyaW0oKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIkEgY2FsZW5kYXIgdGl0bGUgaXMgcmVxdWlyZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmR1cmF0aW9uTWludXRlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAoIU51bWJlci5pc0Zpbml0ZShvcHRpb25zLmR1cmF0aW9uTWludXRlcykgfHxcbiAgICAgICAgICAgICAgICBvcHRpb25zLmR1cmF0aW9uTWludXRlcyA8PSAwKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcImR1cmF0aW9uTWludXRlcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hbGFybU1pbnV0ZXNCZWZvcmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKG9wdGlvbnMuYWxhcm1NaW51dGVzQmVmb3JlKSB8fFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxhcm1NaW51dGVzQmVmb3JlIDwgMCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJhbGFybU1pbnV0ZXNCZWZvcmUgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5tYXhPY2N1cnJlbmNlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAoIU51bWJlci5pc0ludGVnZXIob3B0aW9ucy5tYXhPY2N1cnJlbmNlcykgfHwgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyA8PSAwKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1heE9jY3VycmVuY2VzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBpbmplY3QoJ1wiY2FsZW5kYXItd3JpdGVyXCInKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgT2JqZWN0KVxuXSwgQ2FsZW5kYXJTZXJ2aWNlLnByb3RvdHlwZSwgXCJ3cml0ZXJcIiwgdm9pZCAwKTtcbkNhbGVuZGFyU2VydmljZSA9IF9fZGVjb3JhdGUoW1xuICAgIHNlcnZpY2UoKVxuXSwgQ2FsZW5kYXJTZXJ2aWNlKTtcbmV4cG9ydCB7IENhbGVuZGFyU2VydmljZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUTJGc1pXNWtZWEpUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMk5oYkdWdVpHRnlMME5oYkdWdVpHRnlVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUVN0Q0xFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU12UlN4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNUVUZCVFN4aFFVRmhMRU5CUVVNN1FVRlBia1FzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVVjZSU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNhVU5CUVdsRExFTkJRVU03UVVGRmVrUTdPenM3TzBkQlMwYzdRVUZGU1N4SlFVRk5MR1ZCUVdVc1IwRkJja0lzVFVGQlRTeGxRVUZuUWl4VFFVRlJMRTlCUVU4N1NVRkpia01zUzBGQlN5eERRVUZETEhkQ1FVRjNRaXhEUVVOdVF5eFBRVUZuUXl4RlFVTm9ReXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZEYmtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU53UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1EwRkJRenRSUVVOeVF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJSVGxDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVWdVJTeE5RVUZOTEZGQlFWRXNSMEZEV2l4UFFVRlBMRU5CUVVNc1VVRkJVVHRaUVVOb1FpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zVVVGQlVUdFpRVU5vUkN4TFFVRkxMRU5CUVVNN1VVRkZVaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFBRVUZQTEVOQlFVTXNaVUZCWlN4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOMFJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFOUJRVThzUTBGQlF5eHJRa0ZCYTBJc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRE5VUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1VVRkZOVU1zVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJYaEZMRTFCUVUwc1pVRkJaU3hIUVVOdVFpeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM1JDTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVY2UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1pVRkJaU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlJUTkZMRTFCUVUwc1MwRkJTeXhIUVVGaE8xbEJRM1JDTEdsQ1FVRnBRanRaUVVOcVFpeGhRVUZoTzFsQlEySXNiMEpCUVc5Q08xbEJRM0JDTEhGRFFVRnhRenRaUVVOeVF5eG5Ra0ZCWjBJN1dVRkRhRUlzWTBGQll6dFpRVU5rTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU5xUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUXpORExHZENRVUZuUWl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUTNCRkxHVkJRV1VzUlVGRFppeFJRVUZSTEVOQlExUXNSVUZCUlR0WlFVTklMR05CUVdNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVOc1JTeEhRVUZITEVWQlEwZ3NVVUZCVVN4RFFVTlVMRVZCUVVVN1dVRkRTQ3hYUVVGWExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8xTkJRelZETEVOQlFVTTdVVUZGUml4SlFVRkpMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU40UWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzQkZMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTnlRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpsRUxFTkJRVU03VVVGRlJDeEpRVUZKTEZWQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOeVFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETVVNc1EwRkJRenRSUVVWRUxFbEJRVWtzVlVGQlZTeERRVUZETEUxQlFVMHNTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTjBSQ3h0UkVGQmJVUTdXVUZEYmtRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRk4wTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhUUVVGVExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnNSU3hEUVVGRE8xRkJSVVFzU1VGQlNTeFBRVUZQTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1dVRkRNMElzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEVWl4dlFrRkJiMElzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFVkJRVVVzUTBGRGJFVXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eGhRVUZoTEVWQlFVVXNRMEZCUXp0WlFVTXhRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVU5TTzJkQ1FVTkZMRlZCUVZVN1owSkJRMVlzYlVKQlFXMUNPMmRDUVVOdVFpeHpRa0ZCYzBJN1owSkJRM1JDTEhWQ1FVRjFRanRuUWtGRGRrSXNWMEZCVnp0aFFVTmFMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZkQlFWY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVWQlFVVXNRMEZEZEVVc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTlNMR05CUVdNc1JVRkRaQ3huUWtGQlowSXNSVUZEYUVJc1kwRkJZeXhyUWtGQmEwSXNSMEZCUnl4RlFVTnVReXhsUVVGbExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFVkJReTlETEZsQlFWa3NSVUZEV2l4WlFVRlpMRVZCUTFvc1pVRkJaU3hEUVVOb1FpeERRVUZETzFGQlJVWXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlF6VkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSWEJFTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc01rSkJRVEpDTEZGQlFWRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRkZCUVZFc1MwRkJTeXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJXcEVMRTlCUVU4N1dVRkRUQ3hSUVVGUk8xbEJRMUlzVDBGQlR6dFpRVU5RTEZGQlFWRXNSVUZCUlN4bFFVRmxPMWxCUTNwQ0xFdEJRVXNzUlVGQlJTeEpRVUZKTEZkQlFWY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU03VTBGRGVrTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZUU3hMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUTJwRExFOUJRV2RETEVWQlEyaERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOMlJTeEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRelZDTEVOQlFVTTdVVUZGUml4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhQUVVGUExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTDBRc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVlBMR2RDUVVGblFpeERRVU4wUWl4UFFVRm5ReXhGUVVOb1F5eExRVUZYTEVWQlExZ3NVVUZCWjBJc1JVRkRhRUlzUjBGQmFVSTdVVUZGYWtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzWkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03VVVGRk5VVXNTVUZCU1N4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOWUxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkZNMFFzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZCUXp0blFrRkRWaXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEYmtJc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeFBRVUZQTzFsQlEwd3NUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRekZDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUTFvc1MwRkJTeXhGUVVOTUxGRkJRVkVzUlVGRFVpeFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMRWRCUVVjc1JVRkROMElzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZEWkR0VFFVTkdMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVE3T3pzN1QwRkpSenRKUVVOTExIZENRVUYzUWl4RFFVTTVRaXhKUVVGblFpeEZRVU5vUWl4TFFVRmpPMUZCUldRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdVVUZGT1VNc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZiRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NWVUZCVlN4TFFVRkxMR0ZCUVdFc1QwRkJUeXhoUVVGaExFTkJRVU03VVVGRmJrVXNUVUZCVFN4UlFVRlJMRWRCUTFvc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNUdFpRVU51UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMklzVDBGQlR5eGpRVUZqTEZOQlFWTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNMVF5eERRVUZETzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUTFZc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNUdFpRVU51UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRMWdzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1R0cFFrRkRiRUlzVTBGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRwUWtGREwwTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSV0lzVDBGQlR5eHhRa0ZCY1VJc1VVRkJVU3hKUVVGSkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTXZSQ3hEUVVGRE8xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlExZ3NTVUZCU1N4RFFVRkRMRlZCUVZVc1MwRkJTeXhKUVVGSk8xbEJRM2hDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1NVRkJTVHRaUVVOdVFpeEpRVUZKTEVOQlFVTXNVMEZCVXl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVVeFFpeEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTFvc1QwRkJUeXhEUVVOTUxESkNRVUV5UWl4SlFVRkpMRU5CUVVNc1ZVRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnp0blFrRkRlRVFzUjBGQlJ5eFRRVUZUTEVkQlFVY3NUVUZCVFN4RlFVRkZMRU5CUTNoQ0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUTFZc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNUdFpRVU51UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRMWdzVDBGQlR5eERRVU5NTEhWQ1FVRjFRaXhKUVVGSkxFTkJRVU1zUzBGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSenRuUWtGREwwTXNZMEZCWXl4SlFVRkpMRU5CUVVNc1ZVRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnp0blFrRkRNME1zUjBGQlJ5eFRRVUZUTEVkQlFVY3NUVUZCVFN4RlFVRkZMRU5CUTNoQ0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNiMFZCUVc5Rk8xRkJRM0JGTEhsRlFVRjVSVHRSUVVONlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVThzWlVGQlpTeERRVU55UWl4VlFVRnJRaXhGUVVOc1FpeEhRVUZwUWp0UlFVVnFRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUlRsRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVONFFpeFBRVUZQTEZOQlFWTXNRMEZCUXp0UlFVTnVRaXhEUVVGRE8xRkJSVVFzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkZOVVFzU1VGQlNTeERRVUZETzFsQlEwZ3NUMEZCVHp0blFrRkRUQ3hOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTTdaMEpCUXk5RExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVkQlFVY3NRMEZCUXp0blFrRkRNME1zVlVGQlZTeEZRVU5TTEZWQlFWVXNTMEZCU3l4SFFVRkhPMjlDUVVOb1FpeERRVUZETEVOQlFVTXNTVUZCU1R0dlFrRkRUaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTTdaMEpCUTJwRUxFdEJRVXNzUlVGQlJTeExRVUZMTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRPMmRDUVVOd1JTeFRRVUZUTEVWQlExQXNVMEZCVXl4TFFVRkxMRWRCUVVjN2IwSkJRMllzUTBGQlF5eERRVUZETEVsQlFVazdiMEpCUTA0c1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGRGRFUXNTMEZCU3l4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUTNoQ08yRkJRMUlzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZCUXl4TlFVRk5MRU5CUVVNN1dVRkRVQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEdsRVFVRnBSQ3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEzcEZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRMjVDTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlU4c1kwRkJZeXhEUVVOd1FpeExRVUZoTEVWQlEySXNUMEZCWlN4RlFVTm1MRTlCUVdVN1NVRkRaaXcyUkVGQk5rUTdTVUZETjBRc1IwRkJhVUk3VVVGRmFrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRVlVzUTBGQlF6dFJRVVZxUXl4TFFVRkxMRTFCUVUwc1QwRkJUeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlF5eE5RVUZOTEVOQlFVTXNaVUZCWlN4RlFVRkZMR05CUVdNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkZOMFFzVFVGQlRTeEpRVUZKTEVkQlExSXNZMEZCWXl4TFFVRkxMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVVjZSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdaMEpCUTNwRExFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlFVTXNjMEpCUVhOQ0xFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZETjBRc1EwRkJRenRaUVVWRUxFbEJRVWtzUzBGQllTeERRVUZETzFsQlEyeENMRWxCUVVrc1IwRkJWeXhEUVVGRE8xbEJSV2hDTEVsQlFVa3NaVUZCWlN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU0xUWl4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRE8yZENRVU5vUWl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRE8xbEJRMmhDTEVOQlFVTTdhVUpCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRM3BETEUxQlFVMHNUVUZCVFN4SFFVRkhMR1ZCUVdVc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUlRGRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenR2UWtGRGVFSXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXgxUWtGQmRVSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRE9VUXNRMEZCUXp0blFrRkZSQ3hMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTNaRExFZEJRVWNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRE8ybENRVUZOTEVOQlFVTTdaMEpCUTA0c1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNaVUZCWlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU0zUXl4SFFVRkhMRWRCUVVjc1MwRkJTeXhEUVVGRE8xbEJRMlFzUTBGQlF6dFpRVVZFTEVsQlEwVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZEZUVJc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXp0blFrRkRkRUlzUzBGQlN5eEhRVUZITEU5QlFVODdaMEpCUTJZc1IwRkJSeXhIUVVGSExFOUJRVTg3WjBKQlEySXNTMEZCU3l4SFFVRkhMRWRCUVVjc1JVRkRXQ3hEUVVGRE8yZENRVU5FTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc2RVSkJRWFZDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRPVVFzUTBGQlF6dFpRVVZFTEV0QlFVc3NTVUZCU1N4TFFVRkxMRWRCUVVjc1MwRkJTeXhGUVVGRkxFdEJRVXNzU1VGQlNTeEhRVUZITEVWQlFVVXNTMEZCU3l4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU53UkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzQkNMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzVDBGQlR5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6TkRMRU5CUVVNN1NVRkZUeXhsUVVGbExFTkJRM0pDTEVsQlFWa3NSVUZEV2l4TFFVRlhMRVZCUTFnc1VVRkJaMElzUlVGRGFFSXNUMEZCWlN4RlFVTm1MRXRCUVZrN1VVRkZXaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlEyaEVMRmRCUVZjc1JVRkJSU3hMUVVGTE8xbEJRMnhDTEVWQlFVVXNSVUZCUlN4UlFVRlJPMU5CUTJJc1EwRkJReXhEUVVGRE8xRkJSVWdzVFVGQlRTeFhRVUZYTEVkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUlM5Q0xFOUJRVThzVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUnl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVOd1F5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZGZEVNc1NVRkJTU3hMUVVGTExFbEJRVWtzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCUlN4RFFVRkRPMmRDUVVNeFFpeE5RVUZOTzFsQlExSXNRMEZCUXp0WlFVVkVMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEZWtJc1EwRkJRenRSUVVWRUxFbEJRVWtzVjBGQlZ5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1FpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVTmlMSEZGUVVGeFJTeERRVU4wUlN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFOUJRVThzVjBGQlZ5eERRVUZETzBsQlEzSkNMRU5CUVVNN1NVRkZUeXhyUWtGQmEwSXNRMEZEZUVJc1NVRkJXU3hGUVVOYUxFdEJRVmNzUlVGRFdDeFJRVUZuUWp0UlFVVm9RaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlEyaEVMRmRCUVZjc1JVRkJSU3hMUVVGTE8xbEJRMnhDTEVWQlFVVXNSVUZCUlN4UlFVRlJPMU5CUTJJc1EwRkJReXhEUVVGRE8xRkJSVWdzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03U1VGRGJFTXNRMEZCUXp0SlFVVlBMSE5DUVVGelFpeERRVUZETEV0QlFXRXNSVUZCUlN4UlFVRm5RanRSUVVNMVJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4alFVRmpMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXp0UlFVVXZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJYcEZMSFZGUVVGMVJUdFJRVU4yUlN4TlFVRk5MRTFCUVUwc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE5VSXNTVUZCU1N4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJSWEpDTEV0QlFVc3NUVUZCVFN4TFFVRkxMRWxCUVVrc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRE0wSXNUVUZCVFN4VFFVRlRMRWRCUTJJc1QwRkJUeXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHl4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJSWEJGTEVsQlFVa3NTVUZCU1N4WFFVRlhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU55UkN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTnlRaXhQUVVGUExFZEJRVWNzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRhRU1zUTBGQlF6dHBRa0ZCVFN4RFFVRkRPMmRDUVVOT0xFOUJRVThzUjBGQlJ5eFRRVUZUTEVOQlFVTTdXVUZEZEVJc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeEpRVUZKTEU5QlFVOHNTMEZCU3l4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOMlFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM1pDTEVOQlFVTTdVVUZGUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRKUVVOb1FpeERRVUZETzBsQlJVOHNZVUZCWVN4RFFVRkRMRWxCUVZVN1VVRkRPVUlzVDBGQlR5eEpRVUZKTzJGQlExSXNWMEZCVnl4RlFVRkZPMkZCUTJJc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTTdZVUZEY0VJc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTXZRaXhEUVVGRE8wbEJSVThzWlVGQlpTeERRVUZETEVsQlFWVXNSVUZCUlN4UlFVRm5RanRSUVVOc1JDeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlF6ZERMRkZCUVZFc1JVRkJSU3hSUVVGUk8xbEJRMnhDTEVsQlFVa3NSVUZCUlN4VFFVRlRPMWxCUTJZc1MwRkJTeXhGUVVGRkxGTkJRVk03V1VGRGFFSXNSMEZCUnl4RlFVRkZMRk5CUVZNN1dVRkRaQ3hKUVVGSkxFVkJRVVVzVTBGQlV6dFpRVU5tTEUxQlFVMHNSVUZCUlN4VFFVRlRPMWxCUTJwQ0xFMUJRVTBzUlVGQlJTeFRRVUZUTzFsQlEycENMRk5CUVZNc1JVRkJSU3hMUVVGTE8xTkJRMnBDTEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRmRrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGREwwSXNTMEZCU3p0aFFVTkdMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhUUVVGVExFTkJRVU03WVVGRGVrTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlF6RkRMRU5CUVVNN1VVRkZSaXhQUVVGUExFTkJRMHdzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTTFReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlEyeEVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVThzVTBGQlV5eERRVUZETEV0QlFXVTdVVUZETDBJc1QwRkJUeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRkRVFzUTBGQlF6dEpRVVZFT3p0UFFVVkhPMGxCUTBzc1VVRkJVU3hEUVVGRExFbEJRVms3VVVGRE0wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU5zUXl4TlFVRk5MRTFCUVUwc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE5VSXNTVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0pDTEVsQlFVa3NTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWcVFpeFBRVUZQTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNN1dVRkRka1VzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0WlFVTm9ReXhKUVVGSkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEWml4SlFVRkpMRkZCUVZFc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRmFrSXNTMEZCU3l4TlFVRk5MRk5CUVZNc1NVRkJTU3hUUVVGVExFVkJRVVVzUTBGQlF6dG5Ra0ZEYkVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTMEZCU3l4SFFVRkhMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVVZzUkN4SlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRE8yOUNRVU14UXl4TlFVRk5PMmRDUVVOU0xFTkJRVU03WjBKQlJVUXNTMEZCU3l4SlFVRkpMRk5CUVZNc1EwRkJRenRuUWtGRGJrSXNVVUZCVVN4SlFVRkpMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGREwwSXNRMEZCUXp0WlFVVkVMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dG5Ra0ZEV0N4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIZERRVUYzUXl4RFFVRkRMRU5CUVVNN1dVRkROVVFzUTBGQlF6dFpRVVZFTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhOUVVGTkxFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTnFReXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRaUVVOMFF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUTJoQ0xFTkJRVU03VVVGRlJDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRmFrUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZQTEZWQlFWVXNRMEZCUXl4TFFVRmhPMUZCUXpsQ0xFOUJRVThzUzBGQlN6dGhRVU5VTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRE8yRkJRM1JDTEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRE8yRkJRM2hDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRE8yRkJRM0JDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE1VSXNRMEZCUXp0SlFVVlBMR05CUVdNc1EwRkJReXhMUVVGaE8xRkJRMnhETEU5QlFVOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVNc1EwRkJRenRKUVVWUExHVkJRV1VzUTBGQlF5eExRVUZoTzFGQlEyNURMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU4yUXl4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVGRExDdENRVUVyUWl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0JGTEVOQlFVTTdVVUZGUkN4UFFVRlBMRXRCUVVzc1EwRkJRenRKUVVObUxFTkJRVU03U1VGRlR5eFpRVUZaTEVOQlFVTXNSMEZCVnp0UlFVTTVRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM2hFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVY2UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRFdpeE5RVUZOTEVsQlFVa3NaVUZCWlN4RFFVRkRMRzlDUVVGdlFpeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNaRUxFTkJRVU03VVVGRlJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVThzVTBGQlV6dFJRVU5tTEUxQlFVMHNUVUZCVFN4SFFVTldMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlFVVTdXVUZEYWtNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVVY2UkN4UFFVRlBMRWRCUVVjc1RVRkJUU3h0UWtGQmJVSXNRMEZCUXp0SlFVTjBReXhEUVVGRE8wbEJSVThzWTBGQll5eERRVUZETEV0QlFXRTdVVUZEYkVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN6dGhRVU53UWl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRE8yRkJRMnBDTEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1IwRkJSeXhEUVVGRE8yRkJRM3BDTEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRE8yRkJRM1pDTEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUldwQ0xFOUJRVThzUjBGQlJ5eFRRVUZUTEVsQlFVa3NiVUpCUVcxQ0xFMUJRVTBzUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlU4c1pVRkJaU3hEUVVGRExFOUJRV2RETzFGQlEzUkVMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRU5CUVVNN1dVRkRNVUlzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzFGQlF6bEVMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJRek5DTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hEUVVGRE8xRkJSVVFzU1VGRFJTeFBRVUZQTEVOQlFVTXNaVUZCWlN4TFFVRkxMRk5CUVZNN1dVRkRja01zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHVkJRV1VzUTBGQlF6dG5Ra0ZEZUVNc1QwRkJUeXhEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEVOQlFVTXNSVUZETDBJc1EwRkJRenRaUVVORUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlFVTXNORU5CUVRSRExFTkJRVU1zUTBGQlF6dFJRVU14UlN4RFFVRkRPMUZCUlVRc1NVRkRSU3hQUVVGUExFTkJRVU1zYTBKQlFXdENMRXRCUVVzc1UwRkJVenRaUVVONFF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zYTBKQlFXdENMRU5CUVVNN1owSkJRelZETEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZEYWtNc1EwRkJRenRaUVVORUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlEzWkNMRzlFUVVGdlJDeERRVU55UkN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFbEJRMFVzVDBGQlR5eERRVUZETEdOQlFXTXNTMEZCU3l4VFFVRlRPMWxCUTNCRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVNeFJTeERRVUZETzFsQlEwUXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXcwUTBGQk5FTXNRMEZCUXl4RFFVRkRPMUZCUXpGRkxFTkJRVU03U1VGRFNDeERRVUZETzBOQlEwWXNRMEZCUVR0QlFTOW9RbGM3U1VGRVZDeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03T3l0RFFVTlBPMEZCUm5oQ0xHVkJRV1U3U1VGRU0wSXNUMEZCVHl4RlFVRkZPMGRCUTBjc1pVRkJaU3hEUVdscFFqTkNJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUTI5dWRHVjRkQ3dnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuTENCelpYSjJhV05sTENCVFpYSjJhV05sSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGNtOXVSWGh3Y21WemMybHZibEJoY25ObGNpQjlJR1p5YjIwZ1hDSmpjbTl1TFhCaGNuTmxjbHdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRMkZzWlc1a1lYSkdhV3hsTEZ4dUlDQkRZV3hsYm1SaGNsSmxiV2x1WkdWeVQzQjBhVzl1Y3l4Y2JpQWdVR0Z5YzJWa1EzSnZiaXhjYmlBZ1VtVmpkWEp5Wlc1alpWSmxjM1ZzZEN4Y2JuMGdabkp2YlNCY0lpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRTl3WlhKaGRHbHZia3RsZVhNc0lGWmhiR2xrWVhScGIyNUZjbkp2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ2RIbHdaU0JKUTJGc1pXNWtZWEpYY21sMFpYSWdmU0JtY205dElGd2lMaTkzY21sMFpYSnpMMGxEWVd4bGJtUmhjbGR5YVhSbGNsd2lPMXh1YVcxd2IzSjBJSHNnYVc1cVpXTjBJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlwYm1wbFkzUmhZbXhsTFdSbFkyOXlZWFJ2Y25OY0lqdGNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR2x1ZEdWeWIzQmxjbUZpYkdVZ2FVTmhiR1Z1WkdGeUlHMWxaR2xqWVhScGIyNGdjbVZ0YVc1a1pYSnpMbHh1SUNwY2JpQXFJRlJvWlNCelpYSjJhV05sSUdoaGN5QnVieUJ6ZEdGMGFXTWdUbTlrWlNCcGJYQnZjblJ6TENCemJ5QjBhR1VnYzJGdFpTQnRiMlIxYkdVZ1kyRnVJR0psSUdKMWJtUnNaV1JjYmlBcUlHWnZjaUJpY205M2MyVnljeTRnVG05a1pTMXZibXg1SUdacGJHVnplWE4wWlcwZ1ltVm9ZWFpwYjNJZ2FYTWdiRzloWkdWa0lHUjVibUZ0YVdOaGJHeDVMbHh1SUNvdlhHNUFjMlZ5ZG1salpTZ3BYRzVsZUhCdmNuUWdZMnhoYzNNZ1EyRnNaVzVrWVhKVFpYSjJhV05sSUdWNGRHVnVaSE1nVTJWeWRtbGpaU0I3WEc0Z0lFQnBibXBsWTNRb0oxd2lZMkZzWlc1a1lYSXRkM0pwZEdWeVhDSW5LVnh1SUNCd2NtOTBaV04wWldRZ2QzSnBkR1Z5SVRvZ1NVTmhiR1Z1WkdGeVYzSnBkR1Z5TzF4dVhHNGdJSEIxWW14cFl5QmhjM2x1WXlCamNtVmhkR1ZOWldScFkyRjBhVzl1VW1WdGFXNWtaWElvWEc0Z0lDQWdiM0IwYVc5dWN6b2dRMkZzWlc1a1lYSlNaVzFwYm1SbGNrOXdkR2x2Ym5Nc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4RFlXeGxibVJoY2tacGJHVStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNElIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlBjR1Z5WVhScGIyNUxaWGx6TGtOU1JVRlVSU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlUxbFpHbGpZWFJwYjI1U1pXMXBibVJsY2lrN1hHNGdJQ0FnZEdocGN5NTJZV3hwWkdGMFpVOXdkR2x2Ym5Nb2IzQjBhVzl1Y3lrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZEdGeWRDQTlJRzl3ZEdsdmJuTXVjM1JoY25RZ1B5QnVaWGNnUkdGMFpTaHZjSFJwYjI1ekxuTjBZWEowS1NBNklHNWxkeUJFWVhSbEtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCMGFXMWxlbTl1WlNBOVhHNGdJQ0FnSUNCdmNIUnBiMjV6TG5ScGJXVjZiMjVsSUQ4L1hHNGdJQ0FnSUNCSmJuUnNMa1JoZEdWVWFXMWxSbTl5YldGMEtDa3VjbVZ6YjJ4MlpXUlBjSFJwYjI1ektDa3VkR2x0WlZwdmJtVWdQejljYmlBZ0lDQWdJRndpVlZSRFhDSTdYRzVjYmlBZ0lDQmpiMjV6ZENCa2RYSmhkR2x2YmsxcGJuVjBaWE1nUFNCdmNIUnBiMjV6TG1SMWNtRjBhVzl1VFdsdWRYUmxjeUEvUHlBeE5UdGNiaUFnSUNCamIyNXpkQ0JoYkdGeWJVMXBiblYwWlhOQ1pXWnZjbVVnUFNCdmNIUnBiMjV6TG1Gc1lYSnRUV2x1ZFhSbGMwSmxabTl5WlNBL1B5QXhNRHRjYmlBZ0lDQmpiMjV6ZENCMWFXUWdQU0J2Y0hScGIyNXpMblZwWkNBL1B5QjBhR2x6TG1OeVpXRjBaVlZwWkNncE8xeHVYRzRnSUNBZ1kyOXVjM1FnY21WamRYSnlaVzVqWlNBOUlIUm9hWE11WTNKbFlYUmxVbVZqZFhKeVpXNWpaU2h2Y0hScGIyNXpMQ0J6ZEdGeWRDd2dkR2x0WlhwdmJtVXNJR04wZUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JtYVhKemRFOWpZM1Z5Y21WdVkyVWdQVnh1SUNBZ0lDQWdjbVZqZFhKeVpXNWpaUzV5WkdGMFpYTS9MbHN3WFNBL1AxeHVJQ0FnSUNBZ2RHaHBjeTVuWlhSR2FYSnpkRTlqWTNWeWNtVnVZMlVvYjNCMGFXOXVjeTVqY205dUxDQnpkR0Z5ZEN3Z2RHbHRaWHB2Ym1VcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWlc1a0lEMGdibVYzSUVSaGRHVW9abWx5YzNSUFkyTjFjbkpsYm1ObExtZGxkRlJwYldVb0tTQXJJR1IxY21GMGFXOXVUV2x1ZFhSbGN5QXFJRFl3WHpBd01DazdYRzVjYmlBZ0lDQmpiMjV6ZENCc2FXNWxjem9nYzNSeWFXNW5XMTBnUFNCYlhHNGdJQ0FnSUNCY0lrSkZSMGxPT2xaRFFVeEZUa1JCVWx3aUxGeHVJQ0FnSUNBZ1hDSldSVkpUU1U5T09qSXVNRndpTEZ4dUlDQWdJQ0FnWENKRFFVeFRRMEZNUlRwSFVrVkhUMUpKUVU1Y0lpeGNiaUFnSUNBZ0lGd2lVRkpQUkVsRU9pMHZMMUJVVUM4dlEyRnNaVzVrWVhJZ1UyVnlkbWxqWlM4dlJVNWNJaXhjYmlBZ0lDQWdJRndpVFVWVVNFOUVPbEJWUWt4SlUwaGNJaXhjYmlBZ0lDQWdJRndpUWtWSFNVNDZWa1ZXUlU1VVhDSXNYRzRnSUNBZ0lDQmdWVWxFT2lSN2RHaHBjeTVsYzJOaGNHVlFjbTl3WlhKMGVTaDFhV1FwZldBc1hHNGdJQ0FnSUNCZ1JGUlRWRUZOVURva2UzUm9hWE11Wm05eWJXRjBWWFJqUkdGMFpTaHVaWGNnUkdGMFpTZ3BLWDFnTEZ4dUlDQWdJQ0FnWUVSVVUxUkJVbFE3VkZwSlJEMGtlM1JvYVhNdVpYTmpZWEJsVUdGeVlXMWxkR1Z5S0hScGJXVjZiMjVsS1gwNkpIdDBhR2x6TG1admNtMWhkRXh2WTJGc1JHRjBaU2hjYmlBZ0lDQWdJQ0FnWm1seWMzUlBZMk4xY25KbGJtTmxMRnh1SUNBZ0lDQWdJQ0IwYVcxbGVtOXVaVnh1SUNBZ0lDQWdLWDFnTEZ4dUlDQWdJQ0FnWUVSVVJVNUVPMVJhU1VROUpIdDBhR2x6TG1WelkyRndaVkJoY21GdFpYUmxjaWgwYVcxbGVtOXVaU2w5T2lSN2RHaHBjeTVtYjNKdFlYUk1iMk5oYkVSaGRHVW9YRzRnSUNBZ0lDQWdJR1Z1WkN4Y2JpQWdJQ0FnSUNBZ2RHbHRaWHB2Ym1WY2JpQWdJQ0FnSUNsOVlDeGNiaUFnSUNBZ0lHQlRWVTFOUVZKWk9pUjdkR2hwY3k1bGMyTmhjR1ZVWlhoMEtHOXdkR2x2Ym5NdWRHbDBiR1VwZldBc1hHNGdJQ0FnWFR0Y2JseHVJQ0FnSUdsbUlDaHZjSFJwYjI1ekxtUmxjMk55YVhCMGFXOXVLU0I3WEc0Z0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0dCRVJWTkRVa2xRVkVsUFRqb2tlM1JvYVhNdVpYTmpZWEJsVkdWNGRDaHZjSFJwYjI1ekxtUmxjMk55YVhCMGFXOXVLWDFnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1c2IyTmhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDaGdURTlEUVZSSlQwNDZKSHQwYUdsekxtVnpZMkZ3WlZSbGVIUW9iM0IwYVc5dWN5NXNiMk5oZEdsdmJpbDlZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hKbFkzVnljbVZ1WTJVdWNuSjFiR1VwSUh0Y2JpQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb1lGSlNWVXhGT2lSN2NtVmpkWEp5Wlc1alpTNXljblZzWlgxZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jbVZqZFhKeVpXNWpaUzV5WkdGMFpYTWdKaVlnY21WamRYSnlaVzVqWlM1eVpHRjBaWE11YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ0x5OGdSRlJUVkVGU1ZDQmhiSEpsWVdSNUlISmxjSEpsYzJWdWRITWdkR2hsSUdacGNuTjBJRzlqWTNWeWNtVnVZMlV1WEc0Z0lDQWdJQ0JqYjI1emRDQnlaVzFoYVc1cGJtY2dQU0J5WldOMWNuSmxibU5sTG5Ka1lYUmxjeTV6YkdsalpTZ3hLVHRjYmx4dUlDQWdJQ0FnYkdsdVpYTXVjSFZ6YUNndUxpNTBhR2x6TG1OeVpXRjBaVVp2YkdSbFpGSkVZWFJsVEdsdVpYTW9jbVZ0WVdsdWFXNW5MQ0IwYVcxbGVtOXVaU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodmNIUnBiMjV6TG05eVoyRnVhWHBsY2tWdFlXbHNLU0I3WEc0Z0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0Z4dUlDQWdJQ0FnSUNCZ1QxSkhRVTVKV2tWU09tMWhhV3gwYnpva2UzUm9hWE11WlhOallYQmxVSEp2Y0dWeWRIa29iM0IwYVc5dWN5NXZjbWRoYm1sNlpYSkZiV0ZwYkNsOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NWhkSFJsYm1SbFpVVnRZV2xzS1NCN1hHNGdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tGeHVJQ0FnSUNBZ0lDQmJYRzRnSUNBZ0lDQWdJQ0FnWENKQlZGUkZUa1JGUlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJRndpUTFWVVdWQkZQVWxPUkVsV1NVUlZRVXhjSWl4Y2JpQWdJQ0FnSUNBZ0lDQmNJbEpQVEVVOVVrVlJMVkJCVWxSSlEwbFFRVTVVWENJc1hHNGdJQ0FnSUNBZ0lDQWdYQ0pRUVZKVVUxUkJWRDFPUlVWRVV5MUJRMVJKVDA1Y0lpeGNiaUFnSUNBZ0lDQWdJQ0JjSWxKVFZsQTlWRkpWUlZ3aUxGeHVJQ0FnSUNBZ0lDQmRMbXB2YVc0b1hDSTdYQ0lwSUNzZ1lEcHRZV2xzZEc4NkpIdDBhR2x6TG1WelkyRndaVkJ5YjNCbGNuUjVLRzl3ZEdsdmJuTXVZWFIwWlc1a1pXVkZiV0ZwYkNsOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCc2FXNWxjeTV3ZFhOb0tGeHVJQ0FnSUNBZ1hDSkNSVWRKVGpwV1FVeEJVazFjSWl4Y2JpQWdJQ0FnSUZ3aVFVTlVTVTlPT2tSSlUxQk1RVmxjSWl4Y2JpQWdJQ0FnSUdCVVVrbEhSMFZTT2kxUVZDUjdZV3hoY20xTmFXNTFkR1Z6UW1WbWIzSmxmVTFnTEZ4dUlDQWdJQ0FnWUVSRlUwTlNTVkJVU1U5T09pUjdkR2hwY3k1bGMyTmhjR1ZVWlhoMEtHOXdkR2x2Ym5NdWRHbDBiR1VwZldBc1hHNGdJQ0FnSUNCY0lrVk9SRHBXUVV4QlVrMWNJaXhjYmlBZ0lDQWdJRndpUlU1RU9sWkZWa1ZPVkZ3aUxGeHVJQ0FnSUNBZ1hDSkZUa1E2VmtOQlRFVk9SRUZTWENKY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdZMjl1ZEdWdWRDQTlJSFJvYVhNdVptOXNaRXhwYm1WektHeHBibVZ6S1M1cWIybHVLRndpWEZ4eVhGeHVYQ0lwSUNzZ1hDSmNYSEpjWEc1Y0lqdGNiaUFnSUNCamIyNXpkQ0JtYVd4bGJtRnRaU0E5SUhSb2FYTXVZM0psWVhSbFJtbHNaVzVoYldVb2IzQjBhVzl1Y3k1MGFYUnNaU2s3WEc1Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1EyRnNaVzVrWVhJZ1pYWmxiblFnWTNKbFlYUmxaRG9nSkh0bWFXeGxibUZ0WlgxZ0tUdGNiaUFnSUNCc2IyY3VaR1ZpZFdjb1lFTnZiblJsYm5RZ1ptOXlJQ1I3Wm1sc1pXNWhiV1Y5T2lBa2UyTnZiblJsYm5SOVlDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1ptbHNaVzVoYldVc1hHNGdJQ0FnSUNCamIyNTBaVzUwTEZ4dUlDQWdJQ0FnYldsdFpWUjVjR1U2SUZ3aWRHVjRkQzlqWVd4bGJtUmhjbHdpTEZ4dUlDQWdJQ0FnWW5sMFpYTTZJRzVsZHlCVVpYaDBSVzVqYjJSbGNpZ3BMbVZ1WTI5a1pTaGpiMjUwWlc1MEtTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUdOeVpXRjBaVUZ1WkZOMGIzSmxVbVZ0YVc1a1pYSW9YRzRnSUNBZ2IzQjBhVzl1Y3pvZ1EyRnNaVzVrWVhKU1pXMXBibVJsY2s5d2RHbHZibk1zWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ2dmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JQY0dWeVlYUnBiMjVMWlhsekxrTlNSVUZVUlN3Z2RISjFaU2twTG1admNpaGNiaUFnSUNBZ0lIUm9hWE11WTNKbFlYUmxRVzVrVTNSdmNtVlNaVzFwYm1SbGNseHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JtYVd4bElEMGdZWGRoYVhRZ2RHaHBjeTVqY21WaGRHVk5aV1JwWTJGMGFXOXVVbVZ0YVc1a1pYSW9iM0IwYVc5dWN5d2dZM1I0S1R0Y2JseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWQzSnBkR1Z5TG5keWFYUmxLR1pwYkdVc0lHTjBlQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOeVpXRjBaVkpsWTNWeWNtVnVZMlVvWEc0Z0lDQWdiM0IwYVc5dWN6b2dRMkZzWlc1a1lYSlNaVzFwYm1SbGNrOXdkR2x2Ym5Nc1hHNGdJQ0FnYzNSaGNuUTZJRVJoZEdVc1hHNGdJQ0FnZEdsdFpYcHZibVU2SUhOMGNtbHVaeXhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBseHVJQ0FwT2lCU1pXTjFjbkpsYm1ObFVtVnpkV3gwSUh0Y2JpQWdJQ0JqYjI1emRDQndZWEp6WldRZ1BTQjBhR2x6TG5CaGNuTmxVMmx0Y0d4bFEzSnZiaWh2Y0hScGIyNXpMbU55YjI0c0lHTjBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RXNTBhV3dnUFNCdmNIUnBiMjV6TG5WdWRHbHNJRDhnZEdocGN5NW1iM0p0WVhSVmRHTkVZWFJsS0c5d2RHbHZibk11ZFc1MGFXd3BJRG9nZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnYVdZZ0tIQmhjbk5sWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY25KMWJHVWdQU0IwYUdsekxtTnZiblpsY25SVGFXMXdiR1ZEY205dVZHOVNVblZzWlNod1lYSnpaV1FzSUhWdWRHbHNLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tISnlkV3hsS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lISnlkV3hsSUgwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJSEprWVhSbGN6b2dkR2hwY3k1bGVIQmhibVJEY205dVJHRjBaWE1vWEc0Z0lDQWdJQ0FnSUc5d2RHbHZibk11WTNKdmJpeGNiaUFnSUNBZ0lDQWdjM1JoY25Rc1hHNGdJQ0FnSUNBZ0lIUnBiV1Y2YjI1bExGeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxtMWhlRTlqWTNWeWNtVnVZMlZ6SUQ4L0lETTJOU3hjYmlBZ0lDQWdJQ0FnYjNCMGFXOXVjeTUxYm5ScGJGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUnpJSFJvWlNCamIyMXRiMjVzZVNCdVpXVmtaV1FnYldWa2FXTmhkR2x2YmlCelkyaGxaSFZzWlhNdVhHNGdJQ0FxWEc0Z0lDQXFJRlZ1YzNWd2NHOXlkR1ZrSUdOeWIyNGdjMmhoY0dWeklHWmhiR3dnWW1GamF5QjBieUJsZUhCc2FXTnBkQ0JTUkVGVVJTQnZZMk4xY25KbGJtTmxjeTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWTI5dWRtVnlkRk5wYlhCc1pVTnliMjVVYjFKU2RXeGxLRnh1SUNBZ0lHTnliMjQ2SUZCaGNuTmxaRU55YjI0c1hHNGdJQ0FnZFc1MGFXdy9PaUJ6ZEhKcGJtZGNiaUFnS1RvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNCamIyNXpkQ0J6ZFdabWFYZ2dQU0IxYm5ScGJDQS9JR0E3VlU1VVNVdzlKSHQxYm5ScGJIMWdJRG9nWENKY0lqdGNibHh1SUNBZ0lHTnZibk4wSUcxcGJuVjBaWE1nUFNCamNtOXVMbTFwYm5WMFpTNXFiMmx1S0Z3aUxGd2lLVHRjYmlBZ0lDQmpiMjV6ZENCb2IzVnljeUE5SUdOeWIyNHVhRzkxY2k1cWIybHVLRndpTEZ3aUtUdGNibHh1SUNBZ0lHTnZibk4wSUhScGJXVlFZWEowY3lBOUlHQkNXVWhQVlZJOUpIdG9iM1Z5YzMwN1FsbE5TVTVWVkVVOUpIdHRhVzUxZEdWemZUdENXVk5GUTA5T1JEMHdZRHRjYmx4dUlDQWdJR052Ym5OMElHVjJaWEo1UkdGNUlEMWNiaUFnSUNBZ0lHTnliMjR1WkdGNVQyWk5iMjUwYUNBOVBUMGdiblZzYkNBbUpseHVJQ0FnSUNBZ1kzSnZiaTV0YjI1MGFDQTlQVDBnYm5Wc2JDQW1KbHh1SUNBZ0lDQWdZM0p2Ymk1a1lYbFBabGRsWldzZ1BUMDlJRzUxYkd3N1hHNWNiaUFnSUNCcFppQW9aWFpsY25sRVlYa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmdSbEpGVVQxRVFVbE1XVHNrZTNScGJXVlFZWEowYzMwa2UzTjFabVpwZUgxZ08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSGRsWld0c2VTQTlYRzRnSUNBZ0lDQmpjbTl1TG1SaGVVOW1UVzl1ZEdnZ1BUMDlJRzUxYkd3Z0ppWmNiaUFnSUNBZ0lHTnliMjR1Ylc5dWRHZ2dQVDA5SUc1MWJHd2dKaVpjYmlBZ0lDQWdJR055YjI0dVpHRjVUMlpYWldWcklDRTlQU0J1ZFd4c08xeHVYRzRnSUNBZ2FXWWdLSGRsWld0c2VTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2QyVmxhMlJoZVhNZ1BTQmpjbTl1WEc0Z0lDQWdJQ0FnSUM1a1lYbFBabGRsWldzaExtMWhjQ2dvWkdGNUtTQTlQaUIwYUdsekxuZGxaV3RrWVhsVWIwbGpjeWhrWVhrcEtWeHVJQ0FnSUNBZ0lDQXVhbTlwYmloY0lpeGNJaWs3WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJnUmxKRlVUMVhSVVZMVEZrN1FsbEVRVms5Skh0M1pXVnJaR0Y1YzMwN0pIdDBhVzFsVUdGeWRITjlKSHR6ZFdabWFYaDlZRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCdGIyNTBhR3g1SUQxY2JpQWdJQ0FnSUdOeWIyNHVaR0Y1VDJaTmIyNTBhQ0FoUFQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnWTNKdmJpNXRiMjUwYUNBOVBUMGdiblZzYkNBbUpseHVJQ0FnSUNBZ1kzSnZiaTVrWVhsUFpsZGxaV3NnUFQwOUlHNTFiR3c3WEc1Y2JpQWdJQ0JwWmlBb2JXOXVkR2hzZVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ1lFWlNSVkU5VFU5T1ZFaE1XVHRDV1UxUFRsUklSRUZaUFNSN1kzSnZiaTVrWVhsUFprMXZiblJvSVM1cWIybHVLRndpTEZ3aUtYMDdZQ0FyWEc0Z0lDQWdJQ0FnSUdBa2UzUnBiV1ZRWVhKMGMzMGtlM04xWm1acGVIMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhsbFlYSnNlU0E5WEc0Z0lDQWdJQ0JqY205dUxtUmhlVTltVFc5dWRHZ2dJVDA5SUc1MWJHd2dKaVpjYmlBZ0lDQWdJR055YjI0dWJXOXVkR2dnSVQwOUlHNTFiR3dnSmlaY2JpQWdJQ0FnSUdOeWIyNHVaR0Y1VDJaWFpXVnJJRDA5UFNCdWRXeHNPMXh1WEc0Z0lDQWdhV1lnS0hsbFlYSnNlU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnWUVaU1JWRTlXVVZCVWt4Wk8wSlpUVTlPVkVnOUpIdGpjbTl1TG0xdmJuUm9JUzVxYjJsdUtGd2lMRndpS1gwN1lDQXJYRzRnSUNBZ0lDQWdJR0JDV1UxUFRsUklSRUZaUFNSN1kzSnZiaTVrWVhsUFprMXZiblJvSVM1cWIybHVLRndpTEZ3aUtYMDdZQ0FyWEc0Z0lDQWdJQ0FnSUdBa2UzUnBiV1ZRWVhKMGMzMGtlM04xWm1acGVIMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRU55YjI0Z1pHRjVMVzltTFcxdmJuUm9MMlJoZVMxdlppMTNaV1ZySUdOdmJXSnBibUYwYVc5dWN5Qm9ZWFpsSUU5U0xXeHBhMlVnYzJWdFlXNTBhV056WEc0Z0lDQWdMeThnYVc0Z2JXRnVlU0JwYlhCc1pXMWxiblJoZEdsdmJuTWdZVzVrSUdOaGJtNXZkQ0JpWlNCeVpYQnlaWE5sYm5SbFpDQnpZV1psYkhrZ1lYTWdiMjVsSUZKU1ZVeEZMbHh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElIQmhjbk5sVTJsdGNHeGxRM0p2YmloY2JpQWdJQ0JsZUhCeVpYTnphVzl1T2lCemRISnBibWNzWEc0Z0lDQWdZM1I0T2lCRGIyNTBaWGgwUEdGdWVUNWNiaUFnS1RvZ1VHRnljMlZrUTNKdmJpQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlIUm9hWE11Ykc5blEzUjRLRnRqZEhoZExDQjBhR2x6TG5CaGNuTmxVMmx0Y0d4bFEzSnZiaWs3WEc0Z0lDQWdZMjl1YzNRZ1ptbGxiR1J6SUQwZ1pYaHdjbVZ6YzJsdmJpNTBjbWx0S0NrdWMzQnNhWFFvTDF4Y2N5c3ZLVHRjYmx4dUlDQWdJR2xtSUNobWFXVnNaSE11YkdWdVozUm9JQ0U5UFNBMUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRnR0YVc1MWRHVXNJR2h2ZFhJc0lHUmhlVTltVFc5dWRHZ3NJRzF2Ym5Sb0xDQmtZWGxQWmxkbFpXdGRJRDBnWm1sbGJHUnpPMXh1WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUcxcGJuVjBaVG9nZEdocGN5NXdZWEp6WlVOeWIyNUdhV1ZzWkNodGFXNTFkR1VzSURBc0lEVTVMQ0JqZEhncExGeHVJQ0FnSUNBZ0lDQm9iM1Z5T2lCMGFHbHpMbkJoY25ObFEzSnZia1pwWld4a0tHaHZkWElzSURBc0lESXpMQ0JqZEhncExGeHVJQ0FnSUNBZ0lDQmtZWGxQWmsxdmJuUm9PbHh1SUNBZ0lDQWdJQ0FnSUdSaGVVOW1UVzl1ZEdnZ1BUMDlJRndpS2x3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUc1MWJHeGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTV3WVhKelpVTnliMjVHYVdWc1pDaGtZWGxQWmsxdmJuUm9MQ0F4TENBek1Td2dZM1I0S1N4Y2JpQWdJQ0FnSUNBZ2JXOXVkR2c2SUcxdmJuUm9JRDA5UFNCY0lpcGNJaUEvSUc1MWJHd2dPaUIwYUdsekxuQmhjbk5sUTNKdmJrWnBaV3hrS0cxdmJuUm9MQ0F4TENBeE1pd2dZM1I0S1N4Y2JpQWdJQ0FnSUNBZ1pHRjVUMlpYWldWck9seHVJQ0FnSUNBZ0lDQWdJR1JoZVU5bVYyVmxheUE5UFQwZ1hDSXFYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdiblZzYkZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUIwYUdsekxuQmhjbk5sUTNKdmJrWnBaV3hrS0dSaGVVOW1WMlZsYXl3Z01Dd2dOeXdnWTNSNEtTNXRZWEFvS0haaGJIVmxLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDA5UFNBM0lEOGdNQ0E2SUhaaGJIVmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ2JHOW5MbVJsWW5WbktHQkdZV2xzWldRZ2RHOGdaMlZ1WlhKaGRHVWdjMmx0Y0d4bElHTnliMjRnWlhod2NtVnpjMmx2YmlCbWIzSWdKSHRsZUhCeVpYTnphVzl1ZldBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhCaGNuTmxRM0p2YmtacFpXeGtLRnh1SUNBZ0lHWnBaV3hrT2lCemRISnBibWNzWEc0Z0lDQWdiV2x1YVcxMWJUb2diblZ0WW1WeUxGeHVJQ0FnSUcxaGVHbHRkVzA2SUc1MWJXSmxjaXhjYmlBZ0lDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjV2TFhWdWRYTmxaQzEyWVhKelhHNGdJQ0FnWTNSNE9pQkRiMjUwWlhoMFBHRnVlVDVjYmlBZ0tUb2diblZ0WW1WeVcxMGdlMXh1SUNBZ0lHTnZibk4wSUhaaGJIVmxjeUE5SUc1bGR5QlRaWFE4Ym5WdFltVnlQaWdwTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCelpXZHRaVzUwSUc5bUlHWnBaV3hrTG5Od2JHbDBLRndpTEZ3aUtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1czSmhibWRsUlhod2NtVnpjMmx2Yml3Z2MzUmxjRVY0Y0hKbGMzTnBiMjVkSUQwZ2MyVm5iV1Z1ZEM1emNHeHBkQ2hjSWk5Y0lpazdYRzVjYmlBZ0lDQWdJR052Ym5OMElITjBaWEFnUFZ4dUlDQWdJQ0FnSUNCemRHVndSWGh3Y21WemMybHZiaUE5UFQwZ2RXNWtaV1pwYm1Wa0lEOGdNU0E2SUU1MWJXSmxjaTV3WVhKelpVbHVkQ2h6ZEdWd1JYaHdjbVZ6YzJsdmJpd2dNVEFwTzF4dVhHNGdJQ0FnSUNCcFppQW9JVTUxYldKbGNpNXBjMGx1ZEdWblpYSW9jM1JsY0NrZ2ZId2djM1JsY0NBOFBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWUVsdWRtRnNhV1FnWTNKdmJpQnpkR1Z3T2lBa2UzTmxaMjFsYm5SOVlDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR3hsZENCemRHRnlkRG9nYm5WdFltVnlPMXh1SUNBZ0lDQWdiR1YwSUdWdVpEb2diblZ0WW1WeU8xeHVYRzRnSUNBZ0lDQnBaaUFvY21GdVoyVkZlSEJ5WlhOemFXOXVJRDA5UFNCY0lpcGNJaWtnZTF4dUlDQWdJQ0FnSUNCemRHRnlkQ0E5SUcxcGJtbHRkVzA3WEc0Z0lDQWdJQ0FnSUdWdVpDQTlJRzFoZUdsdGRXMDdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSEpoYm1kbFJYaHdjbVZ6YzJsdmJpNXBibU5zZFdSbGN5aGNJaTFjSWlrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1ltOTFibVJ6SUQwZ2NtRnVaMlZGZUhCeVpYTnphVzl1TG5Od2JHbDBLRndpTFZ3aUtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1ltOTFibVJ6TG14bGJtZDBhQ0FoUFQwZ01pa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWUVsdWRtRnNhV1FnWTNKdmJpQnlZVzVuWlRvZ0pIdHpaV2R0Wlc1MGZXQXBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2MzUmhjblFnUFNCT2RXMWlaWEl1Y0dGeWMyVkpiblFvWW05MWJtUnpXekJkTENBeE1DazdYRzRnSUNBZ0lDQWdJR1Z1WkNBOUlFNTFiV0psY2k1d1lYSnpaVWx1ZENoaWIzVnVaSE5iTVYwc0lERXdLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSE4wWVhKMElEMGdUblZ0WW1WeUxuQmhjbk5sU1c1MEtISmhibWRsUlhod2NtVnpjMmx2Yml3Z01UQXBPMXh1SUNBZ0lDQWdJQ0JsYm1RZ1BTQnpkR0Z5ZER0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FoVG5WdFltVnlMbWx6U1c1MFpXZGxjaWh6ZEdGeWRDa2dmSHhjYmlBZ0lDQWdJQ0FnSVU1MWJXSmxjaTVwYzBsdWRHVm5aWElvWlc1a0tTQjhmRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRDQThJRzFwYm1sdGRXMGdmSHhjYmlBZ0lDQWdJQ0FnWlc1a0lENGdiV0Y0YVcxMWJTQjhmRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRDQStJR1Z1WkZ4dUlDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QldZV3hwWkdGMGFXOXVSWEp5YjNJb1lFbHVkbUZzYVdRZ1kzSnZiaUJtYVdWc1pEb2dKSHR6WldkdFpXNTBmV0FwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCbWIzSWdLR3hsZENCMllXeDFaU0E5SUhOMFlYSjBPeUIyWVd4MVpTQThQU0JsYm1RN0lIWmhiSFZsSUNzOUlITjBaWEFwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1Z6TG1Ga1pDaDJZV3gxWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRnN1TGk1MllXeDFaWE5kTG5OdmNuUW9LR0VzSUdJcElEMCtJR0VnTFNCaUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaWGh3WVc1a1EzSnZia1JoZEdWektGeHVJQ0FnSUdOeWIyNDZJSE4wY21sdVp5eGNiaUFnSUNCemRHRnlkRG9nUkdGMFpTeGNiaUFnSUNCMGFXMWxlbTl1WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzFoZUdsdGRXMDZJRzUxYldKbGNpeGNiaUFnSUNCMWJuUnBiRDg2SUVSaGRHVmNiaUFnS1RvZ1JHRjBaVnRkSUh0Y2JpQWdJQ0JqYjI1emRDQnBiblJsY25aaGJDQTlJRU55YjI1RmVIQnlaWE56YVc5dVVHRnljMlZ5TG5CaGNuTmxLR055YjI0c0lIdGNiaUFnSUNBZ0lHTjFjbkpsYm5SRVlYUmxPaUJ6ZEdGeWRDeGNiaUFnSUNBZ0lIUjZPaUIwYVcxbGVtOXVaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR052Ym5OMElHOWpZM1Z5Y21WdVkyVnpPaUJFWVhSbFcxMGdQU0JiWFR0Y2JseHVJQ0FnSUhkb2FXeGxJQ2h2WTJOMWNuSmxibU5sY3k1c1pXNW5kR2dnUENCdFlYaHBiWFZ0S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J1WlhoMElEMGdhVzUwWlhKMllXd3VibVY0ZENncExuUnZSR0YwWlNncE8xeHVYRzRnSUNBZ0lDQnBaaUFvZFc1MGFXd2dKaVlnYm1WNGRDQStJSFZ1ZEdsc0tTQjdYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnZZMk4xY25KbGJtTmxjeTV3ZFhOb0tHNWxlSFFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodlkyTjFjbkpsYm1ObGN5NXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKVWFHVWdZM0p2YmlCbGVIQnlaWE56YVc5dUlIQnliMlIxWTJWa0lHNXZJRzlqWTNWeWNtVnVZMlZ6SUdsdUlIUm9aU0J5WlhGMVpYTjBaV1FnY21GdVoyVXVYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHOWpZM1Z5Y21WdVkyVnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhSR2FYSnpkRTlqWTNWeWNtVnVZMlVvWEc0Z0lDQWdZM0p2YmpvZ2MzUnlhVzVuTEZ4dUlDQWdJSE4wWVhKME9pQkVZWFJsTEZ4dUlDQWdJSFJwYldWNmIyNWxPaUJ6ZEhKcGJtZGNiaUFnS1RvZ1JHRjBaU0I3WEc0Z0lDQWdZMjl1YzNRZ2FXNTBaWEoyWVd3Z1BTQkRjbTl1Ulhod2NtVnpjMmx2YmxCaGNuTmxjaTV3WVhKelpTaGpjbTl1TENCN1hHNGdJQ0FnSUNCamRYSnlaVzUwUkdGMFpUb2djM1JoY25Rc1hHNGdJQ0FnSUNCMGVqb2dkR2x0WlhwdmJtVXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnlaWFIxY200Z2FXNTBaWEoyWVd3dWJtVjRkQ2dwTG5SdlJHRjBaU2dwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamNtVmhkR1ZHYjJ4a1pXUlNSR0YwWlV4cGJtVnpLR1JoZEdWek9pQkVZWFJsVzEwc0lIUnBiV1Y2YjI1bE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ1kyOXVjM1FnY0hKbFptbDRJRDBnWUZKRVFWUkZPMVJhU1VROUpIdDBhR2x6TG1WelkyRndaVkJoY21GdFpYUmxjaWgwYVcxbGVtOXVaU2w5T21BN1hHNWNiaUFnSUNCamIyNXpkQ0IyWVd4MVpYTWdQU0JrWVhSbGN5NXRZWEFvS0dSaGRHVXBJRDArSUhSb2FYTXVabTl5YldGMFRHOWpZV3hFWVhSbEtHUmhkR1VzSUhScGJXVjZiMjVsS1NrN1hHNWNiaUFnSUNBdkx5QkxaV1Z3SUdWaFkyZ2diRzluYVdOaGJDQndjbTl3WlhKMGVTQnlaV0Z6YjI1aFlteDVJSE5wZW1Wa0lHSmxabTl5WlNCU1JrTWdiR2x1WlNCbWIyeGthVzVuTGx4dUlDQWdJR052Ym5OMElISmxjM1ZzZERvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ0lDQnNaWFFnWTNWeWNtVnVkQ0E5SUhCeVpXWnBlRHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZG1Gc2RXVWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmpZVzVrYVdSaGRHVWdQVnh1SUNBZ0lDQWdJQ0JqZFhKeVpXNTBJRDA5UFNCd2NtVm1hWGdnUHlCZ0pIdGpkWEp5Wlc1MGZTUjdkbUZzZFdWOVlDQTZJR0FrZTJOMWNuSmxiblI5TENSN2RtRnNkV1Y5WUR0Y2JseHVJQ0FnSUNBZ2FXWWdLRzVsZHlCVVpYaDBSVzVqYjJSbGNpZ3BMbVZ1WTI5a1pTaGpZVzVrYVdSaGRHVXBMbXhsYm1kMGFDQStJRGN3TUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRdWNIVnphQ2hqZFhKeVpXNTBLVHRjYmlBZ0lDQWdJQ0FnWTNWeWNtVnVkQ0E5SUdBa2UzQnlaV1pwZUgwa2UzWmhiSFZsZldBN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCamRYSnlaVzUwSUQwZ1kyRnVaR2xrWVhSbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaGpkWEp5Wlc1MElDRTlQU0J3Y21WbWFYZ3BJSHRjYmlBZ0lDQWdJSEpsYzNWc2RDNXdkWE5vS0dOMWNuSmxiblFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHWnZjbTFoZEZWMFkwUmhkR1VvWkdGMFpUb2dSR0YwWlNrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJR1JoZEdWY2JpQWdJQ0FnSUM1MGIwbFRUMU4wY21sdVp5Z3BYRzRnSUNBZ0lDQXVjbVZ3YkdGalpTZ3ZXeTA2WFM5bkxDQmNJbHdpS1Z4dUlDQWdJQ0FnTG5KbGNHeGhZMlVvTDF4Y0xseGNaSHN6ZlZva0x5d2dYQ0phWENJcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQm1iM0p0WVhSTWIyTmhiRVJoZEdVb1pHRjBaVG9nUkdGMFpTd2dkR2x0WlhwdmJtVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnY0dGeWRITWdQU0J1WlhjZ1NXNTBiQzVFWVhSbFZHbHRaVVp2Y20xaGRDaGNJbVZ1TFVOQlhDSXNJSHRjYmlBZ0lDQWdJSFJwYldWYWIyNWxPaUIwYVcxbGVtOXVaU3hjYmlBZ0lDQWdJSGxsWVhJNklGd2liblZ0WlhKcFkxd2lMRnh1SUNBZ0lDQWdiVzl1ZEdnNklGd2lNaTFrYVdkcGRGd2lMRnh1SUNBZ0lDQWdaR0Y1T2lCY0lqSXRaR2xuYVhSY0lpeGNiaUFnSUNBZ0lHaHZkWEk2SUZ3aU1pMWthV2RwZEZ3aUxGeHVJQ0FnSUNBZ2JXbHVkWFJsT2lCY0lqSXRaR2xuYVhSY0lpeGNiaUFnSUNBZ0lITmxZMjl1WkRvZ1hDSXlMV1JwWjJsMFhDSXNYRzRnSUNBZ0lDQm9iM1Z5UTNsamJHVTZJRndpYURJelhDSXNYRzRnSUNBZ2ZTa3VabTl5YldGMFZHOVFZWEowY3loa1lYUmxLVHRjYmx4dUlDQWdJR052Ym5OMElIWmhiSFZsY3lBOUlFOWlhbVZqZEM1bWNtOXRSVzUwY21sbGN5aGNiaUFnSUNBZ0lIQmhjblJ6WEc0Z0lDQWdJQ0FnSUM1bWFXeDBaWElvS0hCaGNuUXBJRDArSUhCaGNuUXVkSGx3WlNBaFBUMGdYQ0pzYVhSbGNtRnNYQ0lwWEc0Z0lDQWdJQ0FnSUM1dFlYQW9LSEJoY25RcElEMCtJRnR3WVhKMExuUjVjR1VzSUhCaGNuUXVkbUZzZFdWZEtWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnWUNSN2RtRnNkV1Z6TG5sbFlYSjlKSHQyWVd4MVpYTXViVzl1ZEdoOUpIdDJZV3gxWlhNdVpHRjVmV0FnSzF4dUlDQWdJQ0FnWUZRa2UzWmhiSFZsY3k1b2IzVnlmU1I3ZG1Gc2RXVnpMbTFwYm5WMFpYMGtlM1poYkhWbGN5NXpaV052Ym1SOVlGeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHWnZiR1JNYVc1bGN5aHNhVzVsY3pvZ2MzUnlhVzVuVzEwcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUd4cGJtVnpMbVpzWVhSTllYQW9LR3hwYm1VcElEMCtJSFJvYVhNdVptOXNaRXhwYm1Vb2JHbHVaU2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSkdReUExTlRRMUlHTnZiblJsYm5RZ2JHbHVaWE1nYzJodmRXeGtJR0psSUdadmJHUmxaQ0JoZENBM05TQnZZM1JsZEhNdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHWnZiR1JNYVc1bEtHeHBibVU2SUhOMGNtbHVaeWs2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JqYjI1emRDQmxibU52WkdWeUlEMGdibVYzSUZSbGVIUkZibU52WkdWeUtDazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUd4bGRDQnlaVzFoYVc1cGJtY2dQU0JzYVc1bE8xeHVJQ0FnSUd4bGRDQm1hWEp6ZENBOUlIUnlkV1U3WEc1Y2JpQWdJQ0IzYUdsc1pTQW9aVzVqYjJSbGNpNWxibU52WkdVb1ptbHljM1FnUHlCeVpXMWhhVzVwYm1jZ09pQmdJQ1I3Y21WdFlXbHVhVzVuZldBcExteGxibWQwYUNBK0lEYzFLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbVZtYVhnZ1BTQm1hWEp6ZENBL0lGd2lYQ0lnT2lCY0lpQmNJanRjYmlBZ0lDQWdJR3hsZENCamFIVnVheUE5SUZ3aVhDSTdYRzRnSUNBZ0lDQnNaWFFnWTI5dWMzVnRaV1FnUFNBd08xeHVYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR05vWVhKaFkzUmxjaUJ2WmlCeVpXMWhhVzVwYm1jcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyRnVaR2xrWVhSbElEMGdZQ1I3Y0hKbFptbDRmU1I3WTJoMWJtdDlKSHRqYUdGeVlXTjBaWEo5WUR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvWlc1amIyUmxjaTVsYm1OdlpHVW9ZMkZ1Wkdsa1lYUmxLUzVzWlc1bmRHZ2dQaUEzTlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWTJoMWJtc2dLejBnWTJoaGNtRmpkR1Z5TzF4dUlDQWdJQ0FnSUNCamIyNXpkVzFsWkNBclBTQmphR0Z5WVdOMFpYSXViR1Z1WjNSb08xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvSVdOb2RXNXJLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWxWdVlXSnNaU0IwYnlCbWIyeGtJR2xEWVd4bGJtUmhjaUJqYjI1MFpXNTBJR3hwYm1VdVhDSXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0J5WlhOMWJIUXVjSFZ6YUNoZ0pIdHdjbVZtYVhoOUpIdGphSFZ1YTMxZ0tUdGNiaUFnSUNBZ0lISmxiV0ZwYm1sdVp5QTlJSEpsYldGcGJtbHVaeTV6YkdsalpTaGpiMjV6ZFcxbFpDazdYRzRnSUNBZ0lDQm1hWEp6ZENBOUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsYzNWc2RDNXdkWE5vS0dacGNuTjBJRDhnY21WdFlXbHVhVzVuSURvZ1lDQWtlM0psYldGcGJtbHVaMzFnS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR1Z6WTJGd1pWUmxlSFFvZG1Gc2RXVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUhaaGJIVmxYRzRnSUNBZ0lDQXVjbVZ3YkdGalpTZ3ZYRnhjWEM5bkxDQmNJbHhjWEZ4Y1hGeGNYQ0lwWEc0Z0lDQWdJQ0F1Y21Wd2JHRmpaU2d2WEZ4eVAxeGNiaTluTENCY0lseGNYRnh1WENJcFhHNGdJQ0FnSUNBdWNtVndiR0ZqWlNndk95OW5MQ0JjSWx4Y1hGdzdYQ0lwWEc0Z0lDQWdJQ0F1Y21Wd2JHRmpaU2d2TEM5bkxDQmNJbHhjWEZ3c1hDSXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JsYzJOaGNHVlFjbTl3WlhKMGVTaDJZV3gxWlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWNtVndiR0ZqWlNndlcxeGNjbHhjYmwwdlp5d2dYQ0pjSWlrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHVnpZMkZ3WlZCaGNtRnRaWFJsY2loMllXeDFaVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnBaaUFvSVM5ZVcwRXRXbUV0ZWpBdE9WOHJMaTh0WFNza0x5NTBaWE4wS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhnVlc1ellXWmxJR2xEWVd4bGJtUmhjaUJ3WVhKaGJXVjBaWEk2SUNSN2RtRnNkV1Y5WUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQjNaV1ZyWkdGNVZHOUpZM01vWkdGNU9pQnVkVzFpWlhJcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR1JoZVhNZ1BTQmJYQ0pUVlZ3aUxDQmNJazFQWENJc0lGd2lWRlZjSWl3Z1hDSlhSVndpTENCY0lsUklYQ0lzSUZ3aVJsSmNJaXdnWENKVFFWd2lYVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCa1lYbHpXMlJoZVYwN1hHNWNiaUFnSUNCcFppQW9JWEpsYzNWc2RDa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlpoYkdsa1lYUnBiMjVGY25KdmNpaGdTVzUyWVd4cFpDQjNaV1ZyWkdGNU9pQWtlMlJoZVgxZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqY21WaGRHVlZhV1FvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQnlZVzVrYjIwZ1BWeHVJQ0FnSUNBZ1oyeHZZbUZzVkdocGN5NWpjbmx3ZEc4L0xuSmhibVJ2YlZWVlNVUS9MaWdwSUQ4L1hHNGdJQ0FnSUNCZ0pIdEVZWFJsTG01dmR5Z3BmUzBrZTAxaGRHZ3VjbUZ1Wkc5dEtDa3VkRzlUZEhKcGJtY29NVFlwTG5Oc2FXTmxLRElwZldBN1hHNWNiaUFnSUNCeVpYUjFjbTRnWUNSN2NtRnVaRzl0ZlVCallXeGxibVJoY2kxelpYSjJhV05sWUR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kzSmxZWFJsUm1sc1pXNWhiV1VvZEdsMGJHVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYzJGbVpWUnBkR3hsSUQwZ2RHbDBiR1ZjYmlBZ0lDQWdJQzV1YjNKdFlXeHBlbVVvWENKT1JrdEVYQ0lwWEc0Z0lDQWdJQ0F1Y21Wd2JHRmpaU2d2VzE1Y1hIY3VMVjByTDJjc0lGd2lMVndpS1Z4dUlDQWdJQ0FnTG5KbGNHeGhZMlVvTDE0dEszd3RLeVF2Wnl3Z1hDSmNJaWxjYmlBZ0lDQWdJQzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUdBa2UzTmhabVZVYVhSc1pTQjhmQ0JjSW1OaGJHVnVaR0Z5TFhKbGJXbHVaR1Z5WENKOUxtbGpjMkE3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhaaGJHbGtZWFJsVDNCMGFXOXVjeWh2Y0hScGIyNXpPaUJEWVd4bGJtUmhjbEpsYldsdVpHVnlUM0IwYVc5dWN5azZJSFp2YVdRZ2UxeHVJQ0FnSUdsbUlDZ2hiM0IwYVc5dWN5NWpjbTl1UHk1MGNtbHRLQ2twSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWENKQklHTnliMjRnWlhod2NtVnpjMmx2YmlCcGN5QnlaWEYxYVhKbFpDNWNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGdmNIUnBiMjV6TG5ScGRHeGxQeTUwY21sdEtDa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJXWVd4cFpHRjBhVzl1UlhKeWIzSW9YQ0pCSUdOaGJHVnVaR0Z5SUhScGRHeGxJR2x6SUhKbGNYVnBjbVZrTGx3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQnZjSFJwYjI1ekxtUjFjbUYwYVc5dVRXbHVkWFJsY3lBaFBUMGdkVzVrWldacGJtVmtJQ1ltWEc0Z0lDQWdJQ0FvSVU1MWJXSmxjaTVwYzBacGJtbDBaU2h2Y0hScGIyNXpMbVIxY21GMGFXOXVUV2x1ZFhSbGN5a2dmSHhjYmlBZ0lDQWdJQ0FnYjNCMGFXOXVjeTVrZFhKaGRHbHZiazFwYm5WMFpYTWdQRDBnTUNsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWENKa2RYSmhkR2x2YmsxcGJuVjBaWE1nYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2VtVnlieTVjSWlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2IzQjBhVzl1Y3k1aGJHRnliVTFwYm5WMFpYTkNaV1p2Y21VZ0lUMDlJSFZ1WkdWbWFXNWxaQ0FtSmx4dUlDQWdJQ0FnS0NGT2RXMWlaWEl1YVhOSmJuUmxaMlZ5S0c5d2RHbHZibk11WVd4aGNtMU5hVzUxZEdWelFtVm1iM0psS1NCOGZGeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxtRnNZWEp0VFdsdWRYUmxjMEpsWm05eVpTQThJREFwWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVm1Gc2FXUmhkR2x2YmtWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSW1Gc1lYSnRUV2x1ZFhSbGMwSmxabTl5WlNCdGRYTjBJR0psSUdFZ2JtOXVMVzVsWjJGMGFYWmxJR2x1ZEdWblpYSXVYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnYjNCMGFXOXVjeTV0WVhoUFkyTjFjbkpsYm1ObGN5QWhQVDBnZFc1a1pXWnBibVZrSUNZbVhHNGdJQ0FnSUNBb0lVNTFiV0psY2k1cGMwbHVkR1ZuWlhJb2IzQjBhVzl1Y3k1dFlYaFBZMk4xY25KbGJtTmxjeWtnZkh3Z2IzQjBhVzl1Y3k1dFlYaFBZMk4xY25KbGJtTmxjeUE4UFNBd0tWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGWmhiR2xrWVhScGIyNUZjbkp2Y2loY0ltMWhlRTlqWTNWeWNtVnVZMlZ6SUcxMWMzUWdZbVVnWVNCd2IzTnBkR2wyWlNCcGJuUmxaMlZ5TGx3aUtUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSmRmUT09Il19
@@ -44,5 +44,5 @@ exports.CalendarEnvironment = logging_1.LoggedEnvironment.accumulate({
44
44
  },
45
45
  },
46
46
  });
47
- //# sourceMappingURL=environment.js.map
48
- //# sourceMappingURL=environment.cjs.map
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2FsZW5kYXIvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBMEJ0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztJQUM5RCxRQUFRLEVBQUU7UUFDUixjQUFjLEVBQUU7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1YsVUFBVSxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxTQUE4QjtTQUN4QztLQUNGO0NBQzBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvY2FsZW5kYXIvZW52aXJvbm1lbnRcbiAqIEBzdW1tYXJ5IEVudmlyb25tZW50IGNvbnRyYWN0IGFuZCBhY2N1bXVsYXRlZCBlbnZpcm9ubWVudCBmb3IgdGhlIGNhbGVuZGFyIGludGVncmF0aW9uIHNlcnZpY2VzLlxuICogQGRlc2NyaXB0aW9uIERlY2xhcmVzIHRoZSBgQ2FsZW5kYXJFbnZpcm9ubWVudFNoYXBlYCBjb25zdW1lZCBieSB0aGUgR29vZ2xlXG4gKiBDYWxlbmRhciBzZXJ2aWNlJ3MgYGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpYCBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlXG4gKiBgQ2FsZW5kYXJFbnZpcm9ubWVudGAgc2luZ2xldG9uIGNyZWF0ZWQgdmlhIGBMb2dnZWRFbnZpcm9ubWVudC5hY2N1bXVsYXRlYC5cbiAqIFNlcnZpY2VzIHJlYWQgdGhlaXIgY3JlZGVudGlhbHMgYW5kIGRlZmF1bHRzIGZyb20gdGhlIG1hdGNoaW5nXG4gKiBgY2FsZW5kYXIuPHByb3ZpZGVyPmAgc2xpY2UsIHVzaW5nIHRoZSBgZW52U3RyaW5nYC9gZW52TnVtYmVyYCBoZWxwZXJzIGZyb21cbiAqIGBzaGFyZWQvZW52aXJvbm1lbnRWYWx1ZWAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy4gVGhlIG1hdGNoaW5nIHB1YmxpY1xuICogc3VicGF0aCBleHBvcnQgaXMgYEBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvY2FsZW5kYXIvZ29vZ2xlLWNhbGVuZGFyYC5cbiAqL1xuaW1wb3J0IHsgTG9nZ2VkRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRW52aXJvbm1lbnQgc2hhcGUgZm9yIHRoZSBjYWxlbmRhciBpbnRlZ3JhdGlvbiBzZXJ2aWNlc1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgYGNhbGVuZGFyYCByb290IHdpdGggdGhlIGBnb29nbGVDYWxlbmRhcmAgc2xpY2UuIFRoZVxuICogc2xpY2UgY2FycmllcyB0aGUgT0F1dGggYHRva2VuYCBhbmQvb3IgYGFwaUtleWAsIHRoZSBkZWZhdWx0IGBjYWxlbmRhcklkYCxcbiAqIGFuZCBhbiBvcHRpb25hbCBgYmFzZVVybGAgb3ZlcnJpZGUgYW5kIGB0aW1lb3V0YC4gRmllbGRzIGFyZSB0eXBlZCBhc1xuICogcmVxdWlyZWQgaGVyZSBzbyBgTG9nZ2VkRW52aXJvbm1lbnQuYWNjdW11bGF0ZWAgcmVnaXN0ZXJzIHRoZW07IGFic2VudCB2YWx1ZXNcbiAqIHJlc29sdmUgdG8gcHJveHkgcGxhY2Vob2xkZXJzIGF0IHJ1bnRpbWUgYW5kIG11c3QgcGFzcyB0aHJvdWdoXG4gKiBgZW52U3RyaW5nYC9gZW52TnVtYmVyYC4gVmFsdWVzIGFyZSBjcmVkZW50aWFsIHJlZmVyZW5jZXMgc3VwcGxpZWQgYnkgdGhlXG4gKiBlbnZpcm9ubWVudCwgbmV2ZXIgbGl0ZXJhbHMgZW1iZWRkZWQgaW4gc291cmNlLlxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvY2FsZW5kYXIvZW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhckVudmlyb25tZW50U2hhcGUge1xuICBjYWxlbmRhcjoge1xuICAgIC8qKiBHb29nbGUgQ2FsZW5kYXIgT0F1dGggdG9rZW4vQVBJIGtleSBhbmQgZGVmYXVsdCBjYWxlbmRhciAoYGNhbGVuZGFyL2dvb2dsZS1jYWxlbmRhcmApLiAqL1xuICAgIGdvb2dsZUNhbGVuZGFyOiB7XG4gICAgICB0b2tlbjogc3RyaW5nO1xuICAgICAgYXBpS2V5OiBzdHJpbmc7XG4gICAgICBjYWxlbmRhcklkOiBzdHJpbmc7XG4gICAgICBiYXNlVXJsOiBzdHJpbmc7XG4gICAgICB0aW1lb3V0PzogbnVtYmVyO1xuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFjY3VtdWxhdGVkIGNhbGVuZGFyIGVudmlyb25tZW50IHNpbmdsZXRvblxuICogQHN1bW1hcnkgVGhlIGBMb2dnZWRFbnZpcm9ubWVudC5hY2N1bXVsYXRlYC1yZWdpc3RlcmVkIGluc3RhbmNlIGJhY2tpbmcgdGhlXG4gKiBgQ2FsZW5kYXJFbnZpcm9ubWVudFNoYXBlYCBjb250cmFjdC4gVGhlIEdvb2dsZSBDYWxlbmRhciBzZXJ2aWNlIHJlYWRzXG4gKiBgQ2FsZW5kYXJFbnZpcm9ubWVudC5jYWxlbmRhci5nb29nbGVDYWxlbmRhcmAgaW5zaWRlXG4gKiBgY29uZmlnRnJvbUVudmlyb25tZW50KClgIGFuZCB0cmFuc2xhdGVzIGl0IGludG8gaXRzXG4gKiBgSHR0cEFwaVNlcnZpY2VDb25maWdgLWRlcml2ZWQgY29uZmlnLiBDcmVkZW50aWFscyBjb21lIGZyb20gZW52aXJvbm1lbnRcbiAqIHZhcmlhYmxlczsgZm9yIGFzLWdyYXBoIG5vZGUgdXNhZ2UgdGhvc2UgYXJlIHByb3ZpZGVkIGFzXG4gKiBgR1JBUEhfQ1JFREVOVElBTF8qYCB2YWx1ZXMgKHBsYWNlaG9sZGVycyBpbiB0aGlzIGV4YW1wbGUpLlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBHb29nbGVDYWxlbmRhclNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9jYWxlbmRhci9nb29nbGUtY2FsZW5kYXJcIjtcbiAqXG4gKiAvLyB3aXRoIGNhbGVuZGFyLmdvb2dsZUNhbGVuZGFyLnRva2VuIC8gY2FsZW5kYXJJZCBjb25maWd1cmVkIGluIHRoZSBlbnZpcm9ubWVudFxuICogY29uc3QgY2FsZW5kYXIgPSBuZXcgR29vZ2xlQ2FsZW5kYXJTZXJ2aWNlKCk7XG4gKiBhd2FpdCBjYWxlbmRhci5pbml0aWFsaXplKCk7XG4gKiBgYGBcbiAqIEBjb25zdGFudCB7TG9nZ2VkRW52aXJvbm1lbnR9IENhbGVuZGFyRW52aXJvbm1lbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2NhbGVuZGFyL2Vudmlyb25tZW50XG4gKi9cbmV4cG9ydCBjb25zdCBDYWxlbmRhckVudmlyb25tZW50ID0gTG9nZ2VkRW52aXJvbm1lbnQuYWNjdW11bGF0ZSh7XG4gIGNhbGVuZGFyOiB7XG4gICAgZ29vZ2xlQ2FsZW5kYXI6IHtcbiAgICAgIHRva2VuOiBcIlwiLFxuICAgICAgYXBpS2V5OiBcIlwiLFxuICAgICAgY2FsZW5kYXJJZDogXCJcIixcbiAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICB0aW1lb3V0OiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBudW1iZXIsXG4gICAgfSxcbiAgfSxcbn0gYXMgQ2FsZW5kYXJFbnZpcm9ubWVudFNoYXBlKTtcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7OztHQVVHO0FBQ0gsK0NBQXNEO0FBQ3REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRywyQkFBaUIsQ0FBQyxVQUFVLENBQUM7SUFDNUQsUUFBUSxFQUFFO1FBQ04sY0FBYyxFQUFFO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtZQUNWLFVBQVUsRUFBRSxFQUFFO1lBQ2QsT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsU0FBUztTQUNyQjtLQUNKO0NBQ0osQ0FBQyxDQUFDO0FBQ0gsMC9JQUEwL0kiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2NhbGVuZGFyL2Vudmlyb25tZW50XG4gKiBAc3VtbWFyeSBFbnZpcm9ubWVudCBjb250cmFjdCBhbmQgYWNjdW11bGF0ZWQgZW52aXJvbm1lbnQgZm9yIHRoZSBjYWxlbmRhciBpbnRlZ3JhdGlvbiBzZXJ2aWNlcy5cbiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJlcyB0aGUgYENhbGVuZGFyRW52aXJvbm1lbnRTaGFwZWAgY29uc3VtZWQgYnkgdGhlIEdvb2dsZVxuICogQ2FsZW5kYXIgc2VydmljZSdzIGBjb25maWdGcm9tRW52aXJvbm1lbnQoKWAgaW1wbGVtZW50YXRpb24gYW5kIHRoZVxuICogYENhbGVuZGFyRW52aXJvbm1lbnRgIHNpbmdsZXRvbiBjcmVhdGVkIHZpYSBgTG9nZ2VkRW52aXJvbm1lbnQuYWNjdW11bGF0ZWAuXG4gKiBTZXJ2aWNlcyByZWFkIHRoZWlyIGNyZWRlbnRpYWxzIGFuZCBkZWZhdWx0cyBmcm9tIHRoZSBtYXRjaGluZ1xuICogYGNhbGVuZGFyLjxwcm92aWRlcj5gIHNsaWNlLCB1c2luZyB0aGUgYGVudlN0cmluZ2AvYGVudk51bWJlcmAgaGVscGVycyBmcm9tXG4gKiBgc2hhcmVkL2Vudmlyb25tZW50VmFsdWVgIHRvIHJlamVjdCB1bnNldC1sZWFmIHByb3hpZXMuIFRoZSBtYXRjaGluZyBwdWJsaWNcbiAqIHN1YnBhdGggZXhwb3J0IGlzIGBAZGVjYWYtdHMvaW50ZWdyYXRpb25zL2NhbGVuZGFyL2dvb2dsZS1jYWxlbmRhcmAuXG4gKi9cbmltcG9ydCB7IExvZ2dlZEVudmlyb25tZW50IH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBY2N1bXVsYXRlZCBjYWxlbmRhciBlbnZpcm9ubWVudCBzaW5nbGV0b25cbiAqIEBzdW1tYXJ5IFRoZSBgTG9nZ2VkRW52aXJvbm1lbnQuYWNjdW11bGF0ZWAtcmVnaXN0ZXJlZCBpbnN0YW5jZSBiYWNraW5nIHRoZVxuICogYENhbGVuZGFyRW52aXJvbm1lbnRTaGFwZWAgY29udHJhY3QuIFRoZSBHb29nbGUgQ2FsZW5kYXIgc2VydmljZSByZWFkc1xuICogYENhbGVuZGFyRW52aXJvbm1lbnQuY2FsZW5kYXIuZ29vZ2xlQ2FsZW5kYXJgIGluc2lkZVxuICogYGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpYCBhbmQgdHJhbnNsYXRlcyBpdCBpbnRvIGl0c1xuICogYEh0dHBBcGlTZXJ2aWNlQ29uZmlnYC1kZXJpdmVkIGNvbmZpZy4gQ3JlZGVudGlhbHMgY29tZSBmcm9tIGVudmlyb25tZW50XG4gKiB2YXJpYWJsZXM7IGZvciBhcy1ncmFwaCBub2RlIHVzYWdlIHRob3NlIGFyZSBwcm92aWRlZCBhc1xuICogYEdSQVBIX0NSRURFTlRJQUxfKmAgdmFsdWVzIChwbGFjZWhvbGRlcnMgaW4gdGhpcyBleGFtcGxlKS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgR29vZ2xlQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvY2FsZW5kYXIvZ29vZ2xlLWNhbGVuZGFyXCI7XG4gKlxuICogLy8gd2l0aCBjYWxlbmRhci5nb29nbGVDYWxlbmRhci50b2tlbiAvIGNhbGVuZGFySWQgY29uZmlndXJlZCBpbiB0aGUgZW52aXJvbm1lbnRcbiAqIGNvbnN0IGNhbGVuZGFyID0gbmV3IEdvb2dsZUNhbGVuZGFyU2VydmljZSgpO1xuICogYXdhaXQgY2FsZW5kYXIuaW5pdGlhbGl6ZSgpO1xuICogYGBgXG4gKiBAY29uc3RhbnQge0xvZ2dlZEVudmlyb25tZW50fSBDYWxlbmRhckVudmlyb25tZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9jYWxlbmRhci9lbnZpcm9ubWVudFxuICovXG5leHBvcnQgY29uc3QgQ2FsZW5kYXJFbnZpcm9ubWVudCA9IExvZ2dlZEVudmlyb25tZW50LmFjY3VtdWxhdGUoe1xuICAgIGNhbGVuZGFyOiB7XG4gICAgICAgIGdvb2dsZUNhbGVuZGFyOiB7XG4gICAgICAgICAgICB0b2tlbjogXCJcIixcbiAgICAgICAgICAgIGFwaUtleTogXCJcIixcbiAgICAgICAgICAgIGNhbGVuZGFySWQ6IFwiXCIsXG4gICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgdGltZW91dDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgIH0sXG59KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpXNTJhWEp2Ym0xbGJuUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZZMkZzWlc1a1lYSXZaVzUyYVhKdmJtMWxiblF1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3T3pzN096czdSMEZWUnp0QlFVTklMRTlCUVU4c1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4TlFVRk5MRzFDUVVGdFFpeERRVUZETzBGQk1FSjBSRHM3T3pzN096czdPenM3T3pzN096czdPenRIUVcxQ1J6dEJRVU5JTEUxQlFVMHNRMEZCUXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEdsQ1FVRnBRaXhEUVVGRExGVkJRVlVzUTBGQlF6dEpRVU01UkN4UlFVRlJMRVZCUVVVN1VVRkRVaXhqUVVGakxFVkJRVVU3V1VGRFpDeExRVUZMTEVWQlFVVXNSVUZCUlR0WlFVTlVMRTFCUVUwc1JVRkJSU3hGUVVGRk8xbEJRMVlzVlVGQlZTeEZRVUZGTEVWQlFVVTdXVUZEWkN4UFFVRlBMRVZCUVVVc1JVRkJSVHRaUVVOWUxFOUJRVThzUlVGQlJTeFRRVUU0UWp0VFFVTjRRenRMUVVOR08wTkJRekJDTEVOQlFVTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZZMkZzWlc1a1lYSXZaVzUyYVhKdmJtMWxiblJjYmlBcUlFQnpkVzF0WVhKNUlFVnVkbWx5YjI1dFpXNTBJR052Ym5SeVlXTjBJR0Z1WkNCaFkyTjFiWFZzWVhSbFpDQmxiblpwY205dWJXVnVkQ0JtYjNJZ2RHaGxJR05oYkdWdVpHRnlJR2x1ZEdWbmNtRjBhVzl1SUhObGNuWnBZMlZ6TGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbFkyeGhjbVZ6SUhSb1pTQmdRMkZzWlc1a1lYSkZiblpwY205dWJXVnVkRk5vWVhCbFlDQmpiMjV6ZFcxbFpDQmllU0IwYUdVZ1IyOXZaMnhsWEc0Z0tpQkRZV3hsYm1SaGNpQnpaWEoyYVdObEozTWdZR052Ym1acFowWnliMjFGYm5acGNtOXViV1Z1ZENncFlDQnBiWEJzWlcxbGJuUmhkR2x2YmlCaGJtUWdkR2hsWEc0Z0tpQmdRMkZzWlc1a1lYSkZiblpwY205dWJXVnVkR0FnYzJsdVoyeGxkRzl1SUdOeVpXRjBaV1FnZG1saElHQk1iMmRuWldSRmJuWnBjbTl1YldWdWRDNWhZMk4xYlhWc1lYUmxZQzVjYmlBcUlGTmxjblpwWTJWeklISmxZV1FnZEdobGFYSWdZM0psWkdWdWRHbGhiSE1nWVc1a0lHUmxabUYxYkhSeklHWnliMjBnZEdobElHMWhkR05vYVc1blhHNGdLaUJnWTJGc1pXNWtZWEl1UEhCeWIzWnBaR1Z5UG1BZ2MyeHBZMlVzSUhWemFXNW5JSFJvWlNCZ1pXNTJVM1J5YVc1bllDOWdaVzUyVG5WdFltVnlZQ0JvWld4d1pYSnpJR1p5YjIxY2JpQXFJR0J6YUdGeVpXUXZaVzUyYVhKdmJtMWxiblJXWVd4MVpXQWdkRzhnY21WcVpXTjBJSFZ1YzJWMExXeGxZV1lnY0hKdmVHbGxjeTRnVkdobElHMWhkR05vYVc1bklIQjFZbXhwWTF4dUlDb2djM1ZpY0dGMGFDQmxlSEJ2Y25RZ2FYTWdZRUJrWldOaFppMTBjeTlwYm5SbFozSmhkR2x2Ym5NdlkyRnNaVzVrWVhJdloyOXZaMnhsTFdOaGJHVnVaR0Z5WUM1Y2JpQXFMMXh1YVcxd2IzSjBJSHNnVEc5bloyVmtSVzUyYVhKdmJtMWxiblFnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlc1MmFYSnZibTFsYm5RZ2MyaGhjR1VnWm05eUlIUm9aU0JqWVd4bGJtUmhjaUJwYm5SbFozSmhkR2x2YmlCelpYSjJhV05sYzF4dUlDb2dRSE4xYlcxaGNua2dSR1ZtYVc1bGN5QjBhR1VnWUdOaGJHVnVaR0Z5WUNCeWIyOTBJSGRwZEdnZ2RHaGxJR0JuYjI5bmJHVkRZV3hsYm1SaGNtQWdjMnhwWTJVdUlGUm9aVnh1SUNvZ2MyeHBZMlVnWTJGeWNtbGxjeUIwYUdVZ1QwRjFkR2dnWUhSdmEyVnVZQ0JoYm1RdmIzSWdZR0Z3YVV0bGVXQXNJSFJvWlNCa1pXWmhkV3gwSUdCallXeGxibVJoY2tsa1lDeGNiaUFxSUdGdVpDQmhiaUJ2Y0hScGIyNWhiQ0JnWW1GelpWVnliR0FnYjNabGNuSnBaR1VnWVc1a0lHQjBhVzFsYjNWMFlDNGdSbWxsYkdSeklHRnlaU0IwZVhCbFpDQmhjMXh1SUNvZ2NtVnhkV2x5WldRZ2FHVnlaU0J6YnlCZ1RHOW5aMlZrUlc1MmFYSnZibTFsYm5RdVlXTmpkVzExYkdGMFpXQWdjbVZuYVhOMFpYSnpJSFJvWlcwN0lHRmljMlZ1ZENCMllXeDFaWE5jYmlBcUlISmxjMjlzZG1VZ2RHOGdjSEp2ZUhrZ2NHeGhZMlZvYjJ4a1pYSnpJR0YwSUhKMWJuUnBiV1VnWVc1a0lHMTFjM1FnY0dGemN5QjBhSEp2ZFdkb1hHNGdLaUJnWlc1MlUzUnlhVzVuWUM5Z1pXNTJUblZ0WW1WeVlDNGdWbUZzZFdWeklHRnlaU0JqY21Wa1pXNTBhV0ZzSUhKbFptVnlaVzVqWlhNZ2MzVndjR3hwWldRZ1lua2dkR2hsWEc0Z0tpQmxiblpwY205dWJXVnVkQ3dnYm1WMlpYSWdiR2wwWlhKaGJITWdaVzFpWldSa1pXUWdhVzRnYzI5MWNtTmxMbHh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZZMkZzWlc1a1lYSXZaVzUyYVhKdmJtMWxiblJjYmlBcUwxeHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkRZV3hsYm1SaGNrVnVkbWx5YjI1dFpXNTBVMmhoY0dVZ2UxeHVJQ0JqWVd4bGJtUmhjam9nZTF4dUlDQWdJQzhxS2lCSGIyOW5iR1VnUTJGc1pXNWtZWElnVDBGMWRHZ2dkRzlyWlc0dlFWQkpJR3RsZVNCaGJtUWdaR1ZtWVhWc2RDQmpZV3hsYm1SaGNpQW9ZR05oYkdWdVpHRnlMMmR2YjJkc1pTMWpZV3hsYm1SaGNtQXBMaUFxTDF4dUlDQWdJR2R2YjJkc1pVTmhiR1Z1WkdGeU9pQjdYRzRnSUNBZ0lDQjBiMnRsYmpvZ2MzUnlhVzVuTzF4dUlDQWdJQ0FnWVhCcFMyVjVPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQmpZV3hsYm1SaGNrbGtPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQmlZWE5sVlhKc09pQnpkSEpwYm1jN1hHNGdJQ0FnSUNCMGFXMWxiM1YwUHpvZ2JuVnRZbVZ5TzF4dUlDQWdJSDA3WEc0Z0lIMDdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRUZqWTNWdGRXeGhkR1ZrSUdOaGJHVnVaR0Z5SUdWdWRtbHliMjV0Wlc1MElITnBibWRzWlhSdmJseHVJQ29nUUhOMWJXMWhjbmtnVkdobElHQk1iMmRuWldSRmJuWnBjbTl1YldWdWRDNWhZMk4xYlhWc1lYUmxZQzF5WldkcGMzUmxjbVZrSUdsdWMzUmhibU5sSUdKaFkydHBibWNnZEdobFhHNGdLaUJnUTJGc1pXNWtZWEpGYm5acGNtOXViV1Z1ZEZOb1lYQmxZQ0JqYjI1MGNtRmpkQzRnVkdobElFZHZiMmRzWlNCRFlXeGxibVJoY2lCelpYSjJhV05sSUhKbFlXUnpYRzRnS2lCZ1EyRnNaVzVrWVhKRmJuWnBjbTl1YldWdWRDNWpZV3hsYm1SaGNpNW5iMjluYkdWRFlXeGxibVJoY21BZ2FXNXphV1JsWEc0Z0tpQmdZMjl1Wm1sblJuSnZiVVZ1ZG1seWIyNXRaVzUwS0NsZ0lHRnVaQ0IwY21GdWMyeGhkR1Z6SUdsMElHbHVkRzhnYVhSelhHNGdLaUJnU0hSMGNFRndhVk5sY25acFkyVkRiMjVtYVdkZ0xXUmxjbWwyWldRZ1kyOXVabWxuTGlCRGNtVmtaVzUwYVdGc2N5QmpiMjFsSUdaeWIyMGdaVzUyYVhKdmJtMWxiblJjYmlBcUlIWmhjbWxoWW14bGN6c2dabTl5SUdGekxXZHlZWEJvSUc1dlpHVWdkWE5oWjJVZ2RHaHZjMlVnWVhKbElIQnliM1pwWkdWa0lHRnpYRzRnS2lCZ1IxSkJVRWhmUTFKRlJFVk9WRWxCVEY4cVlDQjJZV3gxWlhNZ0tIQnNZV05sYUc5c1pHVnljeUJwYmlCMGFHbHpJR1Y0WVcxd2JHVXBMbHh1SUNvZ1FHVjRZVzF3YkdWY2JpQXFJR0JnWUhSelhHNGdLaUJwYlhCdmNuUWdleUJIYjI5bmJHVkRZV3hsYm1SaGNsTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwybHVkR1ZuY21GMGFXOXVjeTlqWVd4bGJtUmhjaTluYjI5bmJHVXRZMkZzWlc1a1lYSmNJanRjYmlBcVhHNGdLaUF2THlCM2FYUm9JR05oYkdWdVpHRnlMbWR2YjJkc1pVTmhiR1Z1WkdGeUxuUnZhMlZ1SUM4Z1kyRnNaVzVrWVhKSlpDQmpiMjVtYVdkMWNtVmtJR2x1SUhSb1pTQmxiblpwY205dWJXVnVkRnh1SUNvZ1kyOXVjM1FnWTJGc1pXNWtZWElnUFNCdVpYY2dSMjl2WjJ4bFEyRnNaVzVrWVhKVFpYSjJhV05sS0NrN1hHNGdLaUJoZDJGcGRDQmpZV3hsYm1SaGNpNXBibWwwYVdGc2FYcGxLQ2s3WEc0Z0tpQmdZR0JjYmlBcUlFQmpiMjV6ZEdGdWRDQjdURzluWjJWa1JXNTJhWEp2Ym0xbGJuUjlJRU5oYkdWdVpHRnlSVzUyYVhKdmJtMWxiblJjYmlBcUlFQnRaVzFpWlhKUFppQnRiMlIxYkdVNmFXNTBaV2R5WVhScGIyNXpMMk5oYkdWdVpHRnlMMlZ1ZG1seWIyNXRaVzUwWEc0Z0tpOWNibVY0Y0c5eWRDQmpiMjV6ZENCRFlXeGxibVJoY2tWdWRtbHliMjV0Wlc1MElEMGdURzluWjJWa1JXNTJhWEp2Ym0xbGJuUXVZV05qZFcxMWJHRjBaU2g3WEc0Z0lHTmhiR1Z1WkdGeU9pQjdYRzRnSUNBZ1oyOXZaMnhsUTJGc1pXNWtZWEk2SUh0Y2JpQWdJQ0FnSUhSdmEyVnVPaUJjSWx3aUxGeHVJQ0FnSUNBZ1lYQnBTMlY1T2lCY0lsd2lMRnh1SUNBZ0lDQWdZMkZzWlc1a1lYSkpaRG9nWENKY0lpeGNiaUFnSUNBZ0lHSmhjMlZWY213NklGd2lYQ0lzWEc0Z0lDQWdJQ0IwYVcxbGIzVjBPaUIxYm1SbFptbHVaV1FnWVhNZ2RXNXJibTkzYmlCaGN5QnVkVzFpWlhJc1hHNGdJQ0FnZlN4Y2JpQWdmU3hjYm4wZ1lYTWdRMkZzWlc1a1lYSkZiblpwY205dWJXVnVkRk5vWVhCbEtUdGNiaUpkZlE9PSJdfQ==