@sinequa/assistant 3.9.8 → 3.10.0

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 (111) hide show
  1. package/chat/chat-message/chat-message.component.d.ts +2 -4
  2. package/chat/chat.component.d.ts +4 -3
  3. package/chat/chat.service.d.ts +16 -1
  4. package/chat/custom-elements/components/code-block.component.d.ts +11 -0
  5. package/chat/custom-elements/components/document-reference.component.d.ts +13 -0
  6. package/chat/custom-elements/components/i18n/de.json +5 -0
  7. package/chat/custom-elements/components/i18n/en.json +5 -0
  8. package/chat/custom-elements/components/i18n/fr.json +5 -0
  9. package/chat/custom-elements/components/image-reference.component.d.ts +14 -0
  10. package/chat/custom-elements/components/page-reference.component.d.ts +14 -0
  11. package/chat/custom-elements/components/table-tools.component.d.ts +11 -0
  12. package/chat/custom-elements/custom-elements.config.d.ts +2 -0
  13. package/chat/{services → custom-elements}/custom-elements.service.d.ts +1 -0
  14. package/chat/documents-upload/documents-upload.service.d.ts +2 -2
  15. package/chat/fetch-patcher/app-injector.d.ts +9 -0
  16. package/chat/fetch-patcher/fetch-patcher.d.ts +31 -0
  17. package/chat/fetch-patcher/global-error-handler.service.d.ts +36 -0
  18. package/chat/fetch-patcher/handle-unauthorized-logic.d.ts +13 -0
  19. package/chat/markdown-it/markdown-it.config.d.ts +4 -0
  20. package/chat/markdown-it/plugins/document-reference.plugin.d.ts +8 -0
  21. package/chat/markdown-it/plugins/image-reference.plugin.d.ts +9 -0
  22. package/chat/markdown-it/plugins/page-reference.plugin.d.ts +9 -0
  23. package/chat/markdown-it/plugins/table-tools.plugin.d.ts +2 -0
  24. package/chat/public-api.d.ts +21 -2
  25. package/chat/{chat-reference → references/chat-reference}/chat-reference.component.d.ts +1 -1
  26. package/chat/references/chat-reference-image/chat-reference-image.component.d.ts +20 -0
  27. package/chat/references/chat-reference-page/chat-reference-page.component.d.ts +20 -0
  28. package/chat/references/i18n/de.json +4 -4
  29. package/chat/references/i18n/en.json +1 -1
  30. package/chat/references/i18n/fr.json +1 -1
  31. package/chat/saved-chats/i18n/de.json +2 -1
  32. package/chat/saved-chats/i18n/en.json +2 -1
  33. package/chat/saved-chats/i18n/fr.json +2 -1
  34. package/chat/saved-chats/saved-chats.component.d.ts +4 -0
  35. package/chat/saved-chats/saved-chats.service.d.ts +2 -2
  36. package/chat/services/assistant-metadata.service.d.ts +5 -1
  37. package/chat/services/signalR.web.service.d.ts +0 -11
  38. package/chat/smart-renderer/smart-renderer.d.ts +2 -0
  39. package/chat/token-progress-bar/i18n/en.json +1 -1
  40. package/chat/types/message-reference.types.d.ts +3 -0
  41. package/chat/types.d.ts +55 -35
  42. package/chat/version.d.ts +1 -0
  43. package/esm2022/chat/chat-message/chat-message.component.mjs +15 -12
  44. package/esm2022/chat/chat-settings-v3/chat-settings-v3.component.mjs +22 -19
  45. package/esm2022/chat/chat.component.mjs +39 -26
  46. package/esm2022/chat/chat.service.mjs +39 -6
  47. package/esm2022/chat/custom-elements/components/code-block.component.mjs +97 -0
  48. package/esm2022/chat/custom-elements/components/document-reference.component.mjs +85 -0
  49. package/esm2022/chat/custom-elements/components/image-reference.component.mjs +79 -0
  50. package/esm2022/chat/custom-elements/components/page-reference.component.mjs +79 -0
  51. package/esm2022/chat/custom-elements/components/table-tools.component.mjs +111 -0
  52. package/esm2022/chat/custom-elements/custom-elements.config.mjs +6 -0
  53. package/esm2022/chat/custom-elements/custom-elements.service.mjs +35 -0
  54. package/esm2022/chat/debug-message/debug-message.service.mjs +3 -3
  55. package/esm2022/chat/documents-upload/document-list/document-list.component.mjs +3 -3
  56. package/esm2022/chat/documents-upload/document-overview/document-overview.component.mjs +5 -5
  57. package/esm2022/chat/documents-upload/documents-upload.service.mjs +11 -9
  58. package/esm2022/chat/fetch-patcher/app-injector.mjs +19 -0
  59. package/esm2022/chat/fetch-patcher/fetch-patcher.mjs +62 -0
  60. package/esm2022/chat/fetch-patcher/global-error-handler.service.mjs +92 -0
  61. package/esm2022/chat/fetch-patcher/handle-unauthorized-logic.mjs +19 -0
  62. package/esm2022/chat/markdown-it/markdown-it.config.mjs +6 -0
  63. package/esm2022/chat/markdown-it/plugins/code-block.plugin.mjs +14 -0
  64. package/esm2022/chat/markdown-it/plugins/document-reference.plugin.mjs +66 -0
  65. package/esm2022/chat/markdown-it/plugins/image-reference.plugin.mjs +67 -0
  66. package/esm2022/chat/markdown-it/plugins/link.plugin.mjs +15 -0
  67. package/esm2022/chat/markdown-it/plugins/page-reference.plugin.mjs +67 -0
  68. package/esm2022/chat/markdown-it/plugins/table-tools.plugin.mjs +12 -0
  69. package/esm2022/chat/public-api.mjs +23 -3
  70. package/esm2022/chat/references/chat-reference/chat-reference.component.mjs +72 -0
  71. package/esm2022/chat/references/chat-reference-image/chat-reference-image.component.mjs +42 -0
  72. package/esm2022/chat/references/chat-reference-page/chat-reference-page.component.mjs +42 -0
  73. package/esm2022/chat/saved-chats/saved-chats.component.mjs +26 -6
  74. package/esm2022/chat/saved-chats/saved-chats.service.mjs +14 -10
  75. package/esm2022/chat/services/app.service.mjs +7 -2
  76. package/esm2022/chat/services/assistant-metadata.service.mjs +40 -9
  77. package/esm2022/chat/services/assistant-ws-frames.service.mjs +7 -4
  78. package/esm2022/chat/services/signalR-connection.service.mjs +3 -6
  79. package/esm2022/chat/services/signalR.web.service.mjs +3 -13
  80. package/esm2022/chat/services/user-settings.service.mjs +6 -3
  81. package/esm2022/chat/smart-renderer/smart-renderer.mjs +19 -18
  82. package/esm2022/chat/types/message-reference.types.mjs +1 -1
  83. package/esm2022/chat/types.mjs +10 -8
  84. package/esm2022/chat/utils/utils.service.mjs +11 -11
  85. package/esm2022/chat/version.mjs +3 -0
  86. package/fesm2022/sinequa-assistant-chat.mjs +1662 -1382
  87. package/fesm2022/sinequa-assistant-chat.mjs.map +1 -1
  88. package/package.json +6 -6
  89. package/chat/chat-reference/i18n/de.json +0 -4
  90. package/chat/chat-reference/i18n/en.json +0 -4
  91. package/chat/chat-reference/i18n/fr.json +0 -4
  92. package/chat/directives/copy-to-clipboard.directive.d.ts +0 -8
  93. package/chat/markdown-it-plugins/image-reference.plugin.d.ts +0 -3
  94. package/chat/markdown-it-plugins/page-reference.plugin.d.ts +0 -3
  95. package/chat/markdown-it-plugins/reference.plugin.d.ts +0 -7
  96. package/chat/references/inline-image-reference.d.ts +0 -21
  97. package/chat/references/inline-page-reference.d.ts +0 -21
  98. package/chat/references/references.component.d.ts +0 -43
  99. package/esm2022/chat/chat-reference/chat-reference.component.mjs +0 -74
  100. package/esm2022/chat/directives/copy-to-clipboard.directive.mjs +0 -68
  101. package/esm2022/chat/markdown-it-plugins/code-block.plugin.mjs +0 -14
  102. package/esm2022/chat/markdown-it-plugins/image-reference.plugin.mjs +0 -58
  103. package/esm2022/chat/markdown-it-plugins/link.plugin.mjs +0 -15
  104. package/esm2022/chat/markdown-it-plugins/page-reference.plugin.mjs +0 -60
  105. package/esm2022/chat/markdown-it-plugins/reference.plugin.mjs +0 -68
  106. package/esm2022/chat/references/inline-image-reference.mjs +0 -110
  107. package/esm2022/chat/references/inline-page-reference.mjs +0 -110
  108. package/esm2022/chat/references/references.component.mjs +0 -290
  109. package/esm2022/chat/services/custom-elements.service.mjs +0 -43
  110. /package/chat/{markdown-it-plugins → markdown-it/plugins}/code-block.plugin.d.ts +0 -0
  111. /package/chat/{markdown-it-plugins → markdown-it/plugins}/link.plugin.d.ts +0 -0
@@ -26,9 +26,9 @@ export const connectionSettingsSchema = z
26
26
  const serviceSettingsSchema = z.object({
27
27
  service_id: z.string(),
28
28
  model_id: z.string(),
29
- temperature: z.number(),
30
- top_p: z.number(),
31
- max_tokens: z.number(),
29
+ temperature: z.number().optional(),
30
+ top_p: z.number().optional(),
31
+ max_tokens: z.number().optional(),
32
32
  });
33
33
  // Define the Zod representation for the additionalServiceSettings object
34
34
  const additionalServiceSettingsSchema = z.object({});
@@ -54,9 +54,9 @@ const defaultValuesSchema = z.object({
54
54
  name: z.string(),
55
55
  enabled: z.boolean(),
56
56
  })),
57
- temperature: z.number(),
58
- top_p: z.number(),
59
- max_tokens: z.number(),
57
+ temperature: z.number().optional(),
58
+ top_p: z.number().optional(),
59
+ max_tokens: z.number().optional(),
60
60
  debug: z.boolean(),
61
61
  systemPrompt: z.string(),
62
62
  userPrompt: z.string(),
