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