@@ -98,6 +98,7 @@ const modeSettingsSchema = z.object({
98
98
  const savedChatSettingsSchema = z.object({
99
99
  enabled: z.boolean(),
100
100
  display: z.boolean(),
101
+ queryWebserviceForSearch: z.string().optional()
101
102
  });
102
103
  // Define the Zod representation for the globalSettings object
103
104
  const globalSettingsSchema = z.object({
@@ -106,7 +107,8 @@ const globalSettingsSchema = z.object({
106
107
  genericChatErrorMessage: z.string().optional(),
107
108
  displayUserQuotaConsumption: z.boolean().optional(),
108
109
  displayChatTokensConsumption: z.boolean().optional(),
109
- collapseReferences: z.boolean().optional()
110
+ collapseReferences: z.boolean().optional(),
111
+ automaticScroll: z.boolean().optional()
110
112
  });
111
113
  // Define the Zod representation for the auditSettings object
112
114
  const auditSettingsSchema = z.object({
@@ -125,4 +127,4 @@ export const chatConfigSchema = z.object({
125
127
  additionalServiceSettings: additionalServiceSettingsSchema,
126
128
  additionalWorkflowProperties: additionalWorkflowPropertiesSchema,
127
129
  });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBbUt4QixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQztLQUN0QyxNQUFNLENBQUM7SUFDTixzQkFBc0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLE1BQU07S0FDUCxDQUFDO0lBQ0YsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEIsVUFBVTtRQUNWLE9BQU87UUFDUCxPQUFPO1FBQ1AsYUFBYTtRQUNiLE1BQU07UUFDTixPQUFPO1FBQ1AsU0FBUztLQUNWLENBQUM7SUFDRixrQ0FBa0MsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzFELENBQUMsQ0FBQztBQUlMLCtEQUErRDtBQUMvRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDakIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFDO0FBS0gseUVBQXlFO0FBQ3pFLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUtyRCw0RUFBNEU7QUFDNUUsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBS3hELDBEQUEwRDtBQUMxRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsY0FBYyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDeEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbEIsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNoQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0NBQy9CLENBQUMsQ0FBQztBQUlILDZEQUE2RDtBQUM3RCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtLQUNyQixDQUFDLENBQ0g7SUFDRCxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN2QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNqQixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNsQixZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN4QixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUN2QixDQUFDLENBQUM7QUFJSCxzREFBc0Q7QUFDdEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QixjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLGtDQUFrQztJQUM5RCx3QkFBd0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLDhEQUE4RDtDQUMzSCxDQUFDLENBQUM7QUFFSCw0REFBNEQ7QUFDNUQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDO0tBQzNCLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDekMsQ0FBQztJQUNGLCtEQUErRDtLQUM5RCxNQUFNLENBQ0wsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDekU7SUFDRSxPQUFPLEVBQ0wscUZBQXFGO0NBQ3hGLENBQ0Y7SUFDRCxvRkFBb0Y7S0FDbkYsTUFBTSxDQUNMLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFDMUU7SUFDRSxPQUFPLEVBQ0wsMEdBQTBHO0NBQzdHLENBQ0Y7SUFDRCxpRUFBaUU7S0FDaEUsTUFBTSxDQUNMLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU87SUFDdEIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsRUFDekU7SUFDRSxPQUFPLEVBQ0wsaUZBQWlGO0NBQ3BGLENBQ0YsQ0FBQztBQUVKLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFO0lBQzdCLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDOUIsY0FBYyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDM0IsY0FBYyxFQUFFLG9CQUFvQjtJQUNwQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDM0MsQ0FBQyxDQUFDO0FBSUgsaUVBQWlFO0FBQ2pFLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUNwQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtDQUNyQixDQUFDLENBQUM7QUFLSCw4REFBOEQ7QUFDOUQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDaEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QywyQkFBMkIsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ25ELDRCQUE0QixFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUMzQyxDQUFDLENBQUM7QUFFSCw2REFBNkQ7QUFDN0QsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25DLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtDQUN4QixDQUFDLENBQUM7QUFLSCxpRUFBaUU7QUFDakUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxrQkFBa0IsRUFBRSx3QkFBd0I7SUFDNUMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyxZQUFZLEVBQUUsa0JBQWtCO0lBQ2hDLFVBQVUsRUFBRSxnQkFBZ0I7SUFDNUIsaUJBQWlCLEVBQUUsdUJBQXVCO0lBQzFDLGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsYUFBYSxFQUFFLG1CQUFtQjtJQUNsQyx5QkFBeUIsRUFBRSwrQkFBK0I7SUFDMUQsNEJBQTRCLEVBQUUsa0NBQWtDO0NBQ2pFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IFF1ZXJ5LCBBcnRpY2xlIGFzIFJlY29yZCB9IGZyb20gXCJAc2luZXF1YS9hdG9taWNcIjtcblxuaW1wb3J0IHsgUmF3TWVzc2FnZUNvbnRlbnQgfSBmcm9tIFwiLi90eXBlcy9tZXNzYWdlLWNvbnRlbnQudHlwZXNcIjtcbmltcG9ydCB7IE1lc3NhZ2VJbWFnZVJlZmVyZW5jZSB9IGZyb20gXCIuL3R5cGVzL21lc3NhZ2UtcmVmZXJlbmNlLnR5cGVzXCI7XG5cbi8qKlxuICogSW5kaXZpZHVhbCBtZXNzYWdlIHNlbnQgJiByZXR1cm5lZCBieSB0aGUgQ2hhdEdQVCBBUEkuXG4gKiBJZiB0aGlzIG1lc3NhZ2UgaXMgYW4gYXR0YWNobWVudCwgd2UgYXR0YWNoIHRoZSBtaW5pbWFsXG4gKiBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gcmVjb25zdHJ1Y3QgdGhpcyBhdHRhY2htZW50IChSYXdBdHRhY2htZW50KVxuICogYXMgd2VsbCBhcyB0aGUgcmVmZXJlbmNlIGlkIGNvbXB1dGVkIGF0IHRoZSBtb21lbnQgb2Ygc2VuZGluZ1xuICogdGhlIGF0dGFjaG1lbnQgdG8gdGhlIEFQSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYXdNZXNzYWdlIHtcbiAgcm9sZTogc3RyaW5nO1xuICBjb250ZW50OiBSYXdNZXNzYWdlQ29udGVudDtcbiAgLy8gVXNlZCBvbmx5IGJ5IFdQUyB0byBiZSByZW1vdmVkXG4gIC8vIGh0dHBzOi8vc2luZXF1YS5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9FUy0yMzcxMFxuICBtZXNzYWdlVHlwZT86IFwiQ0hBUlRcIiB8IFwiTUFSS0RPV05cIjtcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG59XG5cbi8qKlxuICogQSBjaGF0IG1lc3NhZ2UgdGhhdCBoYXMgYmVlbiBwcm9jZXNzZWQgdG8gaW5jbHVkZSB0aGUgbWFya2Rvd24tZm9ybWF0dGVkXG4gKiBjb250ZW50IGZvciBkaXNwbGF5LCBhcyB3ZWxsIGFzIGRldGFpbGVkIGF0dGFjaG1lbnQgZGF0YSwgYW5kIG9wdGlvbmFsbHlcbiAqIGEgbGlzdCBvZiB0aGUgcmVmZXJlbmNlcyBleHRyYWN0ZWQgZnJvbSB0aGF0IG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGF0TWVzc2FnZSBleHRlbmRzIFJhd01lc3NhZ2Uge1xuICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgIG1lc3NhZ2VJZDogc3RyaW5nO1xuICAgIGRpc3BsYXk/OiBib29sZWFuO1xuICAgICRwcm9ncmVzcz86IENoYXRQcm9ncmVzc1tdO1xuICAgICRhdHRhY2htZW50PzogQ2hhdENvbnRleHRBdHRhY2htZW50W107XG4gICAgJHN1Z2dlc3RlZEFjdGlvbj86IFN1Z2dlc3RlZEFjdGlvbltdO1xuICAgICRkZWJ1Zz86IERlYnVnTWVzc2FnZVtdO1xuICAgIGZvcmNlZFdvcmtmbG93Pzogc3RyaW5nO1xuICAgIGZvcmNlZFdvcmtmbG93UHJvcGVydGllcz86IGFueTtcbiAgICBxdWVyeT86IFF1ZXJ5O1xuICAgIGlzVXNlcklucHV0PzogYm9vbGVhbjtcbiAgICB1c2FnZU1ldHJpY3M/OiBDaGF0VXNhZ2VNZXRyaWNzO1xuICAgIGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXM/OiBhbnk7XG4gICAgJGxpa2VkPzogYm9vbGVhbjtcbiAgICAkZGlzbGlrZWQ/OiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGF0UHJvZ3Jlc3Mge1xuICB0aXRsZTogc3RyaW5nO1xuICBjb250ZW50Pzogc3RyaW5nO1xuICBkb25lPzogYm9vbGVhbjtcbiAgdGltZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSYXdBdHRhY2htZW50IHtcbiAgLyoqIFR5cGUgb2YgdGhlIGF0dGFjaG1lbnQgKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogUmVjb3JkIGlkIGZyb20gd2hpY2ggdGhpcyBhdHRhY2htZW50IGlzIHRha2VuICovXG4gIHJlY29yZElkOiBzdHJpbmc7XG4gIC8qKiBSZWNvcmQgZnJvbSB3aGljaCB0aGlzIHRoaXMgYXR0YWNobWVudCBpcyB0YWtlbiAqL1xuICByZWNvcmQ6IFJlY29yZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFBhcnQge1xuICBwYXJ0SWQ6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIGxlbmd0aDogbnVtYmVyO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGltYWdlcz86IHN0cmluZ1tdIHwgTWVzc2FnZUltYWdlUmVmZXJlbmNlW107XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50UGFnZSA9IHtcbiAgdXJsOiBzdHJpbmc7XG4gIG1pbWVUeXBlOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsZW5ndGg/OiBudW1iZXI7XG4gIG9mZlNldD86IG51bWJlcjtcbiAgcGFnZU51bWJlcj86IG51bWJlcjtcbiAgcmVtYXBwZWRMZW5ndGg/OiBudW1iZXI7XG4gIHJlbWFwcGVkT2Zmc2V0PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGF0Q29udGV4dEF0dGFjaG1lbnQgZXh0ZW5kcyBSYXdBdHRhY2htZW50IHtcbiAgLyoqIFR5cGUgb2YgdGhlIGF0dGFjaG1lbnQgKi9cbiAgdHlwZTogXCJDb250ZXh0XCI7XG4gIC8qKiBSYW5rIG9mIHRoZSBhdHRhY2htZW50IGluIHRoZSBjb250ZXh0IG1lc3NhZ2UgKi9cbiAgY29udGV4dElkOiBudW1iZXI7XG4gIC8qKiBQYXJ0cyBvZiB0aGUgcmVjb3JkIHRoYXQgdGhlIGFzc2lzdGFudCB1c2VzIHRvIGFuc3dlciAqL1xuICBwYXJ0czogRG9jdW1lbnRQYXJ0W107XG4gIC8qKiBQYWdlcyBvZiB0aGUgZG9jdW1lbnRzIGJhc2VkIG9uIHRoZSBxdWVyeSAqL1xuICBwYWdlcz86IERvY3VtZW50UGFnZVtdO1xuICAvKiogVGhlIHNwZWNpZmljIGlkIHVzZWQgb2YgdGhlIHJlZmVyZW5jZWQgcGFydCAqL1xuICAkcGFydElkPzogbnVtYmVyO1xuICAkZXhwYW5kZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJhdyByZXNwb25zZSBvZiB0aGUgY2hhdCBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYXdSZXNwb25zZSB7XG4gIGhpc3Rvcnk6IFJhd01lc3NhZ2VbXTtcbiAgZXhlY3V0aW9uVGltZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBleGVjdXRpb25UaW1lTWlsbGlzZWNvbmRzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRW5yaWNoZWQgcmVzcG9uc2Ugb2YgdGhlIGNoYXQgQVBJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFJlc3BvbnNlIGV4dGVuZHMgUmF3UmVzcG9uc2Uge1xuICBoaXN0b3J5OiBDaGF0TWVzc2FnZVtdO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIG9mIHRoZSBMaXN0TW9kZWxzIEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsbG1Nb2RlbERlc2NyaXB0aW9uIHtcbiAgcHJvdmlkZXI6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgc2VydmljZUlkOiBzdHJpbmc7XG4gIG1vZGVsSWQ6IHN0cmluZztcbiAgZW5hYmxlOiBib29sZWFuO1xuICBtYXhHZW5lcmF0aW9uU2l6ZTogbnVtYmVyO1xuICBjb250ZXh0V2luZG93U2l6ZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIG9mIHRoZSBMaXN0RnVuY3Rpb25zIEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsbG1GdW5jdGlvbiB7XG4gIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xuICBwYXJhbWV0ZXJzOiBHbGxtRnVuY3Rpb25QYXJhbWV0ZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHbGxtRnVuY3Rpb25QYXJhbWV0ZXIge1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBpc1JlcXVpcmVkOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNaW5pbWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgc2F2ZWQgY2hhdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhdmVkQ2hhdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG1vZGlmaWVkVVRDOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGF0YSBzdHJ1Y3R1cmUgc2F2ZWQgdG8gcmVjb25zdHJ1Y3QgYSBzYXZlZCBjaGF0IGNvbnZlcnNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhdmVkQ2hhdEhpc3RvcnkgZXh0ZW5kcyBTYXZlZENoYXQge1xuICBoaXN0b3J5OiBDaGF0TWVzc2FnZVtdO1xufVxuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGNvbm5lY3Rpb25TZXR0aW5ncyBvYmplY3RcbmV4cG9ydCBjb25zdCBjb25uZWN0aW9uU2V0dGluZ3NTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGNvbm5lY3Rpb25FcnJvck1lc3NhZ2U6IHouc3RyaW5nKCksXG4gICAgd2Vic29ja2V0RW5kcG9pbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBzaWduYWxSU2tpcE5lZ290aWF0aW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgIHNpZ25hbFJUcmFuc3BvcnQ6IHouZW51bShbXG4gICAgICBcIldlYlNvY2tldHNcIixcbiAgICAgIFwiU2VydmVyU2VudEV2ZW50c1wiLFxuICAgICAgXCJMb25nUG9sbGluZ1wiLFxuICAgICAgXCJOb25lXCIsXG4gICAgXSksXG4gICAgc2lnbmFsUkxvZ0xldmVsOiB6LmVudW0oW1xuICAgICAgXCJDcml0aWNhbFwiLFxuICAgICAgXCJEZWJ1Z1wiLFxuICAgICAgXCJFcnJvclwiLFxuICAgICAgXCJJbmZvcm1hdGlvblwiLFxuICAgICAgXCJOb25lXCIsXG4gICAgICBcIlRyYWNlXCIsXG4gICAgICBcIldhcm5pbmdcIixcbiAgICBdKSxcbiAgICBzaWduYWxSU2VydmVyVGltZW91dEluTWlsbGlzZWNvbmRzOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIH0pO1xuLy8gRGVmaW5lIHRoZSBDb25uZWN0aW9uU2V0dGluZ3MgaW50ZXJmYWNlXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uU2V0dGluZ3MgPSB6LmluZmVyPHR5cGVvZiBjb25uZWN0aW9uU2V0dGluZ3NTY2hlbWE+O1xuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIHNlcnZpY2VTZXR0aW5ncyBvYmplY3RcbmNvbnN0IHNlcnZpY2VTZXR0aW5nc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgc2VydmljZV9pZDogei5zdHJpbmcoKSxcbiAgbW9kZWxfaWQ6IHouc3RyaW5nKCksXG4gIHRlbXBlcmF0dXJlOiB6Lm51bWJlcigpLFxuICB0b3BfcDogei5udW1iZXIoKSxcbiAgbWF4X3Rva2Vuczogei5udW1iZXIoKSxcbn0pO1xuLy8gRGVmaW5lIHRoZSBTZXJ2aWNlU2V0dGluZ3MgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTZXR0aW5nc1xuICBleHRlbmRzIHouaW5mZXI8dHlwZW9mIHNlcnZpY2VTZXR0aW5nc1NjaGVtYT4ge31cblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBhZGRpdGlvbmFsU2VydmljZVNldHRpbmdzIG9iamVjdFxuY29uc3QgYWRkaXRpb25hbFNlcnZpY2VTZXR0aW5nc1NjaGVtYSA9IHoub2JqZWN0KHt9KTtcbi8vIERlZmluZSB0aGUgQWRkaXRpb25hbFNlcnZpY2VTZXR0aW5ncyBpbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgQWRkaXRpb25hbFNlcnZpY2VTZXR0aW5nc1xuICBleHRlbmRzIHouaW5mZXI8dHlwZW9mIGFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3NTY2hlbWE+IHt9XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgYWRkaXRpb25hbFdvcmtmbG93UHJvcGVydGllcyBvYmplY3RcbmNvbnN0IGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXNTY2hlbWEgPSB6Lm9iamVjdCh7fSk7XG4vLyBEZWZpbmUgdGhlIGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXMgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXNcbiAgZXh0ZW5kcyB6LmluZmVyPHR5cGVvZiBhZGRpdGlvbmFsV29ya2Zsb3dQcm9wZXJ0aWVzU2NoZW1hPiB7fVxuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIHVpU2V0dGluZ3Mgb2JqZWN0XG5jb25zdCB1aVNldHRpbmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBkaXNwbGF5OiB6LmJvb2xlYW4oKSxcbiAgc2VydmljZXNNb2RlbHM6IHouYm9vbGVhbigpLFxuICBmdW5jdGlvbnM6IHouYm9vbGVhbigpLFxuICB0ZW1wZXJhdHVyZTogei5ib29sZWFuKCksXG4gIHRvcF9wOiB6LmJvb2xlYW4oKSxcbiAgbWF4X3Rva2Vuczogei5ib29sZWFuKCksXG4gIGRlYnVnOiB6LmJvb2xlYW4oKSxcbiAgZGlzcGxheVN5c3RlbVByb21wdDogei5ib29sZWFuKCksXG4gIGRpc3BsYXlVc2VyUHJvbXB0OiB6LmJvb2xlYW4oKSxcbn0pO1xuLy8gRGVmaW5lIHRoZSBVaVNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBVaVNldHRpbmdzIGV4dGVuZHMgei5pbmZlcjx0eXBlb2YgdWlTZXR0aW5nc1NjaGVtYT4ge31cblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBkZWZhdWx0VmFsdWVzIG9iamVjdFxuY29uc3QgZGVmYXVsdFZhbHVlc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgc2VydmljZV9pZDogei5zdHJpbmcoKSxcbiAgbW9kZWxfaWQ6IHouc3RyaW5nKCksXG4gIGZ1bmN0aW9uczogei5hcnJheShcbiAgICB6Lm9iamVjdCh7XG4gICAgICBuYW1lOiB6LnN0cmluZygpLFxuICAgICAgZW5hYmxlZDogei5ib29sZWFuKCksXG4gICAgfSlcbiAgKSxcbiAgdGVtcGVyYXR1cmU6IHoubnVtYmVyKCksXG4gIHRvcF9wOiB6Lm51bWJlcigpLFxuICBtYXhfdG9rZW5zOiB6Lm51bWJlcigpLFxuICBkZWJ1Zzogei5ib29sZWFuKCksXG4gIHN5c3RlbVByb21wdDogei5zdHJpbmcoKSxcbiAgdXNlclByb21wdDogei5zdHJpbmcoKSxcbn0pO1xuLy8gRGVmaW5lIHRoZSBEZWZhdWx0VmFsdWVzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0VmFsdWVzIGV4dGVuZHMgei5pbmZlcjx0eXBlb2YgZGVmYXVsdFZhbHVlc1NjaGVtYT4ge31cblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBhY3Rpb24gb2JqZWN0XG5jb25zdCBhY3Rpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGZvcmNlZFdvcmtmbG93OiB6LnN0cmluZygpLCAvLyBmb3JjZWRXb3JrZmxvdyBtdXN0IGJlIGEgc3RyaW5nXG4gIGZvcmNlZFdvcmtmbG93UHJvcGVydGllczogei5yZWNvcmQoei51bmtub3duKCkpLm9wdGlvbmFsKCksIC8vIGZvcmNlZFdvcmtmbG93UHJvcGVydGllcyBtdXN0IGJlIGFuIG9iamVjdCAoTWFwIGVxdWl2YWxlbnQpXG59KTtcblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBtb2RlU2V0dGluZ3Mgb2JqZWN0XG5jb25zdCBpbml0aWFsaXphdGlvblNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZXZlbnQ6IHouZW51bShbXCJRdWVyeVwiLCBcIlByb21wdFwiXSksXG4gICAgZm9yY2VkV29ya2Zsb3c6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBmb3JjZWRGdW5jdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRpc3BsYXlVc2VyUXVlcnk6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIH0pXG4gIC8vIOKdjCBSdWxlIDE6IENhbm5vdCBoYXZlIGJvdGggZm9yY2VkV29ya2Zsb3cgYW5kIGZvcmNlZEZ1bmN0aW9uXG4gIC5yZWZpbmUoXG4gICAgKGRhdGEpID0+XG4gICAgICBkYXRhLmV2ZW50ICE9PSBcIlF1ZXJ5XCIgfHwgIShkYXRhLmZvcmNlZFdvcmtmbG93ICYmIGRhdGEuZm9yY2VkRnVuY3Rpb24pLFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIFwiQm90aCAnZm9yY2VkRnVuY3Rpb24nIGFuZCAnZm9yY2VkV29ya2Zsb3cnIHByb3BlcnRpZXMgYXJlIHNldCwgYnV0IHRoZXkgc2hvdWxkIG5vdC5cIixcbiAgICB9XG4gIClcbiAgLy8g4p2MIFJ1bGUgMjogTXVzdCBoYXZlIG9uZSBvZiBmb3JjZWRXb3JrZmxvdyBvciBmb3JjZWRGdW5jdGlvbiB3aGVuIGV2ZW50IGlzICdRdWVyeSdcbiAgLnJlZmluZShcbiAgICAoZGF0YSkgPT5cbiAgICAgIGRhdGEuZXZlbnQgIT09IFwiUXVlcnlcIiB8fCAhIWRhdGEuZm9yY2VkV29ya2Zsb3cgfHwgISFkYXRhLmZvcmNlZEZ1bmN0aW9uLFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIFwiT25lIG9mICdmb3JjZWRXb3JrZmxvdycgb3IgJ2ZvcmNlZEZ1bmN0aW9uJyBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uJ3MgZXZlbnQgaXMgJ1F1ZXJ5Jy5cIixcbiAgICB9XG4gIClcbiAgLy8g4p2MIFJ1bGUgMzogTXVzdCBoYXZlIGRpc3BsYXlVc2VyUXVlcnkgc2V0IHdoZW4gZXZlbnQgaXMgJ1F1ZXJ5J1xuICAucmVmaW5lKFxuICAgIChkYXRhKSA9PlxuICAgICAgZGF0YS5ldmVudCAhPT0gXCJRdWVyeVwiIHx8XG4gICAgICAoZGF0YS5kaXNwbGF5VXNlclF1ZXJ5ICE9PSB1bmRlZmluZWQgJiYgZGF0YS5kaXNwbGF5VXNlclF1ZXJ5ICE9PSBudWxsKSxcbiAgICB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICBcIidkaXNwbGF5VXNlclF1ZXJ5JyBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uJ3MgZXZlbnQgaXMgJ1F1ZXJ5Jy5cIixcbiAgICB9XG4gICk7XG5cbmNvbnN0IG1vZGVTZXR0aW5nc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgZW5hYmxlZFVzZXJJbnB1dDogei5ib29sZWFuKCksXG4gIGRpc3BsYXlVc2VyUHJvbXB0OiB6LmJvb2xlYW4oKSxcbiAgc2VuZFVzZXJQcm9tcHQ6IHouYm9vbGVhbigpLFxuICBpbml0aWFsaXphdGlvbjogaW5pdGlhbGl6YXRpb25TY2hlbWEsXG4gIGFjdGlvbnM6IHoucmVjb3JkKGFjdGlvblNjaGVtYSkub3B0aW9uYWwoKSxcbn0pO1xuLy8gRGVmaW5lIHRoZSBNb2RlU2V0dGluZ3MgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVTZXR0aW5ncyBleHRlbmRzIHouaW5mZXI8dHlwZW9mIG1vZGVTZXR0aW5nc1NjaGVtYT4ge31cblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBzYXZlZENoYXRTZXR0aW5ncyBvYmplY3RcbmNvbnN0IHNhdmVkQ2hhdFNldHRpbmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBlbmFibGVkOiB6LmJvb2xlYW4oKSxcbiAgZGlzcGxheTogei5ib29sZWFuKCksXG59KTtcbi8vIERlZmluZSB0aGUgU2F2ZWRDaGF0U2V0dGluZ3MgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFNhdmVkQ2hhdFNldHRpbmdzXG4gIGV4dGVuZHMgei5pbmZlcjx0eXBlb2Ygc2F2ZWRDaGF0U2V0dGluZ3NTY2hlbWE+IHt9XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgZ2xvYmFsU2V0dGluZ3Mgb2JqZWN0XG5jb25zdCBnbG9iYWxTZXR0aW5nc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgc2VhcmNoV2FybmluZ01lc3NhZ2U6IHouc3RyaW5nKCksXG4gIGRpc2NsYWltZXI6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZ2VuZXJpY0NoYXRFcnJvck1lc3NhZ2U6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZGlzcGxheVVzZXJRdW90YUNvbnN1bXB0aW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBkaXNwbGF5Q2hhdFRva2Vuc0NvbnN1bXB0aW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBjb2xsYXBzZVJlZmVyZW5jZXM6IHouYm9vbGVhbigpLm9wdGlvbmFsKClcbn0pO1xuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGF1ZGl0U2V0dGluZ3Mgb2JqZWN0XG5jb25zdCBhdWRpdFNldHRpbmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBpc3N1ZVR5cGVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGxvZ0NvbnRlbnQ6IHouYm9vbGVhbigpLFxufSk7XG4vLyBEZWZpbmUgdGhlIFNhdmVkQ2hhdFNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBTYXZlZENoYXRTZXR0aW5nc1xuICBleHRlbmRzIHouaW5mZXI8dHlwZW9mIHNhdmVkQ2hhdFNldHRpbmdzU2NoZW1hPiB7fVxuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGVudGlyZSBDaGF0Q29uZmlnIG9iamVjdFxuZXhwb3J0IGNvbnN0IGNoYXRDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbm5lY3Rpb25TZXR0aW5nczogY29ubmVjdGlvblNldHRpbmdzU2NoZW1hLFxuICBkZWZhdWx0VmFsdWVzOiBkZWZhdWx0VmFsdWVzU2NoZW1hLFxuICBtb2RlU2V0dGluZ3M6IG1vZGVTZXR0aW5nc1NjaGVtYSxcbiAgdWlTZXR0aW5nczogdWlTZXR0aW5nc1NjaGVtYSxcbiAgc2F2ZWRDaGF0U2V0dGluZ3M6IHNhdmVkQ2hhdFNldHRpbmdzU2NoZW1hLFxuICBnbG9iYWxTZXR0aW5nczogZ2xvYmFsU2V0dGluZ3NTY2hlbWEsXG4gIGF1ZGl0U2V0dGluZ3M6IGF1ZGl0U2V0dGluZ3NTY2hlbWEsXG4gIGFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3M6IGFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3NTY2hlbWEsXG4gIGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXM6IGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXNTY2hlbWEsXG59KTtcbi8vIERlZmluZSB0aGUgQ2hhdENvbmZpZyBpbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdENvbmZpZyBleHRlbmRzIHouaW5mZXI8dHlwZW9mIGNoYXRDb25maWdTY2hlbWE+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFBheWxvYWQge1xuICBkZWJ1ZzogYm9vbGVhbjtcbiAgZnVuY3Rpb25zOiBzdHJpbmdbXTtcbiAgaGlzdG9yeTogQ2hhdE1lc3NhZ2VbXTtcbiAgc2VydmljZVNldHRpbmdzOiBTZXJ2aWNlU2V0dGluZ3M7XG4gIGFwcFF1ZXJ5OiB7XG4gICAgYXBwOiBzdHJpbmc7XG4gICAgcXVlcnk6IFF1ZXJ5IHwgdW5kZWZpbmVkO1xuICAgIHRhcmdldFVybD86IHN0cmluZztcbiAgICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgfTtcbiAgaW5zdGFuY2VJZDogc3RyaW5nO1xuICBjaGF0SWQ6IHN0cmluZztcbiAgZ2VuZXJpY0NoYXRFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk1lc3NhZ2UgPSB7XG4gIGd1aWQ6IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIGRpc3BsYXlWYWx1ZT86IHN0cmluZztcbiAgZXhlY3V0aW9uVGltZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dENodW5rc09wdGlvbnMge1xuICBleHRlbmRNb2RlPzogXCJOb25lXCIgfCBcIlNlbnRlbmNlXCIgfCBcIkNoYXJzXCI7XG4gIGV4dGVuZFNjb3BlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1b3RhIHtcbiAgbGFzdFJlcXVlc3Q6IHN0cmluZztcbiAgcHJvbXB0VG9rZW5Db3VudDogbnVtYmVyO1xuICBjb21wbGV0aW9uVG9rZW5Db3VudDogbnVtYmVyO1xuICBwZXJpb2RUb2tlbnM6IG51bWJlcjtcbiAgcmVzZXRIb3VyczogbnVtYmVyO1xuICB0b2tlbkNvdW50OiBudW1iZXI7XG4gIG5leHRSZXNldDogc3RyaW5nO1xuICBsYXN0UmVzZXRVVEM6IHN0cmluZztcbiAgbmV4dFJlc2V0VVRDOiBzdHJpbmc7XG4gIG1heFF1b3RhUmVhY2hlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0ZWRBY3Rpb24ge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbml0Q2hhdCB7XG4gIG1lc3NhZ2VzOiBSYXdNZXNzYWdlW107XG59XG5cbi8qKlxuICogTGlzdCBvZiBldmVudHMgZGF0YSB0aGF0IGNhbiBiZSBlbWl0dGVkIGJ5IHRoZSB3ZWJzb2NrZXQgY2hhdCBlbmRwb2ludFxuICovXG5leHBvcnQgdHlwZSBTdWdnZXN0ZWRBY3Rpb25zRXZlbnQgPSB7IHN1Z2dlc3RlZEFjdGlvbnM6IFN1Z2dlc3RlZEFjdGlvbltdIH07XG5leHBvcnQgdHlwZSBRdW90YUV2ZW50ID0geyBxdW90YTogUXVvdGEgfTtcbmV4cG9ydCB0eXBlIE1lc3NhZ2VFdmVudCA9IHsgZGVsdGE6IHN0cmluZzsgbWVzc2FnZUlkOiBzdHJpbmcgfTtcbmV4cG9ydCB0eXBlIENvbnRleHRNZXNzYWdlRXZlbnQgPSB7IGNvbnRlbnQ6IHN0cmluZzsgYWRkaXRpb25hbFByb3BlcnRpZXM6IENoYXRDb250ZXh0QXR0YWNobWVudCB9O1xuZXhwb3J0IHR5cGUgRXJyb3JFdmVudCA9IHN0cmluZztcbmV4cG9ydCB0eXBlIEFjdGlvblN0YXJ0RXZlbnQgPSB7IGd1aWQ6IHN0cmluZzsgZGlzcGxheU5hbWU6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgQWN0aW9uUmVzdWx0RXZlbnQgPSB7IGd1aWQ6IHN0cmluZzsgZGlzcGxheVZhbHVlOiBzdHJpbmcgfTtcbmV4cG9ydCB0eXBlIEFjdGlvblN0b3BFdmVudCA9IHsgZ3VpZDogc3RyaW5nOyBleGVjdXRpb25UaW1lOiBudW1iZXIgfTtcbmV4cG9ydCB0eXBlIEhpc3RvcnlFdmVudCA9IHsgaGlzdG9yeTogUmF3TWVzc2FnZVtdOyBleGVjdXRpb25UaW1lOiBzdHJpbmc7IGV4ZWN1dGlvblRpbWVNaWxsaXNlY29uZHM/OiBudW1iZXIgfTtcbmV4cG9ydCB0eXBlIERlYnVnTWVzc2FnZUV2ZW50ID0gRGVidWdNZXNzYWdlO1xuXG4vKipcbiAqIERhdGEgZW1pdHRlZCBieSB0aGUgaHR0cCBjaGF0IGVuZHBvaW50XG4gKi9cbmV4cG9ydCB0eXBlIEh0dHBDaGF0UmVzcG9uc2UgPSB7XG4gIHF1b3RhOiBRdW90YTtcbiAgc3VnZ2VzdGVkQWN0aW9uczogU3VnZ2VzdGVkQWN0aW9uW107XG4gIGRlYnVnOiBhbnk7XG4gIGNvbnRleHQ6IHsgY29udGVudDogc3RyaW5nOyBhZGRpdGlvbmFsUHJvcGVydGllczogQ2hhdENvbnRleHRBdHRhY2htZW50IH1bXTtcbiAgYWN0aW9uczogQWN0aW9uTWVzc2FnZVtdO1xuICBoaXN0b3J5OiBSYXdNZXNzYWdlW107XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcbiAgZXhlY3V0aW9uVGltZU1pbGxpc2Vjb25kczogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbkNvbnN1bXB0aW9uIHtcbiAgcGVyY2VudGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJUb2tlbkNvbnN1bXB0aW9uIGV4dGVuZHMgVG9rZW5Db25zdW1wdGlvbiB7XG4gIG5leHRSZXNldERhdGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGF0VXNhZ2VNZXRyaWNzIHtcbiAgdG90YWxUb2tlbkNvdW50OiBudW1iZXI7XG4gIHByb21wdFRva2VuQ291bnQ6IG51bWJlcjtcbiAgY29tcGxldGlvblRva2VuQ291bnQ6IG51bWJlcjtcbiAgdG9rZW5pemVyVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEt2T2JqZWN0IHtcbiAgZGF0YToge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7IC8vIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgfTtcbiAgdHlwZTogXCJLVlwiO1xuICBpc0Vycm9yOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RPYmplY3Qge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IFwiTElTVFwiO1xuICBpc0Vycm9yOiBib29sZWFuO1xuICBpdGVtczogKEt2T2JqZWN0IHwgTGlzdE9iamVjdClbXTtcbiAgZXhwYW5kZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIERlYnVnTWVzc2FnZSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgY2hhdElkOiBzdHJpbmc7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIGRlYnVnTWVzc2FnZUlkOiBzdHJpbmc7XG4gICRleHBhbmRlZD86IGJvb2xlYW47XG4gICRsb2FkaW5nPzogYm9vbGVhbjtcbiAgJGRldGFpbHM/OiBMaXN0T2JqZWN0W107XG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VIYW5kbGVyPFQ+ID0ge1xuICBoYW5kbGVyOiAoZGF0YTogVCkgPT4gdm9pZDtcbiAgaXNHbG9iYWxIYW5kbGVyOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBEYXRhIGVtaXR0ZWQgYnkgdGhlIHNhdmVkIGNoYXQgZW5kcG9pbnRzXG4gKi9cbmV4cG9ydCB0eXBlIERlbGV0ZVNhdmVkQ2hhdFJlc3BvbnNlID0ge1xuICBkZWxldGVDb3VudDogbnVtYmVyO1xuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XG4gIGV4ZWN1dGlvblRpbWVNaWxsaXNlY29uZHM6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBTYXZlZENoYXRSZXNwb25zZSA9IHtcbiAgc2F2ZWRDaGF0OiBTYXZlZENoYXQ7XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcbiAgZXhlY3V0aW9uVGltZU1pbGxpc2Vjb25kczogbnVtYmVyO1xufTtcbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBbUt4QixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQztLQUN0QyxNQUFNLENBQUM7SUFDTixzQkFBc0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLE1BQU07S0FDUCxDQUFDO0lBQ0YsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEIsVUFBVTtRQUNWLE9BQU87UUFDUCxPQUFPO1FBQ1AsYUFBYTtRQUNiLE1BQU07UUFDTixPQUFPO1FBQ1AsU0FBUztLQUNWLENBQUM7SUFDRixrQ0FBa0MsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzFELENBQUMsQ0FBQztBQUlMLCtEQUErRDtBQUMvRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDckMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDdEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsVUFBVSxFQUFF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dGljbGUgYXMgUmVjb3JkIH0gZnJvbSBcIkBzaW5lcXVhL2F0b21pY1wiO1xuXG5pbXBvcnQgeyBSYXdNZXNzYWdlQ29udGVudCB9IGZyb20gXCIuL3R5cGVzL21lc3NhZ2UtY29udGVudC50eXBlc1wiO1xuaW1wb3J0IHsgTWVzc2FnZUltYWdlUmVmZXJlbmNlIH0gZnJvbSBcIi4vdHlwZXMvbWVzc2FnZS1yZWZlcmVuY2UudHlwZXNcIjtcblxuLyoqXG4gKiBJbmRpdmlkdWFsIG1lc3NhZ2Ugc2VudCAmIHJldHVybmVkIGJ5IHRoZSBDaGF0R1BUIEFQSS5cbiAqIElmIHRoaXMgbWVzc2FnZSBpcyBhbiBhdHRhY2htZW50LCB3ZSBhdHRhY2ggdGhlIG1pbmltYWxcbiAqIGluZm9ybWF0aW9uIG5lZWRlZCB0byByZWNvbnN0cnVjdCB0aGlzIGF0dGFjaG1lbnQgKFJhd0F0dGFjaG1lbnQpXG4gKiBhcyB3ZWxsIGFzIHRoZSByZWZlcmVuY2UgaWQgY29tcHV0ZWQgYXQgdGhlIG1vbWVudCBvZiBzZW5kaW5nXG4gKiB0aGUgYXR0YWNobWVudCB0byB0aGUgQVBJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJhd01lc3NhZ2Uge1xuICByb2xlOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IFJhd01lc3NhZ2VDb250ZW50O1xuICAvLyBVc2VkIG9ubHkgYnkgV1BTIHRvIGJlIHJlbW92ZWRcbiAgLy8gaHR0cHM6Ly9zaW5lcXVhLmF0bGFzc2lhbi5uZXQvYnJvd3NlL0VTLTIzNzEwXG4gIG1lc3NhZ2VUeXBlPzogXCJDSEFSVFwiIHwgXCJNQVJLRE9XTlwiO1xuICBhZGRpdGlvbmFsUHJvcGVydGllczoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGNoYXQgbWVzc2FnZSB0aGF0IGhhcyBiZWVuIHByb2Nlc3NlZCB0byBpbmNsdWRlIHRoZSBtYXJrZG93bi1mb3JtYXR0ZWRcbiAqIGNvbnRlbnQgZm9yIGRpc3BsYXksIGFzIHdlbGwgYXMgZGV0YWlsZWQgYXR0YWNobWVudCBkYXRhLCBhbmQgb3B0aW9uYWxseVxuICogYSBsaXN0IG9mIHRoZSByZWZlcmVuY2VzIGV4dHJhY3RlZCBmcm9tIHRoYXQgbWVzc2FnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYXRNZXNzYWdlIGV4dGVuZHMgUmF3TWVzc2FnZSB7XG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7XG4gICAgbWVzc2FnZUlkOiBzdHJpbmc7XG4gICAgZGlzcGxheT86IGJvb2xlYW47XG4gICAgJHByb2dyZXNzPzogQ2hhdFByb2dyZXNzW107XG4gICAgJGF0dGFjaG1lbnQ/OiBDaGF0Q29udGV4dEF0dGFjaG1lbnRbXTtcbiAgICAkc3VnZ2VzdGVkQWN0aW9uPzogU3VnZ2VzdGVkQWN0aW9uW107XG4gICAgJGRlYnVnPzogRGVidWdNZXNzYWdlW107XG4gICAgZm9yY2VkV29ya2Zsb3c/OiBzdHJpbmc7XG4gICAgZm9yY2VkV29ya2Zsb3dQcm9wZXJ0aWVzPzogYW55O1xuICAgIHF1ZXJ5PzogUXVlcnk7XG4gICAgaXNVc2VySW5wdXQ/OiBib29sZWFuO1xuICAgIHVzYWdlTWV0cmljcz86IENoYXRVc2FnZU1ldHJpY3M7XG4gICAgYWRkaXRpb25hbFdvcmtmbG93UHJvcGVydGllcz86IGFueTtcbiAgICAkbGlrZWQ/OiBib29sZWFuO1xuICAgICRkaXNsaWtlZD86IGJvb2xlYW47XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRQcm9ncmVzcyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIGRvbmU/OiBib29sZWFuO1xuICB0aW1lPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhd0F0dGFjaG1lbnQge1xuICAvKiogVHlwZSBvZiB0aGUgYXR0YWNobWVudCAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBSZWNvcmQgaWQgZnJvbSB3aGljaCB0aGlzIGF0dGFjaG1lbnQgaXMgdGFrZW4gKi9cbiAgcmVjb3JkSWQ6IHN0cmluZztcbiAgLyoqIFJlY29yZCBmcm9tIHdoaWNoIHRoaXMgdGhpcyBhdHRhY2htZW50IGlzIHRha2VuICovXG4gIHJlY29yZDogUmVjb3JkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50UGFydCB7XG4gIHBhcnRJZD86IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIGxlbmd0aDogbnVtYmVyO1xuICB0ZXh0Pzogc3RyaW5nO1xuICBpbWFnZXM/OiBzdHJpbmdbXSB8IE1lc3NhZ2VJbWFnZVJlZmVyZW5jZVtdO1xufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFBhZ2UgPSB7XG4gIHVybDogc3RyaW5nO1xuICBtaW1lVHlwZTogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgbGVuZ3RoPzogbnVtYmVyO1xuICBvZmZTZXQ/OiBudW1iZXI7XG4gIHBhZ2VOdW1iZXI/OiBudW1iZXI7XG4gIHJlbWFwcGVkTGVuZ3RoPzogbnVtYmVyO1xuICByZW1hcHBlZE9mZnNldD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdENvbnRleHRBdHRhY2htZW50IGV4dGVuZHMgUmF3QXR0YWNobWVudCB7XG4gIC8qKiBUeXBlIG9mIHRoZSBhdHRhY2htZW50ICovXG4gIHR5cGU6IFwiQ29udGV4dFwiO1xuICAvKiogUmFuayBvZiB0aGUgYXR0YWNobWVudCBpbiB0aGUgY29udGV4dCBtZXNzYWdlICovXG4gIGNvbnRleHRJZDogbnVtYmVyO1xuICAvKiogUGFydHMgb2YgdGhlIHJlY29yZCB0aGF0IHRoZSBhc3Npc3RhbnQgdXNlcyB0byBhbnN3ZXIgKi9cbiAgcGFydHM6IERvY3VtZW50UGFydFtdO1xuICAvKiogUGFnZXMgb2YgdGhlIGRvY3VtZW50cyBiYXNlZCBvbiB0aGUgcXVlcnkgKi9cbiAgcGFnZXM/OiBEb2N1bWVudFBhZ2VbXTtcbiAgLyoqIFRoZSBzcGVjaWZpYyBpZCB1c2VkIG9mIHRoZSByZWZlcmVuY2VkIHBhcnQgKi9cbiAgJHBhcnRJZD86IG51bWJlcjtcbiAgJGV4cGFuZGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSYXcgcmVzcG9uc2Ugb2YgdGhlIGNoYXQgQVBJXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmF3UmVzcG9uc2Uge1xuICBoaXN0b3J5OiBSYXdNZXNzYWdlW107XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZXhlY3V0aW9uVGltZU1pbGxpc2Vjb25kczogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEVucmljaGVkIHJlc3BvbnNlIG9mIHRoZSBjaGF0IEFQSVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYXRSZXNwb25zZSBleHRlbmRzIFJhd1Jlc3BvbnNlIHtcbiAgaGlzdG9yeTogQ2hhdE1lc3NhZ2VbXTtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBvZiB0aGUgTGlzdE1vZGVscyBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbGxtTW9kZWxEZXNjcmlwdGlvbiB7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VJZDogc3RyaW5nO1xuICBtb2RlbElkOiBzdHJpbmc7XG4gIGVuYWJsZTogYm9vbGVhbjtcbiAgbWF4R2VuZXJhdGlvblNpemU6IG51bWJlcjtcbiAgY29udGV4dFdpbmRvd1NpemU6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBvZiB0aGUgTGlzdEZ1bmN0aW9ucyBBUElcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbGxtRnVuY3Rpb24ge1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgcGFyYW1ldGVyczogR2xsbUZ1bmN0aW9uUGFyYW1ldGVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2xsbUZ1bmN0aW9uUGFyYW1ldGVyIHtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaXNSZXF1aXJlZDogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWluaW1hbCByZXByZXNlbnRhdGlvbiBvZiBhIHNhdmVkIGNoYXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYXZlZENoYXQge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBtb2RpZmllZFVUQzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERhdGEgc3RydWN0dXJlIHNhdmVkIHRvIHJlY29uc3RydWN0IGEgc2F2ZWQgY2hhdCBjb252ZXJzYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYXZlZENoYXRIaXN0b3J5IGV4dGVuZHMgU2F2ZWRDaGF0IHtcbiAgaGlzdG9yeTogQ2hhdE1lc3NhZ2VbXTtcbn1cblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBjb25uZWN0aW9uU2V0dGluZ3Mgb2JqZWN0XG5leHBvcnQgY29uc3QgY29ubmVjdGlvblNldHRpbmdzU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBjb25uZWN0aW9uRXJyb3JNZXNzYWdlOiB6LnN0cmluZygpLFxuICAgIHdlYnNvY2tldEVuZHBvaW50OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgc2lnbmFsUlNraXBOZWdvdGlhdGlvbjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICBzaWduYWxSVHJhbnNwb3J0OiB6LmVudW0oW1xuICAgICAgXCJXZWJTb2NrZXRzXCIsXG4gICAgICBcIlNlcnZlclNlbnRFdmVudHNcIixcbiAgICAgIFwiTG9uZ1BvbGxpbmdcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgIF0pLFxuICAgIHNpZ25hbFJMb2dMZXZlbDogei5lbnVtKFtcbiAgICAgIFwiQ3JpdGljYWxcIixcbiAgICAgIFwiRGVidWdcIixcbiAgICAgIFwiRXJyb3JcIixcbiAgICAgIFwiSW5mb3JtYXRpb25cIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICAgXCJUcmFjZVwiLFxuICAgICAgXCJXYXJuaW5nXCIsXG4gICAgXSksXG4gICAgc2lnbmFsUlNlcnZlclRpbWVvdXRJbk1pbGxpc2Vjb25kczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB9KTtcbi8vIERlZmluZSB0aGUgQ29ubmVjdGlvblNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IHR5cGUgQ29ubmVjdGlvblNldHRpbmdzID0gei5pbmZlcjx0eXBlb2YgY29ubmVjdGlvblNldHRpbmdzU2NoZW1hPjtcblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBzZXJ2aWNlU2V0dGluZ3Mgb2JqZWN0XG5jb25zdCBzZXJ2aWNlU2V0dGluZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNlcnZpY2VfaWQ6IHouc3RyaW5nKCksXG4gIG1vZGVsX2lkOiB6LnN0cmluZygpLFxuICB0ZW1wZXJhdHVyZTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3BfcDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBtYXhfdG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcbi8vIERlZmluZSB0aGUgU2VydmljZVNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU2V0dGluZ3NcbiAgZXh0ZW5kcyB6LmluZmVyPHR5cGVvZiBzZXJ2aWNlU2V0dGluZ3NTY2hlbWE+IHt9XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgYWRkaXRpb25hbFNlcnZpY2VTZXR0aW5ncyBvYmplY3RcbmNvbnN0IGFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3NTY2hlbWEgPSB6Lm9iamVjdCh7fSk7XG4vLyBEZWZpbmUgdGhlIEFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3MgaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3NcbiAgZXh0ZW5kcyB6LmluZmVyPHR5cGVvZiBhZGRpdGlvbmFsU2VydmljZVNldHRpbmdzU2NoZW1hPiB7fVxuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXMgb2JqZWN0XG5jb25zdCBhZGRpdGlvbmFsV29ya2Zsb3dQcm9wZXJ0aWVzU2NoZW1hID0gei5vYmplY3Qoe30pO1xuLy8gRGVmaW5lIHRoZSBhZGRpdGlvbmFsV29ya2Zsb3dQcm9wZXJ0aWVzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBhZGRpdGlvbmFsV29ya2Zsb3dQcm9wZXJ0aWVzXG4gIGV4dGVuZHMgei5pbmZlcjx0eXBlb2YgYWRkaXRpb25hbFdvcmtmbG93UHJvcGVydGllc1NjaGVtYT4ge31cblxuLy8gRGVmaW5lIHRoZSBab2QgcmVwcmVzZW50YXRpb24gZm9yIHRoZSB1aVNldHRpbmdzIG9iamVjdFxuY29uc3QgdWlTZXR0aW5nc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgZGlzcGxheTogei5ib29sZWFuKCksXG4gIHNlcnZpY2VzTW9kZWxzOiB6LmJvb2xlYW4oKSxcbiAgZnVuY3Rpb25zOiB6LmJvb2xlYW4oKSxcbiAgdGVtcGVyYXR1cmU6IHouYm9vbGVhbigpLFxuICB0b3BfcDogei5ib29sZWFuKCksXG4gIG1heF90b2tlbnM6IHouYm9vbGVhbigpLFxuICBkZWJ1Zzogei5ib29sZWFuKCksXG4gIGRpc3BsYXlTeXN0ZW1Qcm9tcHQ6IHouYm9vbGVhbigpLFxuICBkaXNwbGF5VXNlclByb21wdDogei5ib29sZWFuKCksXG59KTtcbi8vIERlZmluZSB0aGUgVWlTZXR0aW5ncyBpbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgVWlTZXR0aW5ncyBleHRlbmRzIHouaW5mZXI8dHlwZW9mIHVpU2V0dGluZ3NTY2hlbWE+IHt9XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgZGVmYXVsdFZhbHVlcyBvYmplY3RcbmNvbnN0IGRlZmF1bHRWYWx1ZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNlcnZpY2VfaWQ6IHouc3RyaW5nKCksXG4gIG1vZGVsX2lkOiB6LnN0cmluZygpLFxuICBmdW5jdGlvbnM6IHouYXJyYXkoXG4gICAgei5vYmplY3Qoe1xuICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgIGVuYWJsZWQ6IHouYm9vbGVhbigpLFxuICAgIH0pXG4gICksXG4gIHRlbXBlcmF0dXJlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRvcF9wOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIG1heF90b2tlbnM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZGVidWc6IHouYm9vbGVhbigpLFxuICBzeXN0ZW1Qcm9tcHQ6IHouc3RyaW5nKCksXG4gIHVzZXJQcm9tcHQ6IHouc3RyaW5nKCksXG59KTtcbi8vIERlZmluZSB0aGUgRGVmYXVsdFZhbHVlcyBpbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFZhbHVlcyBleHRlbmRzIHouaW5mZXI8dHlwZW9mIGRlZmF1bHRWYWx1ZXNTY2hlbWE+IHt9XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgYWN0aW9uIG9iamVjdFxuY29uc3QgYWN0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICBmb3JjZWRXb3JrZmxvdzogei5zdHJpbmcoKSwgLy8gZm9yY2VkV29ya2Zsb3cgbXVzdCBiZSBhIHN0cmluZ1xuICBmb3JjZWRXb3JrZmxvd1Byb3BlcnRpZXM6IHoucmVjb3JkKHoudW5rbm93bigpKS5vcHRpb25hbCgpLCAvLyBmb3JjZWRXb3JrZmxvd1Byb3BlcnRpZXMgbXVzdCBiZSBhbiBvYmplY3QgKE1hcCBlcXVpdmFsZW50KVxufSk7XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgbW9kZVNldHRpbmdzIG9iamVjdFxuY29uc3QgaW5pdGlhbGl6YXRpb25TY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIGV2ZW50OiB6LmVudW0oW1wiUXVlcnlcIiwgXCJQcm9tcHRcIl0pLFxuICAgIGZvcmNlZFdvcmtmbG93OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgZm9yY2VkRnVuY3Rpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkaXNwbGF5VXNlclF1ZXJ5OiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB9KVxuICAvLyDinYwgUnVsZSAxOiBDYW5ub3QgaGF2ZSBib3RoIGZvcmNlZFdvcmtmbG93IGFuZCBmb3JjZWRGdW5jdGlvblxuICAucmVmaW5lKFxuICAgIChkYXRhKSA9PlxuICAgICAgZGF0YS5ldmVudCAhPT0gXCJRdWVyeVwiIHx8ICEoZGF0YS5mb3JjZWRXb3JrZmxvdyAmJiBkYXRhLmZvcmNlZEZ1bmN0aW9uKSxcbiAgICB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICBcIkJvdGggJ2ZvcmNlZEZ1bmN0aW9uJyBhbmQgJ2ZvcmNlZFdvcmtmbG93JyBwcm9wZXJ0aWVzIGFyZSBzZXQsIGJ1dCB0aGV5IHNob3VsZCBub3QuXCIsXG4gICAgfVxuICApXG4gIC8vIOKdjCBSdWxlIDI6IE11c3QgaGF2ZSBvbmUgb2YgZm9yY2VkV29ya2Zsb3cgb3IgZm9yY2VkRnVuY3Rpb24gd2hlbiBldmVudCBpcyAnUXVlcnknXG4gIC5yZWZpbmUoXG4gICAgKGRhdGEpID0+XG4gICAgICBkYXRhLmV2ZW50ICE9PSBcIlF1ZXJ5XCIgfHwgISFkYXRhLmZvcmNlZFdvcmtmbG93IHx8ICEhZGF0YS5mb3JjZWRGdW5jdGlvbixcbiAgICB7XG4gICAgICBtZXNzYWdlOlxuICAgICAgICBcIk9uZSBvZiAnZm9yY2VkV29ya2Zsb3cnIG9yICdmb3JjZWRGdW5jdGlvbicgbXVzdCBiZSBwcm92aWRlZCB3aGVuIHRoZSBpbml0aWFsaXphdGlvbidzIGV2ZW50IGlzICdRdWVyeScuXCIsXG4gICAgfVxuICApXG4gIC8vIOKdjCBSdWxlIDM6IE11c3QgaGF2ZSBkaXNwbGF5VXNlclF1ZXJ5IHNldCB3aGVuIGV2ZW50IGlzICdRdWVyeSdcbiAgLnJlZmluZShcbiAgICAoZGF0YSkgPT5cbiAgICAgIGRhdGEuZXZlbnQgIT09IFwiUXVlcnlcIiB8fFxuICAgICAgKGRhdGEuZGlzcGxheVVzZXJRdWVyeSAhPT0gdW5kZWZpbmVkICYmIGRhdGEuZGlzcGxheVVzZXJRdWVyeSAhPT0gbnVsbCksXG4gICAge1xuICAgICAgbWVzc2FnZTpcbiAgICAgICAgXCInZGlzcGxheVVzZXJRdWVyeScgbXVzdCBiZSBwcm92aWRlZCB3aGVuIHRoZSBpbml0aWFsaXphdGlvbidzIGV2ZW50IGlzICdRdWVyeScuXCIsXG4gICAgfVxuICApO1xuXG5jb25zdCBtb2RlU2V0dGluZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGVuYWJsZWRVc2VySW5wdXQ6IHouYm9vbGVhbigpLFxuICBkaXNwbGF5VXNlclByb21wdDogei5ib29sZWFuKCksXG4gIHNlbmRVc2VyUHJvbXB0OiB6LmJvb2xlYW4oKSxcbiAgaW5pdGlhbGl6YXRpb246IGluaXRpYWxpemF0aW9uU2NoZW1hLFxuICBhY3Rpb25zOiB6LnJlY29yZChhY3Rpb25TY2hlbWEpLm9wdGlvbmFsKCksXG59KTtcbi8vIERlZmluZSB0aGUgTW9kZVNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBNb2RlU2V0dGluZ3MgZXh0ZW5kcyB6LmluZmVyPHR5cGVvZiBtb2RlU2V0dGluZ3NTY2hlbWE+IHt9XG5cbi8vIERlZmluZSB0aGUgWm9kIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgc2F2ZWRDaGF0U2V0dGluZ3Mgb2JqZWN0XG5jb25zdCBzYXZlZENoYXRTZXR0aW5nc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgZW5hYmxlZDogei5ib29sZWFuKCksXG4gIGRpc3BsYXk6IHouYm9vbGVhbigpLFxuICBxdWVyeVdlYnNlcnZpY2VGb3JTZWFyY2g6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSk7XG4vLyBEZWZpbmUgdGhlIFNhdmVkQ2hhdFNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBTYXZlZENoYXRTZXR0aW5nc1xuICBleHRlbmRzIHouaW5mZXI8dHlwZW9mIHNhdmVkQ2hhdFNldHRpbmdzU2NoZW1hPiB7fVxuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGdsb2JhbFNldHRpbmdzIG9iamVjdFxuY29uc3QgZ2xvYmFsU2V0dGluZ3NTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNlYXJjaFdhcm5pbmdNZXNzYWdlOiB6LnN0cmluZygpLFxuICBkaXNjbGFpbWVyOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdlbmVyaWNDaGF0RXJyb3JNZXNzYWdlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGRpc3BsYXlVc2VyUXVvdGFDb25zdW1wdGlvbjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGlzcGxheUNoYXRUb2tlbnNDb25zdW1wdGlvbjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgY29sbGFwc2VSZWZlcmVuY2VzOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBhdXRvbWF0aWNTY3JvbGw6IHouYm9vbGVhbigpLm9wdGlvbmFsKClcbn0pO1xuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGF1ZGl0U2V0dGluZ3Mgb2JqZWN0XG5jb25zdCBhdWRpdFNldHRpbmdzU2NoZW1hID0gei5vYmplY3Qoe1xuICBpc3N1ZVR5cGVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGxvZ0NvbnRlbnQ6IHouYm9vbGVhbigpLFxufSk7XG4vLyBEZWZpbmUgdGhlIFNhdmVkQ2hhdFNldHRpbmdzIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBTYXZlZENoYXRTZXR0aW5nc1xuICBleHRlbmRzIHouaW5mZXI8dHlwZW9mIHNhdmVkQ2hhdFNldHRpbmdzU2NoZW1hPiB7fVxuXG4vLyBEZWZpbmUgdGhlIFpvZCByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGVudGlyZSBDaGF0Q29uZmlnIG9iamVjdFxuZXhwb3J0IGNvbnN0IGNoYXRDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbm5lY3Rpb25TZXR0aW5nczogY29ubmVjdGlvblNldHRpbmdzU2NoZW1hLFxuICBkZWZhdWx0VmFsdWVzOiBkZWZhdWx0VmFsdWVzU2NoZW1hLFxuICBtb2RlU2V0dGluZ3M6IG1vZGVTZXR0aW5nc1NjaGVtYSxcbiAgdWlTZXR0aW5nczogdWlTZXR0aW5nc1NjaGVtYSxcbiAgc2F2ZWRDaGF0U2V0dGluZ3M6IHNhdmVkQ2hhdFNldHRpbmdzU2NoZW1hLFxuICBnbG9iYWxTZXR0aW5nczogZ2xvYmFsU2V0dGluZ3NTY2hlbWEsXG4gIGF1ZGl0U2V0dGluZ3M6IGF1ZGl0U2V0dGluZ3NTY2hlbWEsXG4gIGFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3M6IGFkZGl0aW9uYWxTZXJ2aWNlU2V0dGluZ3NTY2hlbWEsXG4gIGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXM6IGFkZGl0aW9uYWxXb3JrZmxvd1Byb3BlcnRpZXNTY2hlbWEsXG59KTtcbi8vIERlZmluZSB0aGUgQ2hhdENvbmZpZyBpbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdENvbmZpZyBleHRlbmRzIHouaW5mZXI8dHlwZW9mIGNoYXRDb25maWdTY2hlbWE+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFBheWxvYWQge1xuICBkZWJ1ZzogYm9vbGVhbjtcbiAgZnVuY3Rpb25zOiBzdHJpbmdbXTtcbiAgaGlzdG9yeTogQ2hhdE1lc3NhZ2VbXTtcbiAgc2VydmljZVNldHRpbmdzOiBTZXJ2aWNlU2V0dGluZ3M7XG4gIGFwcFF1ZXJ5OiB7XG4gICAgYXBwOiBzdHJpbmc7XG4gICAgcXVlcnk6IFF1ZXJ5IHwgdW5kZWZpbmVkO1xuICAgIHRhcmdldFVybD86IHN0cmluZztcbiAgICBhY2Nlc3NUb2tlbj86IHN0cmluZztcbiAgfTtcbiAgaW5zdGFuY2VJZDogc3RyaW5nO1xuICBjaGF0SWQ6IHN0cmluZztcbiAgZ2VuZXJpY0NoYXRFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk1lc3NhZ2UgPSB7XG4gIGd1aWQ6IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIGRpc3BsYXlWYWx1ZT86IHN0cmluZztcbiAgZXhlY3V0aW9uVGltZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dENodW5rc09wdGlvbnMge1xuICBleHRlbmRNb2RlPzogXCJOb25lXCIgfCBcIlNlbnRlbmNlXCIgfCBcIkNoYXJzXCI7XG4gIGV4dGVuZFNjb3BlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1b3RhIHtcbiAgbGFzdFJlcXVlc3Q6IHN0cmluZztcbiAgcHJvbXB0VG9rZW5Db3VudDogbnVtYmVyO1xuICBjb21wbGV0aW9uVG9rZW5Db3VudDogbnVtYmVyO1xuICBwZXJpb2RUb2tlbnM6IG51bWJlcjtcbiAgcmVzZXRIb3VyczogbnVtYmVyO1xuICB0b2tlbkNvdW50OiBudW1iZXI7XG4gIG5leHRSZXNldDogc3RyaW5nO1xuICBsYXN0UmVzZXRVVEM6IHN0cmluZztcbiAgbmV4dFJlc2V0VVRDOiBzdHJpbmc7XG4gIG1heFF1b3RhUmVhY2hlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0ZWRBY3Rpb24ge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbml0Q2hhdCB7XG4gIG1lc3NhZ2VzOiBSYXdNZXNzYWdlW107XG59XG5cbi8qKlxuICogTGlzdCBvZiBldmVudHMgZGF0YSB0aGF0IGNhbiBiZSBlbWl0dGVkIGJ5IHRoZSB3ZWJzb2NrZXQgY2hhdCBlbmRwb2ludFxuICovXG5leHBvcnQgdHlwZSBTdWdnZXN0ZWRBY3Rpb25zRXZlbnQgPSB7IHN1Z2dlc3RlZEFjdGlvbnM6IFN1Z2dlc3RlZEFjdGlvbltdIH07XG5leHBvcnQgdHlwZSBRdW90YUV2ZW50ID0geyBxdW90YTogUXVvdGEgfTtcbmV4cG9ydCB0eXBlIE1lc3NhZ2VFdmVudCA9IHsgZGVsdGE6IHN0cmluZzsgbWVzc2FnZUlkOiBzdHJpbmcgfTtcbmV4cG9ydCB0eXBlIENvbnRleHRNZXNzYWdlRXZlbnQgPSB7IGNvbnRlbnQ6IHN0cmluZzsgYWRkaXRpb25hbFByb3BlcnRpZXM6IENoYXRDb250ZXh0QXR0YWNobWVudCB9O1xuZXhwb3J0IHR5cGUgRXJyb3JFdmVudCA9IHN0cmluZztcbmV4cG9ydCB0eXBlIEFjdGlvblN0YXJ0RXZlbnQgPSB7IGd1aWQ6IHN0cmluZzsgZGlzcGxheU5hbWU6IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgQWN0aW9uUmVzdWx0RXZlbnQgPSB7IGd1aWQ6IHN0cmluZzsgZGlzcGxheVZhbHVlOiBzdHJpbmcgfTtcbmV4cG9ydCB0eXBlIEFjdGlvblN0b3BFdmVudCA9IHsgZ3VpZDogc3RyaW5nOyBleGVjdXRpb25UaW1lOiBudW1iZXIgfTtcbmV4cG9ydCB0eXBlIEhpc3RvcnlFdmVudCA9IHsgaGlzdG9yeTogUmF3TWVzc2FnZVtdOyBleGVjdXRpb25UaW1lOiBzdHJpbmc7IGV4ZWN1dGlvblRpbWVNaWxsaXNlY29uZHM/OiBudW1iZXIgfTtcbmV4cG9ydCB0eXBlIERlYnVnTWVzc2FnZUV2ZW50ID0gRGVidWdNZXNzYWdlO1xuXG4vKipcbiAqIERhdGEgZW1pdHRlZCBieSB0aGUgaHR0cCBjaGF0IGVuZHBvaW50XG4gKi9cbmV4cG9ydCB0eXBlIEh0dHBDaGF0UmVzcG9uc2UgPSB7XG4gIHF1b3RhOiBRdW90YTtcbiAgc3VnZ2VzdGVkQWN0aW9uczogU3VnZ2VzdGVkQWN0aW9uW107XG4gIGRlYnVnOiBhbnk7XG4gIGNvbnRleHQ6IHsgY29udGVudDogc3RyaW5nOyBhZGRpdGlvbmFsUHJvcGVydGllczogQ2hhdENvbnRleHRBdHRhY2htZW50IH1bXTtcbiAgYWN0aW9uczogQWN0aW9uTWVzc2FnZVtdO1xuICBoaXN0b3J5OiBSYXdNZXNzYWdlW107XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcbiAgZXhlY3V0aW9uVGltZU1pbGxpc2Vjb25kczogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBUb2tlbkNvbnN1bXB0aW9uIHtcbiAgcGVyY2VudGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJUb2tlbkNvbnN1bXB0aW9uIGV4dGVuZHMgVG9rZW5Db25zdW1wdGlvbiB7XG4gIG5leHRSZXNldERhdGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGF0VXNhZ2VNZXRyaWNzIHtcbiAgdG90YWxUb2tlbkNvdW50OiBudW1iZXI7XG4gIHByb21wdFRva2VuQ291bnQ6IG51bWJlcjtcbiAgY29tcGxldGlvblRva2VuQ291bnQ6IG51bWJlcjtcbiAgdG9rZW5pemVyVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEt2T2JqZWN0IHtcbiAgZGF0YToge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7IC8vIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgfTtcbiAgdHlwZTogXCJLVlwiO1xuICBpc0Vycm9yOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RPYmplY3Qge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IFwiTElTVFwiO1xuICBpc0Vycm9yOiBib29sZWFuO1xuICBpdGVtczogKEt2T2JqZWN0IHwgTGlzdE9iamVjdClbXTtcbiAgZXhwYW5kZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIERlYnVnTWVzc2FnZSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgY2hhdElkOiBzdHJpbmc7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIGRlYnVnTWVzc2FnZUlkOiBzdHJpbmc7XG4gICRleHBhbmRlZD86IGJvb2xlYW47XG4gICRsb2FkaW5nPzogYm9vbGVhbjtcbiAgJGRldGFpbHM/OiBMaXN0T2JqZWN0W107XG59XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VIYW5kbGVyPFQ+ID0ge1xuICBoYW5kbGVyOiAoZGF0YTogVCkgPT4gdm9pZDtcbiAgaXNHbG9iYWxIYW5kbGVyOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBEYXRhIGVtaXR0ZWQgYnkgdGhlIHNhdmVkIGNoYXQgZW5kcG9pbnRzXG4gKi9cbmV4cG9ydCB0eXBlIERlbGV0ZVNhdmVkQ2hhdFJlc3BvbnNlID0ge1xuICBkZWxldGVDb3VudDogbnVtYmVyO1xuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XG4gIGV4ZWN1dGlvblRpbWVNaWxsaXNlY29uZHM6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBTYXZlZENoYXRSZXNwb25zZSA9IHtcbiAgc2F2ZWRDaGF0OiBTYXZlZENoYXQ7XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcbiAgZXhlY3V0aW9uVGltZU1pbGxpc2Vjb25kczogbnVtYmVyO1xufTtcbi8qKiAqL1xuXG5leHBvcnQgdHlwZSBQbHVnaW5WZXJzaW9uID0ge1xuICBwbHVnaW5WZXJzaW9uOiBzdHJpbmc7XG4gIG1ham9yOiBudW1iZXI7XG4gIG1pbm9yOiBudW1iZXI7XG4gIGJ1aWxkOiBudW1iZXI7XG59XG4iXX0=
@@ -118,34 +118,34 @@ export class AssistantUtils {
118
118
  */
119
119
  getTimeKey(date) {
120
120
  if (isToday(date)) {
121
- return this.transloco.translate('chat.today');
121
+ return 'chat.today';
122
122
  }
123
123
  else if (isYesterday(date)) {
124
- return this.transloco.translate('chat.yesterday');
124
+ return 'chat.yesterday';
125
125
  }
126
126
  else if (isThisWeek(date)) {
127
- return this.transloco.translate('chat.thisWeek');
127
+ return 'chat.thisWeek';
128
128
  }
129
129
  else if (differenceInDays(endOfYesterday(), date) <= 7) {
130
- return this.transloco.translate('chat.lastWeek');
130
+ return 'chat.lastWeek';
131
131
  }
132
132
  else if (isThisMonth(date)) {
133
- return this.transloco.translate('chat.thisMonth');
133
+ return 'chat.thisMonth';
134
134
  }
135
135
  else if (differenceInMonths(endOfYesterday(), date) <= 1) {
136
- return this.transloco.translate('chat.lastMonth');
136
+ return 'chat.lastMonth';
137
137
  }
138
138
  else if (isThisQuarter(date)) {
139
- return this.transloco.translate('chat.thisQuarter');
139
+ return 'chat.thisQuarter';
140
140
  }
141
141
  else if (differenceInMonths(endOfYesterday(), date) <= 3) {
142
- return this.transloco.translate('chat.lastQuarter');
142
+ return 'chat.lastQuarter';
143
143
  }
144
144
  else if (isThisYear(date)) {
145
- return this.transloco.translate('chat.thisYear');
145
+ return 'chat.thisYear';
146
146
  }
147
147
  else if (differenceInYears(endOfYesterday(), date) === 1) {
148
- return this.transloco.translate('chat.lastYear');
148
+ return 'chat.lastYear';
149
149
  }
150
150
  else {
151
151
  return format(date, 'yyyy');
@@ -167,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
167
167
  providedIn: 'root'
168
168
  }]
169
169
  }] });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L3V0aWxzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsTUFBTSxFQUNOLFdBQVcsRUFDWCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixPQUFPLEVBQ1AsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUM7O0FBTWxCLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBS1csWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNwQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0F1SnpEO0lBckpDOzs7Ozs7O09BT0c7SUFDSCwyQkFBMkIsQ0FBQyxLQUErQixFQUFFLFNBQWlCO1FBQzVFLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFpQyxDQUFDLEtBQStCO1FBQy9ELElBQUks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QUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkQsQ0FBQzthQUFNLElBQUksaUJBQWlCLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVIOzs7T0FHRztJQUNILG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBekpVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTE9DQUxFX0lELCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gXCJAanN2ZXJzZS90cmFuc2xvY29cIjtcbmltcG9ydCB7XG4gIGRpZmZlcmVuY2VJbkRheXMsXG4gIGRpZmZlcmVuY2VJbk1vbnRocyxcbiAgZGlmZmVyZW5jZUluWWVhcnMsXG4gIGVuZE9mWWVzdGVyZGF5LFxuICBmb3JtYXQsXG4gIGlzVGhpc01vbnRoLFxuICBpc1RoaXNRdWFydGVyLFxuICBpc1RoaXNXZWVrLFxuICBpc1RoaXNZZWFyLFxuICBpc1RvZGF5LFxuICBpc1llc3RlcmRheSxcbiAgcGFyc2VJU08sXG4gIHRvRGF0ZVxufSBmcm9tIFwiZGF0ZS1mbnNcIjtcbmltcG9ydCB7IENoYXRNZXNzYWdlIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFzc2lzdGFudFV0aWxzIHtcblxuICByZWFkb25seSBsb2NhbElEID0gaW5qZWN0KExPQ0FMRV9JRCwge29wdGlvbmFsOiB0cnVlfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xvY28gPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgcmFuayAoMS1iYXNlZCBpbmRleCkgb2YgYSBtZXNzYWdlIHdpdGhpbiBhIGNoYXQgaGlzdG9yeSBhcnJheSBiYXNlZCBvbiBpdHMgbWVzc2FnZSBJRC5cbiAgICogSWYgdGhlIG1lc3NhZ2UgaXMgbm90IGZvdW5kLCByZXR1cm5zIC0xLlxuICAgKlxuICAgKiBAcGFyYW0gYXJyYXkgLSBBbiBhcnJheSBvZiBgQ2hhdE1lc3NhZ2VgIG9iamVjdHMgb3IgYHVuZGVmaW5lZGAuIFJlcHJlc2VudHMgdGhlIGNoYXQgaGlzdG9yeS5cbiAgICogQHBhcmFtIG1lc3NhZ2VJZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbWVzc2FnZSB0byBsb2NhdGUuXG4gICAqIEByZXR1cm5zIFRoZSAxLWJhc2VkIGluZGV4IG9mIHRoZSBtZXNzYWdlIGluIHRoZSBhcnJheSwgb3IgLTEgaWYgdGhlIG1lc3NhZ2UgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgZ2V0TWVzc2FnZVJhbmtJbkNoYXRIaXN0b3J5KGFycmF5OiBDaGF0TWVzc2FnZVtdfCB1bmRlZmluZWQsIG1lc3NhZ2VJZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmRleCA9IGFycmF5Py5maW5kSW5kZXgobSA9PiBtLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLm1lc3NhZ2VJZCA9PT0gbWVzc2FnZUlkKSA/PyAtMTtcbiAgICByZXR1cm4gaW5kZXggPT09IC0xID8gLTEgOiBpbmRleCArIDE7XG4gIH1cblxuICAvKipcbiAgICogVHJhdmVyc2UgdGhlIGFycmF5IGZyb20gdGhlIGVuZCBhbmQgdHJhY2sgdGhlIGZpcnN0ICdhc3Npc3RhbnQnIG1lc3NhZ2UgYW1vbmcgdGhlIGxhc3QgZ3JvdXAgb2YgXCJhc3Npc3RhbnRcIiBtZXNzYWdlcyB3aGVyZSBkaXNwbGF5IGlzIHRydWVcbiAgICogQHBhcmFtIGFycmF5IFRoZSBhcnJheSBvZiBDaGF0TWVzc2FnZSB0byB0cmF2ZXJzZVxuICAgKiBAcmV0dXJucyBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IHZpc2libGUgYXNzaXN0YW50IG1lc3NhZ2UgYW1vbmcgdGhlIGxhc3QgZ3JvdXAgb2YgXCJhc3Npc3RhbnRcIiBtZXNzYWdlcyBpbiB0aGUgYXJyYXlcbiAgICovXG4gIGZpcnN0VmlzaWJsZUFzc2lzdGFudE1lc3NhZ2VJbmRleChhcnJheTogQ2hhdE1lc3NhZ2VbXXwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICBpZiAoIWFycmF5KSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGxldCBpbmRleCA9IGFycmF5Lmxlbmd0aCAtIDE7XG4gICAgbGV0IGZpcnN0VmlzaWJsZUFzc2lzdGFudE1lc3NhZ2VJbmRleCA9IC0xO1xuICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGFycmF5W2luZGV4XS5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgaWYgKGFycmF5W2luZGV4XS5hZGRpdGlvbmFsUHJvcGVydGllcy5kaXNwbGF5ID09PSB0cnVlKSB7XG4gICAgICAgIGZpcnN0VmlzaWJsZUFzc2lzdGFudE1lc3NhZ2VJbmRleCA9IGluZGV4O1xuICAgICAgfVxuICAgICAgaW5kZXgtLTtcbiAgICB9XG4gICAgcmV0dXJuIGZpcnN0VmlzaWJsZUFzc2lzdGFudE1lc3NhZ2VJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmF2ZXJzZSB0aGUgYXJyYXkgZnJvbSB0aGUgZW5kIGFuZCBwaWNrIHRoZSBsYXN0ICdhc3Npc3RhbnQnIG1lc3NhZ2UgYW1vbmcgdGhlIGxhc3QgZ3JvdXAgb2YgXCJhc3Npc3RhbnRcIiBtZXNzYWdlcyB3aGVyZSBkaXNwbGF5IGlzIHRydWVcbiAgICogQHBhcmFtIGFycmF5IFRoZSBhcnJheSBvZiBDaGF0TWVzc2FnZSB0byB0cmF2ZXJzZVxuICAgKiAgIEByZXR1cm5zIFRoZSBpbmRleCBvZiB0aGUgbGFzdCB2aXNpYmxlIGFzc2lzdGFudCBtZXNzYWdlIGFtb25nIHRoZSBsYXN0IGdyb3VwIG9mIFwiYXNzaXN0YW50XCIgbWVzc2FnZXMgaW4gdGhlIGFycmF5XG4gICAqL1xuICBsYXN0VmlzaWJsZUFzc2lzdGFudE1lc3NhZ2VJbmRleChhcnJheTogQ2hhdE1lc3NhZ2VbXXwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICBpZiAoIWFycmF5KSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGxldCBpbmRleCA9IGFycmF5Lmxlbmd0aCAtIDE7XG4gICAgbGV0IGxhc3RWaXNpYmxlQXNzaXN0YW50TWVzc2FnZUluZGV4ID0gLTE7XG4gICAgd2hpbGUgKGluZGV4ID49IDAgJiYgYXJyYXlbaW5kZXhdLnJvbGUgPT09ICdhc3Npc3RhbnQnKSB7XG4gICAgICBpZiAoYXJyYXlbaW5kZXhdLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLmRpc3BsYXkgPT09IHRydWUpIHtcbiAgICAgICAgbGFzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXggPSBpbmRleDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpbmRleC0tO1xuICAgIH1cbiAgICByZXR1cm4gbGFzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGEgZGF0ZSBzdHJpbmcgaW4gVVRDIHRvIGEgbG9jYWwgZGF0ZSBzdHJpbmdcbiAgICogQHBhcmFtIHZhbHVlIERhdGUgc3RyaW5nIGluIFVUQyB0byBmb3JtYXRcbiAgICogQHJldHVybnMgQSBmb3JtYXR0ZWQgbG9jYWwgZGF0ZSBzdHJpbmdcbiAgICovXG4gIGZvcm1hdERhdGVUaW1lKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2FsRGF0ZSA9IHRvRGF0ZShwYXJzZUlTTyh2YWx1ZSkpO1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHVuZGVmaW5lZCwge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsXG4gICAgICB0aW1lWm9uZU5hbWU6ICdzaG9ydCdcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChsb2NhbERhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRha2VzIGEgdGV4dCBwcm9tcHQgdGhhdCBtYXkgY29udGFpbiBwbGFjZWhvbGRlcnMgZm9yIHZhcmlhYmxlc1xuICAgKiBhbmQgcmVwbGFjZXMgdGhlc2UgcGxhY2Vob2xkZXJzIGlmIGl0IGZpbmRzIGEgbWF0Y2ggaW4gdGhlIGdpdmVuXG4gICAqIGNvbnRleHQgb2JqZWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBwID0gXCJIZWxsbywgW1t1c2VyLm5hbWVdXSEgWW91IGhhdmUgW1t1c2VyLm5vdGlmaWNhdGlvbnMubGVuZ3RoXV0gbmV3IG5vdGlmaWNhdGlvbnMuXCI7XG4gICAqIGNvbnN0IGNvbnRleHQgPSB7XG4gICAqICAgICB1c2VyOiB7XG4gICAqICAgICAgICAgbmFtZTogXCJBbGljZVwiLFxuICAgKiAgICAgICAgIG5vdGlmaWNhdGlvbnM6IFtcIk1lc3NhZ2UgZnJvbSBCb2JcIiwgXCJSZW1pbmRlciBmb3IgbWVldGluZ1wiXVxuICAgKiAgICAgfVxuICAgKiB9O1xuICAgKiBjb25zdCBmb3JtYXR0ZWRQcm9tcHQgPSBmb3JtYXRQcm9tcHQocCwgY29udGV4dCk7XG4gICAqIGNvbnNvbGUubG9nKGZvcm1hdHRlZFByb21wdCk7IC8vIE91dHB1dDogXCJIZWxsbywgQWxpY2UhIFlvdSBoYXZlIDIgbmV3IG5vdGlmaWNhdGlvbnMuXCJcbiAgICovXG4gIHN0YXRpYyBmb3JtYXRQcm9tcHQocHJvbXB0OiBzdHJpbmcsIGNvbnRleHQ6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHByb21wdC5yZXBsYWNlKFxuICAgICAgL1xcW1xcWyguKj8pXFxdXFxdL2csXG4gICAgICAobWF0Y2gsIGV4cHIpID0+IHtcbiAgICAgIC8vIFNpbXBsZSBkb3Qgbm90YXRpb24gcmVzb2x2ZXJcbiAgICAgIGNvbnN0IGtleXMgPSBleHByLnRyaW0oKS5zcGxpdChcIi5cIik7XG4gICAgICBsZXQgdmFsdWUgPSBjb250ZXh0O1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIGtleSBpbiB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlW2tleV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlID8/IG1hdGNoO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBhIHRpbWUtYmFzZWQga2V5IGZvciBhIGdpdmVuIGRhdGUgdG8gYmUgdXNlZCBmb3IgdHJhbnNsYXRpb25zIG9yIGZvcm1hdHRpbmcuXG4gICAqIFRoZSBrZXkgcmVwcmVzZW50cyBhIHJlbGF0aXZlIHRpbWUgcGVyaW9kIHN1Y2ggYXMgXCJ0b2RheVwiLCBcInllc3RlcmRheVwiLCBcInRoaXMgd2Vla1wiLCBldGMuXG4gICAqIElmIHRoZSBkYXRlIGRvZXMgbm90IGZhbGwgaW50byBhbnkgcHJlZGVmaW5lZCByZWxhdGl2ZSB0aW1lIHBlcmlvZCwgaXQgcmV0dXJucyB0aGUgeWVhciBhcyBhIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGUgLSBUaGUgZGF0ZSBmb3Igd2hpY2ggdGhlIHRpbWUga2V5IGlzIHRvIGJlIGRldGVybWluZWQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdGltZSBrZXksIHdoaWNoIGNhbiBiZSB1c2VkIGZvciB0cmFuc2xhdGlvbiBvciBkaXNwbGF5IHB1cnBvc2VzLlxuICAgKi9cbiAgZ2V0VGltZUtleShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgIGlmIChpc1RvZGF5KGRhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXQudG9kYXknKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNZZXN0ZXJkYXkoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnY2hhdC55ZXN0ZXJkYXknKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNUaGlzV2VlayhkYXRlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdjaGF0LnRoaXNXZWVrJyk7XG4gICAgICB9IGVsc2UgaWYgKGRpZmZlcmVuY2VJbkRheXMoZW5kT2ZZZXN0ZXJkYXkoKSwgZGF0ZSkgPD0gNykge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdjaGF0Lmxhc3RXZWVrJyk7XG4gICAgICB9IGVsc2UgaWYgKGlzVGhpc01vbnRoKGRhdGUpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXQudGhpc01vbnRoJyk7XG4gICAgICB9IGVsc2UgaWYgKGRpZmZlcmVuY2VJbk1vbnRocyhlbmRPZlllc3RlcmRheSgpLCBkYXRlKSA8PSAxKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jby50cmFuc2xhdGUoJ2NoYXQubGFzdE1vbnRoJyk7XG4gICAgICB9IGVsc2UgaWYgKGlzVGhpc1F1YXJ0ZXIoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnY2hhdC50aGlzUXVhcnRlcicpO1xuICAgICAgfSBlbHNlIGlmIChkaWZmZXJlbmNlSW5Nb250aHMoZW5kT2ZZZXN0ZXJkYXkoKSwgZGF0ZSkgPD0gMykge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdjaGF0Lmxhc3RRdWFydGVyJyk7XG4gICAgICB9IGVsc2UgaWYgKGlzVGhpc1llYXIoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsb2NvLnRyYW5zbGF0ZSgnY2hhdC50aGlzWWVhcicpO1xuICAgICAgfSBlbHNlIGlmIChkaWZmZXJlbmNlSW5ZZWFycyhlbmRPZlllc3RlcmRheSgpLCBkYXRlKSA9PT0gMSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY28udHJhbnNsYXRlKCdjaGF0Lmxhc3RZZWFyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZm9ybWF0KGRhdGUsICd5eXl5Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgbG9jYWxlIG5hbWUuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGxvY2FsZSBuYW1lIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgZ2V0Q3VycmVudExvY2FsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbElEIHx8ICcnO1xuICB9XG59XG4iXX0=
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L3V0aWxzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsTUFBTSxFQUNOLFdBQVcsRUFDWCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixPQUFPLEVBQ1AsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUM7O0FBTWxCLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBS1csWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNwQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0F1SnpEO0lBckpDOzs7Ozs7O09BT0c7SUFDSCwyQkFBMkIsQ0FBQyxLQUErQixFQUFFLFNBQWlCO1FBQzVFLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFpQyxDQUFDLEtBQStCO1FBQy9ELElBQUks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QUNILENBQUM7SUFFSDs7O09BR0c7SUFDSCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQXpKVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIExPQ0FMRV9JRCwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tIFwiQGpzdmVyc2UvdHJhbnNsb2NvXCI7XG5pbXBvcnQge1xuICBkaWZmZXJlbmNlSW5EYXlzLFxuICBkaWZmZXJlbmNlSW5Nb250aHMsXG4gIGRpZmZlcmVuY2VJblllYXJzLFxuICBlbmRPZlllc3RlcmRheSxcbiAgZm9ybWF0LFxuICBpc1RoaXNNb250aCxcbiAgaXNUaGlzUXVhcnRlcixcbiAgaXNUaGlzV2VlayxcbiAgaXNUaGlzWWVhcixcbiAgaXNUb2RheSxcbiAgaXNZZXN0ZXJkYXksXG4gIHBhcnNlSVNPLFxuICB0b0RhdGVcbn0gZnJvbSBcImRhdGUtZm5zXCI7XG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBc3Npc3RhbnRVdGlscyB7XG5cbiAgcmVhZG9ubHkgbG9jYWxJRCA9IGluamVjdChMT0NBTEVfSUQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsb2NvID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIHJhbmsgKDEtYmFzZWQgaW5kZXgpIG9mIGEgbWVzc2FnZSB3aXRoaW4gYSBjaGF0IGhpc3RvcnkgYXJyYXkgYmFzZWQgb24gaXRzIG1lc3NhZ2UgSUQuXG4gICAqIElmIHRoZSBtZXNzYWdlIGlzIG5vdCBmb3VuZCwgcmV0dXJucyAtMS5cbiAgICpcbiAgICogQHBhcmFtIGFycmF5IC0gQW4gYXJyYXkgb2YgYENoYXRNZXNzYWdlYCBvYmplY3RzIG9yIGB1bmRlZmluZWRgLiBSZXByZXNlbnRzIHRoZSBjaGF0IGhpc3RvcnkuXG4gICAqIEBwYXJhbSBtZXNzYWdlSWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG1lc3NhZ2UgdG8gbG9jYXRlLlxuICAgKiBAcmV0dXJucyBUaGUgMS1iYXNlZCBpbmRleCBvZiB0aGUgbWVzc2FnZSBpbiB0aGUgYXJyYXksIG9yIC0xIGlmIHRoZSBtZXNzYWdlIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIGdldE1lc3NhZ2VSYW5rSW5DaGF0SGlzdG9yeShhcnJheTogQ2hhdE1lc3NhZ2VbXXwgdW5kZWZpbmVkLCBtZXNzYWdlSWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgaW5kZXggPSBhcnJheT8uZmluZEluZGV4KG0gPT4gbS5hZGRpdGlvbmFsUHJvcGVydGllcy5tZXNzYWdlSWQgPT09IG1lc3NhZ2VJZCkgPz8gLTE7XG4gICAgcmV0dXJuIGluZGV4ID09PSAtMSA/IC0xIDogaW5kZXggKyAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlIHRoZSBhcnJheSBmcm9tIHRoZSBlbmQgYW5kIHRyYWNrIHRoZSBmaXJzdCAnYXNzaXN0YW50JyBtZXNzYWdlIGFtb25nIHRoZSBsYXN0IGdyb3VwIG9mIFwiYXNzaXN0YW50XCIgbWVzc2FnZXMgd2hlcmUgZGlzcGxheSBpcyB0cnVlXG4gICAqIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkgb2YgQ2hhdE1lc3NhZ2UgdG8gdHJhdmVyc2VcbiAgICogQHJldHVybnMgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCB2aXNpYmxlIGFzc2lzdGFudCBtZXNzYWdlIGFtb25nIHRoZSBsYXN0IGdyb3VwIG9mIFwiYXNzaXN0YW50XCIgbWVzc2FnZXMgaW4gdGhlIGFycmF5XG4gICAqL1xuICBmaXJzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXgoYXJyYXk6IENoYXRNZXNzYWdlW118IHVuZGVmaW5lZCk6IG51bWJlciB7XG4gICAgaWYgKCFhcnJheSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBsZXQgaW5kZXggPSBhcnJheS5sZW5ndGggLSAxO1xuICAgIGxldCBmaXJzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXggPSAtMTtcbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBhcnJheVtpbmRleF0ucm9sZSA9PT0gJ2Fzc2lzdGFudCcpIHtcbiAgICAgIGlmIChhcnJheVtpbmRleF0uYWRkaXRpb25hbFByb3BlcnRpZXMuZGlzcGxheSA9PT0gdHJ1ZSkge1xuICAgICAgICBmaXJzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXggPSBpbmRleDtcbiAgICAgIH1cbiAgICAgIGluZGV4LS07XG4gICAgfVxuICAgIHJldHVybiBmaXJzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVHJhdmVyc2UgdGhlIGFycmF5IGZyb20gdGhlIGVuZCBhbmQgcGljayB0aGUgbGFzdCAnYXNzaXN0YW50JyBtZXNzYWdlIGFtb25nIHRoZSBsYXN0IGdyb3VwIG9mIFwiYXNzaXN0YW50XCIgbWVzc2FnZXMgd2hlcmUgZGlzcGxheSBpcyB0cnVlXG4gICAqIEBwYXJhbSBhcnJheSBUaGUgYXJyYXkgb2YgQ2hhdE1lc3NhZ2UgdG8gdHJhdmVyc2VcbiAgICogICBAcmV0dXJucyBUaGUgaW5kZXggb2YgdGhlIGxhc3QgdmlzaWJsZSBhc3Npc3RhbnQgbWVzc2FnZSBhbW9uZyB0aGUgbGFzdCBncm91cCBvZiBcImFzc2lzdGFudFwiIG1lc3NhZ2VzIGluIHRoZSBhcnJheVxuICAgKi9cbiAgbGFzdFZpc2libGVBc3Npc3RhbnRNZXNzYWdlSW5kZXgoYXJyYXk6IENoYXRNZXNzYWdlW118IHVuZGVmaW5lZCk6IG51bWJlciB7XG4gICAgaWYgKCFhcnJheSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBsZXQgaW5kZXggPSBhcnJheS5sZW5ndGggLSAxO1xuICAgIGxldCBsYXN0VmlzaWJsZUFzc2lzdGFudE1lc3NhZ2VJbmRleCA9IC0xO1xuICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGFycmF5W2luZGV4XS5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgaWYgKGFycmF5W2luZGV4XS5hZGRpdGlvbmFsUHJvcGVydGllcy5kaXNwbGF5ID09PSB0cnVlKSB7XG4gICAgICAgIGxhc3RWaXNpYmxlQXNzaXN0YW50TWVzc2FnZUluZGV4ID0gaW5kZXg7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaW5kZXgtLTtcbiAgICB9XG4gICAgcmV0dXJuIGxhc3RWaXNpYmxlQXNzaXN0YW50TWVzc2FnZUluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBhIGRhdGUgc3RyaW5nIGluIFVUQyB0byBhIGxvY2FsIGRhdGUgc3RyaW5nXG4gICAqIEBwYXJhbSB2YWx1ZSBEYXRlIHN0cmluZyBpbiBVVEMgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIEEgZm9ybWF0dGVkIGxvY2FsIGRhdGUgc3RyaW5nXG4gICAqL1xuICBmb3JtYXREYXRlVGltZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBsb2NhbERhdGUgPSB0b0RhdGUocGFyc2VJU08odmFsdWUpKTtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh1bmRlZmluZWQsIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIHNlY29uZDogJzItZGlnaXQnLFxuICAgICAgdGltZVpvbmVOYW1lOiAnc2hvcnQnXG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQobG9jYWxEYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIHRleHQgcHJvbXB0IHRoYXQgbWF5IGNvbnRhaW4gcGxhY2Vob2xkZXJzIGZvciB2YXJpYWJsZXNcbiAgICogYW5kIHJlcGxhY2VzIHRoZXNlIHBsYWNlaG9sZGVycyBpZiBpdCBmaW5kcyBhIG1hdGNoIGluIHRoZSBnaXZlblxuICAgKiBjb250ZXh0IG9iamVjdC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgcCA9IFwiSGVsbG8sIFtbdXNlci5uYW1lXV0hIFlvdSBoYXZlIFtbdXNlci5ub3RpZmljYXRpb25zLmxlbmd0aF1dIG5ldyBub3RpZmljYXRpb25zLlwiO1xuICAgKiBjb25zdCBjb250ZXh0ID0ge1xuICAgKiAgICAgdXNlcjoge1xuICAgKiAgICAgICAgIG5hbWU6IFwiQWxpY2VcIixcbiAgICogICAgICAgICBub3RpZmljYXRpb25zOiBbXCJNZXNzYWdlIGZyb20gQm9iXCIsIFwiUmVtaW5kZXIgZm9yIG1lZXRpbmdcIl1cbiAgICogICAgIH1cbiAgICogfTtcbiAgICogY29uc3QgZm9ybWF0dGVkUHJvbXB0ID0gZm9ybWF0UHJvbXB0KHAsIGNvbnRleHQpO1xuICAgKiBjb25zb2xlLmxvZyhmb3JtYXR0ZWRQcm9tcHQpOyAvLyBPdXRwdXQ6IFwiSGVsbG8sIEFsaWNlISBZb3UgaGF2ZSAyIG5ldyBub3RpZmljYXRpb25zLlwiXG4gICAqL1xuICBzdGF0aWMgZm9ybWF0UHJvbXB0KHByb21wdDogc3RyaW5nLCBjb250ZXh0OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBwcm9tcHQucmVwbGFjZShcbiAgICAgIC9cXFtcXFsoLio/KVxcXVxcXS9nLFxuICAgICAgKG1hdGNoLCBleHByKSA9PiB7XG4gICAgICAvLyBTaW1wbGUgZG90IG5vdGF0aW9uIHJlc29sdmVyXG4gICAgICBjb25zdCBrZXlzID0gZXhwci50cmltKCkuc3BsaXQoXCIuXCIpO1xuICAgICAgbGV0IHZhbHVlID0gY29udGV4dDtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiBrZXkgaW4gdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZVtrZXldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZSA/PyBtYXRjaDtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgYSB0aW1lLWJhc2VkIGtleSBmb3IgYSBnaXZlbiBkYXRlIHRvIGJlIHVzZWQgZm9yIHRyYW5zbGF0aW9ucyBvciBmb3JtYXR0aW5nLlxuICAgKiBUaGUga2V5IHJlcHJlc2VudHMgYSByZWxhdGl2ZSB0aW1lIHBlcmlvZCBzdWNoIGFzIFwidG9kYXlcIiwgXCJ5ZXN0ZXJkYXlcIiwgXCJ0aGlzIHdlZWtcIiwgZXRjLlxuICAgKiBJZiB0aGUgZGF0ZSBkb2VzIG5vdCBmYWxsIGludG8gYW55IHByZWRlZmluZWQgcmVsYXRpdmUgdGltZSBwZXJpb2QsIGl0IHJldHVybnMgdGhlIHllYXIgYXMgYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgZm9yIHdoaWNoIHRoZSB0aW1lIGtleSBpcyB0byBiZSBkZXRlcm1pbmVkLlxuICAgKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHRpbWUga2V5LCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgdHJhbnNsYXRpb24gb3IgZGlzcGxheSBwdXJwb3Nlcy5cbiAgICovXG4gIGdldFRpbWVLZXkoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgICBpZiAoaXNUb2RheShkYXRlKSkge1xuICAgICAgICByZXR1cm4gJ2NoYXQudG9kYXknO1xuICAgICAgfSBlbHNlIGlmIChpc1llc3RlcmRheShkYXRlKSkge1xuICAgICAgICByZXR1cm4gJ2NoYXQueWVzdGVyZGF5JztcbiAgICAgIH0gZWxzZSBpZiAoaXNUaGlzV2VlayhkYXRlKSkge1xuICAgICAgICByZXR1cm4gJ2NoYXQudGhpc1dlZWsnO1xuICAgICAgfSBlbHNlIGlmIChkaWZmZXJlbmNlSW5EYXlzKGVuZE9mWWVzdGVyZGF5KCksIGRhdGUpIDw9IDcpIHtcbiAgICAgICAgcmV0dXJuICdjaGF0Lmxhc3RXZWVrJztcbiAgICAgIH0gZWxzZSBpZiAoaXNUaGlzTW9udGgoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuICdjaGF0LnRoaXNNb250aCc7XG4gICAgICB9IGVsc2UgaWYgKGRpZmZlcmVuY2VJbk1vbnRocyhlbmRPZlllc3RlcmRheSgpLCBkYXRlKSA8PSAxKSB7XG4gICAgICAgIHJldHVybiAnY2hhdC5sYXN0TW9udGgnO1xuICAgICAgfSBlbHNlIGlmIChpc1RoaXNRdWFydGVyKGRhdGUpKSB7XG4gICAgICAgIHJldHVybiAnY2hhdC50aGlzUXVhcnRlcic7XG4gICAgICB9IGVsc2UgaWYgKGRpZmZlcmVuY2VJbk1vbnRocyhlbmRPZlllc3RlcmRheSgpLCBkYXRlKSA8PSAzKSB7XG4gICAgICAgIHJldHVybiAnY2hhdC5sYXN0UXVhcnRlcic7XG4gICAgICB9IGVsc2UgaWYgKGlzVGhpc1llYXIoZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuICdjaGF0LnRoaXNZZWFyJztcbiAgICAgIH0gZWxzZSBpZiAoZGlmZmVyZW5jZUluWWVhcnMoZW5kT2ZZZXN0ZXJkYXkoKSwgZGF0ZSkgPT09IDEpIHtcbiAgICAgICAgcmV0dXJuICdjaGF0Lmxhc3RZZWFyJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgJ3l5eXknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBsb2NhbGUgbmFtZS5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgbG9jYWxlIG5hbWUgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBhdmFpbGFibGUuXG4gICAqL1xuICBnZXRDdXJyZW50TG9jYWxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvY2FsSUQgfHwgJyc7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ // Auto-generated
2
+ export const LIB_VERSION = '3.10.0';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBdXRvLWdlbmVyYXRlZFxuZXhwb3J0IGNvbnN0IExJQl9WRVJTSU9OID0gJzMuMTAuMCc7XG4iXX0=