@projectcor/maia-components 2.11.93-0 → 2.11.94-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 (146) hide show
  1. package/CHANGELOG.md +0 -62
  2. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +2 -2
  3. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +41 -28
  4. package/lib/components/atoms/Chip/Chip.js +5 -12
  5. package/lib/components/atoms/Chip/styles.js +6 -6
  6. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.styles.js +3 -7
  7. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +28 -160
  8. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +2 -6
  9. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  10. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  11. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +4 -23
  12. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +7 -15
  13. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +4 -10
  14. package/lib/components/atoms/MAIAInput/MAIAInput.js +261 -363
  15. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +8 -5
  16. package/lib/components/atoms/MAIAInput/styles.js +83 -99
  17. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
  18. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
  19. package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
  20. package/lib/components/atoms/icons/MaiaSparkleIcon.js +75 -0
  21. package/lib/components/atoms/icons/index.js +2 -12
  22. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +1 -4
  23. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -14
  24. package/lib/components/molecules/ChatAIContent/ChatAIContent.skeleton.js +3 -3
  25. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +30 -127
  26. package/lib/components/molecules/ChatAIHome/styles.js +52 -161
  27. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +83 -22
  28. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.js +2 -6
  29. package/lib/components/molecules/ChatAIMessages/newStyles.js +27 -11
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +213 -122
  31. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -18
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +13 -3
  33. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +23 -6
  34. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -1
  35. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.js +55 -0
  36. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.styles.js +46 -0
  37. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/index.js +2 -0
  38. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  39. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  40. package/lib/components/molecules/ChatFooter/ChatFooter.js +68 -40
  41. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  42. package/lib/components/molecules/Sidebar/Sidebar.js +111 -91
  43. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +16 -1
  44. package/lib/components/molecules/Sidebar/Sidebar.styles.js +34 -29
  45. package/lib/components/organisms/ChatAI/ChatAI.js +10 -17
  46. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.js +1 -8
  47. package/lib/constants/config.js +1 -4
  48. package/lib/constants/maiaTaskPanelAccess.js +4 -4
  49. package/lib/constants/permissions/index.js +2 -2
  50. package/lib/constants/permissions/utils.js +1 -4
  51. package/lib/context/cor-user.js +1 -9
  52. package/lib/context/global-context.js +1 -1
  53. package/lib/dev/DevChatAI.js +2 -2
  54. package/lib/hooks/useChatManager/useChatManager.js +560 -456
  55. package/lib/hooks/useChatMessages/useChatMessages.js +414 -236
  56. package/lib/hooks/useChats/useChats.js +21 -4
  57. package/lib/hooks/useContextMentions.js +9 -47
  58. package/lib/hooks/useContextPinPopover.js +8 -1
  59. package/lib/hooks/useEntitySearch.js +91 -277
  60. package/lib/hooks/useEvent.js +1 -2
  61. package/lib/hooks/useFrequentlyUsedActions.js +2 -4
  62. package/lib/hooks/useMentionAllowedTypes.js +8 -26
  63. package/lib/hooks/useMentionPopover.js +13 -42
  64. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  65. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -521
  66. package/lib/hooks/useProjectSummaryConfig.js +30 -23
  67. package/lib/hooks/useSlashCommands.js +2 -3
  68. package/lib/hooks/useStreamingMessage/index.js +2 -3
  69. package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
  70. package/lib/lang/br/index.js +17 -78
  71. package/lib/lang/en/index.js +17 -78
  72. package/lib/lang/es/index.js +17 -78
  73. package/lib/lang/fr/index.js +18 -77
  74. package/lib/services/appcues.js +2 -3
  75. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  76. package/lib/services/maia/Agents/getAgents.js +2 -2
  77. package/lib/services/maia/Chats/getChatsByUserId.js +6 -4
  78. package/lib/services/maia/Chats/index.js +3 -1
  79. package/lib/services/maia/Chats/markSessionAsRead.js +32 -0
  80. package/lib/services/maia/Orchestrator/orchestrator.js +7 -1
  81. package/lib/store/chatsSidebarOptimistic.js +92 -0
  82. package/lib/store/chatsStore.types.js +1 -1
  83. package/lib/store/maiaMinimizedPersistence.js +49 -0
  84. package/lib/store/sessions/activeView.js +22 -0
  85. package/lib/store/sessions/index.js +9 -0
  86. package/lib/store/sessions/sessionHitlContext.js +15 -0
  87. package/lib/store/sessions/sessionNotificationSound.js +57 -0
  88. package/lib/store/sessions/sessionNotifications.js +110 -0
  89. package/lib/store/sessions/sessionNotifications.types.js +2 -0
  90. package/lib/store/sessions/sessionStreamManager.js +576 -0
  91. package/lib/store/sessions/sessionStreamingText.js +80 -0
  92. package/lib/store/sessions/sessions.types.js +35 -0
  93. package/lib/store/sessions/useSessionMeta.js +39 -0
  94. package/lib/store/sessions/useSessionStreamingText.js +18 -0
  95. package/lib/store/sessions/useSessionsStore.js +197 -0
  96. package/lib/store/useChatsStore.js +149 -12
  97. package/lib/styles/config.js +2 -2
  98. package/lib/types/Action.js +1 -1
  99. package/lib/types/Chat.js +1 -1
  100. package/lib/types/agent.js +1 -1
  101. package/lib/types/contextMention.js +1 -1
  102. package/lib/types/global.d.js +1 -1
  103. package/lib/utils/actionCategoryMap.js +2 -6
  104. package/lib/utils/actionIconMap.js +2 -8
  105. package/lib/utils/contextMentionIcons.js +1 -29
  106. package/lib/utils/contextMentionTriggers.js +1 -3
  107. package/lib/utils/formatUnreadCount.js +6 -0
  108. package/lib/utils/renderContextMentions.js +4 -9
  109. package/lib/utils/streamActivityMessages.js +1 -2
  110. package/package.json +10 -15
  111. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +0 -128
  112. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +0 -23
  113. package/lib/components/atoms/icons/ActionCalendarIcon.js +0 -112
  114. package/lib/components/atoms/icons/ActionChatIcon.js +0 -71
  115. package/lib/components/atoms/icons/ActionTimeBackIcon.js +0 -112
  116. package/lib/components/atoms/icons/MaiaInputAddIcon.js +0 -42
  117. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +0 -29
  118. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +0 -33
  119. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +0 -35
  120. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +0 -44
  121. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +0 -29
  122. package/lib/components/atoms/icons/MaiaInputSendIcon.js +0 -29
  123. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +0 -29
  124. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +0 -35
  125. package/lib/components/atoms/icons/SkillIcon.js +0 -30
  126. package/lib/components/atoms/icons/SkillsNavIcon.js +0 -27
  127. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +0 -357
  128. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +0 -145
  129. package/lib/components/molecules/ChatAIMySkills/index.js +0 -2
  130. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +0 -160
  131. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.styles.js +0 -34
  132. package/lib/components/organisms/AbmSkillGenerateModal/index.js +0 -2
  133. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +0 -446
  134. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +0 -98
  135. package/lib/components/organisms/AbmSkillModal/index.js +0 -2
  136. package/lib/constants/maiaHourAgentAccess.js +0 -15
  137. package/lib/constants/plannerSyncEvents.js +0 -15
  138. package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
  139. package/lib/services/maia/Skills/createSkill.js +0 -39
  140. package/lib/services/maia/Skills/deleteSkill.js +0 -38
  141. package/lib/services/maia/Skills/generateSkill.js +0 -41
  142. package/lib/services/maia/Skills/getSkills.js +0 -90
  143. package/lib/services/maia/Skills/updateSkill.js +0 -39
  144. package/lib/types/skill.js +0 -2
  145. package/lib/utils/hoursPlannerQuickActionType.js +0 -65
  146. package/lib/utils/orchestratorSubagents.js +0 -11
@@ -1,26 +1,26 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
4
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
5
  /* eslint-disable @typescript-eslint/no-unused-vars */
9
6
  /* eslint-disable no-unused-vars */
10
7
  /* eslint-disable no-undef */
11
8
  /* eslint-disable react/require-default-props */
12
9
  import { useMemo, useRef, useState, useEffect } from 'react';
13
10
  import { Attach } from '@projectcor/icons/lib/components/Attach';
11
+ import { Globe } from '@projectcor/icons/lib/components/Globe';
12
+ import { ListChecklist } from '@projectcor/icons/lib/components/ListChecklist';
14
13
  import { MODAL_ELEMENTS } from '../../../hooks/useModal/useModal';
15
-
14
+ import { Chip } from '../../atoms/Chip';
16
15
  // eslint-disable-next-line import/no-cycle
17
16
  import { MAIAInput } from '../../atoms/MAIAInput';
17
+ import { ChatFooterCorAccess } from './ChatFooterCorAccess';
18
18
  import { useGlobalContext } from '../../../context/global-context';
19
19
  import { useT } from '../../../hooks/useT';
20
20
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
21
- import { StyledChatFooter } from './styles';
22
- import { TaskLinkIcon } from '../../atoms/icons/TaskLinkIcon';
21
+ import { StyledChatFooter, ChipsAndFaqsRow, ContextBarLeft, FooterActionsRight } from './styles';
23
22
  import { CsvFileIcon, MDFileIcon, DocFileIcon, DocxFileIcon, TextFileIcon, PdfFileIcon, ImageFileIcon, XlsxFileIcon, XlsFileIcon, Mp3FileIcon, WavFileIcon, FlacFileIcon, M4aFileIcon, Mp4FileIcon, OgaFileIcon, OggFileIcon, WebmFileIcon } from '../../atoms/icons';
23
+ import { ImagePreview } from '../../atoms/ImagePreview/ImagePreview';
24
24
  import { preprocessImageForBackend } from '../../../utils/imagePreprocessor';
25
25
  import { validateIsMaia } from '../../../services/utils/validateIsMaia';
26
26
  import { isMaiakerAgent } from '../../../utils/agentDisplayName';
@@ -48,6 +48,7 @@ export var IconByFileType = {
48
48
  'audio/webm': /*#__PURE__*/_jsx(WebmFileIcon, {})
49
49
  };
50
50
  export function ChatFooter(_ref) {
51
+ var _agent$connectors;
51
52
  var onSendMessage = _ref.onSendMessage,
52
53
  items = _ref.items,
53
54
  disabled = _ref.disabled,
@@ -56,19 +57,23 @@ export function ChatFooter(_ref) {
56
57
  onStopGeneration = _ref.onStopGeneration,
57
58
  chatId = _ref.chatId,
58
59
  newChatKey = _ref.newChatKey,
60
+ _ref$showFaqs = _ref.showFaqs,
61
+ showFaqs = _ref$showFaqs === void 0 ? true : _ref$showFaqs,
59
62
  tooltipZIndex = _ref.tooltipZIndex,
60
- layoutMode = _ref.layoutMode;
63
+ layoutMode = _ref.layoutMode,
64
+ onInputFocus = _ref.onInputFocus;
61
65
  var _useGlobalContext = useGlobalContext(),
62
66
  project = _useGlobalContext.project,
63
67
  agent = _useGlobalContext.agent,
64
68
  chipsProject = _useGlobalContext.chipsProject,
65
69
  client = _useGlobalContext.client,
66
70
  task = _useGlobalContext.task,
67
- deepLinkSendPendingRef = _useGlobalContext.deepLinkSendPendingRef;
71
+ section = _useGlobalContext.section;
68
72
  var _useT = useT(),
69
73
  t = _useT.t;
70
74
  var event = useEvent();
71
75
  var inputPopoverAnchorRef = useRef(null);
76
+ var contextBarAnchorRef = useRef(null);
72
77
  var isOrchestrator = (agent === null || agent === void 0 ? void 0 : agent.type) === 'orchestrator';
73
78
  var _useState = useState([]),
74
79
  _useState2 = _slicedToArray(_useState, 2),
@@ -95,16 +100,13 @@ export function ChatFooter(_ref) {
95
100
  // Clear attachments when session changes (user switches to a different chat)
96
101
  useEffect(function () {
97
102
  var handleSessionChange = function handleSessionChange() {
98
- if (deepLinkSendPendingRef) {
99
- deepLinkSendPendingRef.current = false;
100
- }
101
103
  setAttachments([]);
102
104
  };
103
105
  document.addEventListener('chat-session-changed', handleSessionChange);
104
106
  return function () {
105
107
  document.removeEventListener('chat-session-changed', handleSessionChange);
106
108
  };
107
- }, [deepLinkSendPendingRef]);
109
+ }, []);
108
110
  var _useMemo = useMemo(function () {
109
111
  if (items) return {
110
112
  chipItems: items
@@ -160,17 +162,11 @@ export function ChatFooter(_ref) {
160
162
  reportedEvent.current = true;
161
163
  };
162
164
  var handleSendMessage = function handleSendMessage(message, newAttachments, mentions, faqId, agentSuggestionId, fuaId, scId) {
163
- var fromDeepLink = Boolean(deepLinkSendPendingRef === null || deepLinkSendPendingRef === void 0 ? void 0 : deepLinkSendPendingRef.current);
164
- if (deepLinkSendPendingRef) {
165
- deepLinkSendPendingRef.current = false;
166
- }
167
- event(EVENTS.aiChatSend, _objectSpread({
165
+ event(EVENTS.aiChatSend, {
168
166
  agent_type: isMarketplaceGlobalAgent ? 'marketplace' : agent === null || agent === void 0 ? void 0 : agent.type,
169
167
  agent_id: agent === null || agent === void 0 ? void 0 : agent.id,
170
168
  agent_name: agent === null || agent === void 0 ? void 0 : agent.name
171
- }, fromDeepLink ? {
172
- source: 'deep_link'
173
- } : {}));
169
+ });
174
170
  onSendMessage(message, newAttachments, faqId, agentSuggestionId, mentions, fuaId, scId);
175
171
  setAttachments([]);
176
172
  };
@@ -180,7 +176,7 @@ export function ChatFooter(_ref) {
180
176
  var handleFileAttach = /*#__PURE__*/function () {
181
177
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
182
178
  var _fileNameParts$pop;
183
- var fileNameParts, fileExtension, isImageByExtension, isImageByMime, isImage, extensionToIcon, icon, extensionToMimeType, mimeTypeByExtension, processedFile, newAttachment, _t;
179
+ var fileNameParts, fileExtension, isImageByExtension, isImageByMime, isImage, extensionToIcon, icon, extensionToMimeType, mimeTypeByExtension, processedFile, imageUrl, newAttachment, _t;
184
180
  return _regeneratorRuntime.wrap(function (_context) {
185
181
  while (1) switch (_context.prev = _context.next) {
186
182
  case 0:
@@ -229,9 +225,9 @@ export function ChatFooter(_ref) {
229
225
  });
230
226
  }
231
227
  }
232
- processedFile = file; // Si es una imagen, pre-procesarla para el backend (el chip del input usa el ícono de tipo).
228
+ processedFile = file; // Si es una imagen, pre-procesarla para el backend
233
229
  if (!isImage) {
234
- _context.next = 4;
230
+ _context.next = 5;
235
231
  break;
236
232
  }
237
233
  _context.prev = 1;
@@ -245,7 +241,17 @@ export function ChatFooter(_ref) {
245
241
  _context.prev = 3;
246
242
  _t = _context["catch"](1);
247
243
  console.error('Error pre-procesando imagen:', _t);
244
+ // Continuar con el archivo original si hay error
248
245
  case 4:
246
+ imageUrl = URL.createObjectURL(file);
247
+ icon = /*#__PURE__*/_jsx(ImagePreview, {
248
+ src: imageUrl,
249
+ alt: file.name,
250
+ width: "63px",
251
+ height: "63px",
252
+ borderRadius: "6px"
253
+ });
254
+ case 5:
249
255
  newAttachment = {
250
256
  file: processedFile,
251
257
  originalFile: isImage ? file : undefined,
@@ -258,7 +264,7 @@ export function ChatFooter(_ref) {
258
264
  setAttachments(function (prev) {
259
265
  return [].concat(_toConsumableArray(prev), [newAttachment]);
260
266
  });
261
- case 5:
267
+ case 6:
262
268
  case "end":
263
269
  return _context.stop();
264
270
  }
@@ -278,26 +284,49 @@ export function ChatFooter(_ref) {
278
284
  var disclaimerMessage = isMAIA ? t('chat.footer.disclaimer', {
279
285
  agentName: t('globals.brandName')
280
286
  }) : t('chat.footer.disclaimerAgent');
281
- var contextChip = useMemo(function () {
282
- if (!isMAIA || loadingMessages || !chipItems.length) return null;
283
- return {
284
- items: chipItems,
285
- type: chipType,
286
- leadingIcon: chipType === 'task' ? /*#__PURE__*/_jsx(TaskLinkIcon, {
287
- width: 15,
288
- height: 15,
289
- color: "#808080"
290
- }) : undefined
291
- };
292
- }, [isMAIA, loadingMessages, chipItems, chipType]);
287
+ var isFaqInteractionDisabled = Boolean(disabled || isStreaming || isWriting);
288
+ var shouldShowFaqs = showFaqs && section !== 'task';
289
+ var hasCorAccess = Boolean((agent === null || agent === void 0 ? void 0 : agent.type) === 'custom' && ((_agent$connectors = agent.connectors) === null || _agent$connectors === void 0 ? void 0 : _agent$connectors.some(function (connector) {
290
+ return connector.group === 'COR' && connector.slugs.some(function (slug) {
291
+ return typeof slug === 'string' && slug.trim().length > 0;
292
+ });
293
+ })));
294
+ var shouldShowContextBar = (isMAIA || hasCorAccess) && !loadingMessages;
293
295
  return /*#__PURE__*/_jsxs(StyledChatFooter, {
294
- children: [/*#__PURE__*/_jsx(MAIAInput, {
296
+ children: [shouldShowContextBar && /*#__PURE__*/_jsxs(ChipsAndFaqsRow, {
297
+ ref: contextBarAnchorRef,
298
+ children: [/*#__PURE__*/_jsx(ContextBarLeft, {
299
+ children: isMAIA && (chipItems.length ? /*#__PURE__*/_jsx(Chip, {
300
+ items: chipItems,
301
+ type: chipType,
302
+ leadingIcon: chipType === 'task' ? /*#__PURE__*/_jsx(ListChecklist, {
303
+ color: "#666",
304
+ width: "14px",
305
+ height: "14px"
306
+ }) : undefined
307
+ }) : isOrchestrator && /*#__PURE__*/_jsx(Chip, {
308
+ items: [t('contextPin.addContext', {
309
+ defaultValue: 'Contexto global'
310
+ })],
311
+ leadingIcon: /*#__PURE__*/_jsx(Globe, {
312
+ color: "#666",
313
+ width: "14px",
314
+ height: "14px"
315
+ })
316
+ }))
317
+ }), /*#__PURE__*/_jsx(FooterActionsRight, {
318
+ children: hasCorAccess && /*#__PURE__*/_jsx(ChatFooterCorAccess, {
319
+ tooltipZIndex: tooltipZIndex
320
+ })
321
+ })]
322
+ }), /*#__PURE__*/_jsx(MAIAInput, {
295
323
  popoverAnchorRef: inputPopoverAnchorRef,
296
324
  onSendMessage: handleSendMessage,
297
325
  className: MODAL_ELEMENTS,
298
326
  disabled: disabled,
299
327
  placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
300
328
  onChange: onChange,
329
+ onFocus: onInputFocus,
301
330
  onFileAttach: handleFileAttach,
302
331
  onDeleteAttachment: handleDeleteAttachment,
303
332
  attachments: attachments.filter(function (att) {
@@ -319,11 +348,10 @@ export function ChatFooter(_ref) {
319
348
  chatId: chatId || undefined,
320
349
  newChatKey: newChatKey,
321
350
  tooltipZIndex: tooltipZIndex,
322
- layoutMode: layoutMode,
323
- contextChip: contextChip
351
+ layoutMode: layoutMode
324
352
  }), /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
325
353
  message: disclaimerMessage
326
354
  })]
327
355
  });
328
356
  }
329
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiVGFza0xpbmtJY29uIiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkljb25CeUZpbGVUeXBlIiwiQ2hhdEZvb3RlciIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiaXRlbXMiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwibGF5b3V0TW9kZSIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsImFnZW50IiwiY2hpcHNQcm9qZWN0IiwiY2xpZW50IiwidGFzayIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJfdXNlVCIsInQiLCJldmVudCIsImlucHV0UG9wb3ZlckFuY2hvclJlZiIsImlzT3JjaGVzdHJhdG9yIiwidHlwZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQiLCJoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UiLCJlIiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVNlc3Npb25DaGFuZ2UiLCJjdXJyZW50IiwiX3VzZU1lbW8iLCJjaGlwSXRlbXMiLCJuYW1lIiwiY2hpcFR5cGUiLCJwcm9qZWN0TmFtZSIsImVudGl0eSIsIm9uQ2hhbmdlIiwicG1BaVR5cGVkVGV4dCIsImFnZW50X3R5cGUiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIm1lc3NhZ2UiLCJuZXdBdHRhY2htZW50cyIsIm1lbnRpb25zIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImZyb21EZWVwTGluayIsIkJvb2xlYW4iLCJhaUNoYXRTZW5kIiwiX29iamVjdFNwcmVhZCIsImFnZW50X2lkIiwiaWQiLCJhZ2VudF9uYW1lIiwic291cmNlIiwiaGFuZGxlU2VsZWN0RmFxIiwidW5kZWZpbmVkIiwiaGFuZGxlRmlsZUF0dGFjaCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsImZpbGVFeHRlbnNpb24iLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwiaXNJbWFnZSIsImV4dGVuc2lvblRvSWNvbiIsImljb24iLCJleHRlbnNpb25Ub01pbWVUeXBlIiwibWltZVR5cGVCeUV4dGVuc2lvbiIsInByb2Nlc3NlZEZpbGUiLCJuZXdBdHRhY2htZW50IiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0Iiwic2VudCIsImNvbnNvbGUiLCJlcnJvciIsIm9yaWdpbmFsRmlsZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic2l6ZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImZpbHRlciIsImF0dGFjaG1lbnQiLCJpc01BSUEiLCJkaXNjbGFpbWVyTWVzc2FnZSIsImFnZW50TmFtZSIsImNvbnRleHRDaGlwIiwibGVhZGluZ0ljb24iLCJjaGlsZHJlbiIsInBvcG92ZXJBbmNob3JSZWYiLCJjbGFzc05hbWUiLCJwbGFjZWhvbGRlciIsImlucHV0X3BsYWNlaG9sZGVyIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3Rlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IE1PREFMX0VMRU1FTlRTIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTW9kYWwvdXNlTW9kYWwnXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IE1BSUFJbnB1dCB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFJbnB1dCdcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IFN0eWxlZENoYXRGb290ZXIgfSBmcm9tICcuL3N0eWxlcydcbmltcG9ydCB7IFRhc2tMaW5rSWNvbiB9IGZyb20gJy4uLy4uL2F0b21zL2ljb25zL1Rhc2tMaW5rSWNvbidcbmltcG9ydCB7XG4gIENzdkZpbGVJY29uLFxuICBNREZpbGVJY29uLFxuICBEb2NGaWxlSWNvbixcbiAgRG9jeEZpbGVJY29uLFxuICBUZXh0RmlsZUljb24sXG4gIFBkZkZpbGVJY29uLFxuICBJbWFnZUZpbGVJY29uLFxuICBYbHN4RmlsZUljb24sXG4gIFhsc0ZpbGVJY29uLFxuICBNcDNGaWxlSWNvbixcbiAgV2F2RmlsZUljb24sXG4gIEZsYWNGaWxlSWNvbixcbiAgTTRhRmlsZUljb24sXG4gIE1wNEZpbGVJY29uLFxuICBPZ2FGaWxlSWNvbixcbiAgT2dnRmlsZUljb24sXG4gIFdlYm1GaWxlSWNvbixcbn0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VQcmVwcm9jZXNzb3InXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgaXNNYWlha2VyQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4uLy4uL2F0b21zL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmltcG9ydCB0eXBlIHsgTWFpYUNoYXRNb2RhbExheW91dE1vZGUgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9sYXlvdXQnXG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgdXJsX3RodW1ibmFpbD86IHN0cmluZ1xuICB1cmxfb3JpZ2luYWw/OiBzdHJpbmdcbiAgdXJsX2ZpbGU/OiBzdHJpbmdcbiAgcm9sZT86ICd1c2VyJyB8ICdhc3Npc3RhbnQnXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxuICBleHQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ3Byb2Nlc3NpbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCcgfCAnc3RhcnRlZCdcbn1cblxudHlwZSBDaGF0Rm9vdGVyUHJvcHMgPSB7XG4gIGl0ZW1zPzogc3RyaW5nW11cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBsYXlvdXRNb2RlPzogTWFpYUNoYXRNb2RhbExheW91dE1vZGVcbn1cblxuZXhwb3J0IGNvbnN0IEljb25CeUZpbGVUeXBlID0ge1xuICAndGV4dC9wbGFpbic6IDxUZXh0RmlsZUljb24gLz4sXG4gICd0ZXh0L3gtbWFya2Rvd24nOiA8TURGaWxlSWNvbiAvPixcbiAgJ3RleHQvY3N2JzogPENzdkZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vbXN3b3JkJzogPERvY0ZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnOiA8RG9jeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vcGRmJzogPFBkZkZpbGVJY29uIC8+LFxuICAnaW1hZ2UvcG5nJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGVnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogPFhsc3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6IDxYbHNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wZWcnOiA8TXAzRmlsZUljb24gLz4sXG4gICdhdWRpby9mbGFjJzogPEZsYWNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL200YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dhdic6IDxXYXZGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dlYm0nOiA8V2VibUZpbGVJY29uIC8+LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3Rlcih7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGl0ZW1zLFxuICBkaXNhYmxlZCxcbiAgaXNTdHJlYW1pbmcsXG4gIGlzV3JpdGluZyxcbiAgb25TdG9wR2VuZXJhdGlvbixcbiAgY2hhdElkLFxuICBuZXdDaGF0S2V5LFxuICB0b29sdGlwWkluZGV4LFxuICBsYXlvdXRNb2RlLFxufTogQ2hhdEZvb3RlclByb3BzKSB7XG4gIGNvbnN0IHsgcHJvamVjdCwgYWdlbnQsIGNoaXBzUHJvamVjdCwgY2xpZW50LCB0YXNrLCBkZWVwTGlua1NlbmRQZW5kaW5nUmVmIH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGlucHV0UG9wb3ZlckFuY2hvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgaXNPcmNoZXN0cmF0b3IgPSBhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcidcbiAgY29uc3QgW2F0dGFjaG1lbnRzLCBzZXRBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPihbXSlcbiAgY29uc3QgW2xvYWRpbmdNZXNzYWdlcywgc2V0TG9hZGluZ01lc3NhZ2VzXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHJlcG9ydGVkRXZlbnQgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA9IGlzTWFpYWtlckFnZW50KGFnZW50KVxuXG4gIC8vIHVzZUVmZmVjdCB0byBsaXN0ZW4gbG9hZGluZ01lc3NhZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlID0gKGU6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgICBzZXRMb2FkaW5nTWVzc2FnZXMoZS5kZXRhaWwubG9hZGluZ01lc3NhZ2VzKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIENsZWFyIGF0dGFjaG1lbnRzIHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGlmIChkZWVwTGlua1NlbmRQZW5kaW5nUmVmKSB7XG4gICAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICB9XG4gICAgICBzZXRBdHRhY2htZW50cyhbXSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIH1cbiAgfSwgW2RlZXBMaW5rU2VuZFBlbmRpbmdSZWZdKVxuXG4gIGNvbnN0IHsgY2hpcEl0ZW1zLCBjaGlwVHlwZSB9ID0gdXNlTWVtbzx7IGNoaXBJdGVtczogc3RyaW5nW107IGNoaXBUeXBlPzogQ29udGV4dEVudGl0eVR5cGUgfT4oKCkgPT4ge1xuICAgIGlmIChpdGVtcykgcmV0dXJuIHsgY2hpcEl0ZW1zOiBpdGVtcyB9XG5cbiAgICAvLyBNb25vLWNvbnRleHRvOiBzb2xvIGxhIGVudGlkYWQgbcOhcyBlc3BlY8OtZmljYSAoc2luIGFuaWRhciBjbGllbnRlL3Byb3llY3RvL3RhcmVhKS5cbiAgICBpZiAoYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSB7XG4gICAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG4gICAgICBpZiAoY2xpZW50Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtjbGllbnQubmFtZV0sIGNoaXBUeXBlOiAnY2xpZW50JyB9XG4gICAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtdIH1cbiAgICB9XG5cbiAgICBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcgJiYgY2xpZW50Py5uYW1lKSB7XG4gICAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtjbGllbnQubmFtZV0sIGNoaXBUeXBlOiAnY2xpZW50JyB9XG4gICAgfVxuICAgIGlmICh0YXNrPy5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFt0YXNrLm5hbWVdLCBjaGlwVHlwZTogJ3Rhc2snIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG4gICAgaWYgKHByb2plY3Q/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Byb2plY3QubmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuXG4gICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gIH0sIFtpdGVtcywgcHJvamVjdCwgY2hpcHNQcm9qZWN0LCBhZ2VudD8uZW50aXR5LCBhZ2VudD8udHlwZSwgY2xpZW50LCB0YXNrPy5uYW1lXSlcblxuICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAocmVwb3J0ZWRFdmVudC5jdXJyZW50KSByZXR1cm5cbiAgICBldmVudChFVkVOVFMucG1BaVR5cGVkVGV4dCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgIH0pXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG5ld0F0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW10sXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgc2NJZD86IHN0cmluZ1xuICApID0+IHtcbiAgICBjb25zdCBmcm9tRGVlcExpbmsgPSBCb29sZWFuKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWY/LmN1cnJlbnQpXG4gICAgaWYgKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYpIHtcbiAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfVxuICAgIGV2ZW50KEVWRU5UUy5haUNoYXRTZW5kLCB7XG4gICAgICBhZ2VudF90eXBlOiBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPyAnbWFya2V0cGxhY2UnIDogYWdlbnQ/LnR5cGUsXG4gICAgICBhZ2VudF9pZDogYWdlbnQ/LmlkLFxuICAgICAgYWdlbnRfbmFtZTogYWdlbnQ/Lm5hbWUsXG4gICAgICAuLi4oZnJvbURlZXBMaW5rID8geyBzb3VyY2U6ICdkZWVwX2xpbmsnIH0gOiB7fSksXG4gICAgfSlcbiAgICBvblNlbmRNZXNzYWdlKG1lc3NhZ2UsIG5ld0F0dGFjaG1lbnRzLCBmYXFJZCwgYWdlbnRTdWdnZXN0aW9uSWQsIG1lbnRpb25zLCBmdWFJZCwgc2NJZClcbiAgICBzZXRBdHRhY2htZW50cyhbXSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdEZhcSA9IChtZXNzYWdlOiBzdHJpbmcsIGZhcUlkOiBzdHJpbmcpID0+IHtcbiAgICBvblNlbmRNZXNzYWdlKG1lc3NhZ2UsIHVuZGVmaW5lZCwgZmFxSWQsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVBdHRhY2ggPSBhc3luYyAoZmlsZTogRmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgIC8vIE1hcGVvIGRlIGV4dGVuc2nDs24gYSBpY29ubyBkaXJlY3RvIHBhcmEgY2Fzb3MgZXNwZWNpYWxlcyAoYXVkaW8vb2dnIHkgYXVkaW8vbXA0KVxuICAgIGNvbnN0IGV4dGVuc2lvblRvSWNvbjogUmVjb3JkPHN0cmluZywgUmVhY3ROb2RlPiA9IHtcbiAgICAgICcub2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAgICAgJy5vZ2EnOiA8T2dhRmlsZUljb24gLz4sXG4gICAgICAnLm1wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgICAgICcubTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAgIH1cblxuICAgIGxldCBpY29uID0gSWNvbkJ5RmlsZVR5cGVbZmlsZS50eXBlXVxuXG4gICAgLy8gU2kgZWwgdGlwbyBlcyBhdWRpby9vZ2cgbyBhdWRpby9tcDQsIHVzYXIgbGEgZXh0ZW5zacOzbiBwYXJhIGRldGVybWluYXIgZWwgaWNvbm9cbiAgICBpZiAoKGZpbGUudHlwZSA9PT0gJ2F1ZGlvL29nZycgfHwgZmlsZS50eXBlID09PSAnYXVkaW8vbXA0JykgJiYgZmlsZUV4dGVuc2lvbikge1xuICAgICAgaWNvbiA9IGV4dGVuc2lvblRvSWNvbltmaWxlRXh0ZW5zaW9uXSB8fCBpY29uXG4gICAgfVxuXG4gICAgaWYgKCFpY29uKSB7XG4gICAgICBjb25zdCBleHRlbnNpb25Ub01pbWVUeXBlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAnLnR4dCc6ICd0ZXh0L3BsYWluJyxcbiAgICAgICAgJy5tZCc6ICd0ZXh0L3gtbWFya2Rvd24nLFxuICAgICAgICAnLmNzdic6ICd0ZXh0L2NzdicsXG4gICAgICAgICcuZG9jJzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgICAgICcuZG9jeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICcueGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICcuZmxhYyc6ICdhdWRpby9mbGFjJyxcbiAgICAgICAgJy5tNGEnOiAnYXVkaW8vbTRhJyxcbiAgICAgICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgICAgICcubXA0JzogJ2F1ZGlvL21wNCcsXG4gICAgICAgICcub2dhJzogJ2F1ZGlvL29nYScsXG4gICAgICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcud2VibSc6ICdhdWRpby93ZWJtJyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlQnlFeHRlbnNpb24gPSBleHRlbnNpb25Ub01pbWVUeXBlW2ZpbGVFeHRlbnNpb25dXG4gICAgICBpZiAobWltZVR5cGVCeUV4dGVuc2lvbikge1xuICAgICAgICBpY29uID0gSWNvbkJ5RmlsZVR5cGVbbWltZVR5cGVCeUV4dGVuc2lvbl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGljb24gPSA8QXR0YWNoIGNvbG9yPVwicmdiYSgxMzUsIDY0LCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcHJvY2Vzc2VkRmlsZSA9IGZpbGVcblxuICAgIC8vIFNpIGVzIHVuYSBpbWFnZW4sIHByZS1wcm9jZXNhcmxhIHBhcmEgZWwgYmFja2VuZCAoZWwgY2hpcCBkZWwgaW5wdXQgdXNhIGVsIMOtY29ubyBkZSB0aXBvKS5cbiAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJvY2Vzc2VkRmlsZSA9IGF3YWl0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZS1wcm9jZXNhbmRvIGltYWdlbjonLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHByb2Nlc3NlZEZpbGUsXG4gICAgICBvcmlnaW5hbEZpbGU6IGlzSW1hZ2UgPyBmaWxlIDogdW5kZWZpbmVkLFxuICAgICAgaWQ6IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxuICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgc2l6ZTogcHJvY2Vzc2VkRmlsZS5zaXplLFxuICAgICAgdHlwZTogcHJvY2Vzc2VkRmlsZS50eXBlLFxuICAgICAgaWNvbixcbiAgICB9XG5cbiAgICBzZXRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBuZXdBdHRhY2htZW50XSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmZpbHRlcihhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQuaWQgIT09IGZpbGVJZClcbiAgICBzZXRBdHRhY2htZW50cyhuZXdBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9IGlzTUFJQVxuICAgID8gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lcicsIHsgYWdlbnROYW1lOiB0KCdnbG9iYWxzLmJyYW5kTmFtZScpIH0pXG4gICAgOiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyQWdlbnQnKVxuXG4gIGNvbnN0IGNvbnRleHRDaGlwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgbG9hZGluZ01lc3NhZ2VzIHx8ICFjaGlwSXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiBjaGlwSXRlbXMsXG4gICAgICB0eXBlOiBjaGlwVHlwZSxcbiAgICAgIGxlYWRpbmdJY29uOiBjaGlwVHlwZSA9PT0gJ3Rhc2snID8gPFRhc2tMaW5rSWNvbiB3aWR0aD17MTV9IGhlaWdodD17MTV9IGNvbG9yPVwiIzgwODA4MFwiIC8+IDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfSwgW2lzTUFJQSwgbG9hZGluZ01lc3NhZ2VzLCBjaGlwSXRlbXMsIGNoaXBUeXBlXSlcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDaGF0Rm9vdGVyPlxuICAgICAgPE1BSUFJbnB1dFxuICAgICAgICBwb3BvdmVyQW5jaG9yUmVmPXtpbnB1dFBvcG92ZXJBbmNob3JSZWZ9XG4gICAgICAgIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICBjbGFzc05hbWU9e01PREFMX0VMRU1FTlRTfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICBhZ2VudD8uaW5wdXRfcGxhY2Vob2xkZXIgfHxcbiAgICAgICAgICAoaXNPcmNoZXN0cmF0b3IgPyB0KCdjaGF0LmZvb3Rlci5vcmNoZXN0cmF0b3JQbGFjZWhvbGRlcicpIDogdCgnY2hhdC5mb290ZXIucGxhY2Vob2xkZXInKSlcbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIG9uRmlsZUF0dGFjaD17aGFuZGxlRmlsZUF0dGFjaH1cbiAgICAgICAgb25EZWxldGVBdHRhY2htZW50PXtoYW5kbGVEZWxldGVBdHRhY2htZW50fVxuICAgICAgICBhdHRhY2htZW50cz17YXR0YWNobWVudHNcbiAgICAgICAgICAuZmlsdGVyKGF0dCA9PiAhIWF0dC5maWxlKVxuICAgICAgICAgIC5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgICBmaWxlOiBhdHQuZmlsZSEsXG4gICAgICAgICAgICBvcmlnaW5hbEZpbGU6IGF0dC5vcmlnaW5hbEZpbGUsXG4gICAgICAgICAgICBpZDogYXR0LmlkLFxuICAgICAgICAgICAgbmFtZTogYXR0Lm5hbWUsXG4gICAgICAgICAgICBzaXplOiB0eXBlb2YgYXR0LnNpemUgPT09ICdudW1iZXInID8gYXR0LnNpemUgOiBOdW1iZXIoYXR0LnNpemUpIHx8IDAsXG4gICAgICAgICAgICB0eXBlOiBhdHQudHlwZSxcbiAgICAgICAgICAgIGljb246IGF0dC5pY29uLFxuICAgICAgICAgIH0pKX1cbiAgICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgICBpc1dyaXRpbmc9e2lzV3JpdGluZ31cbiAgICAgICAgb25TdG9wR2VuZXJhdGlvbj17b25TdG9wR2VuZXJhdGlvbn1cbiAgICAgICAgY2hhdElkPXtjaGF0SWQgfHwgdW5kZWZpbmVkfVxuICAgICAgICBuZXdDaGF0S2V5PXtuZXdDaGF0S2V5fVxuICAgICAgICB0b29sdGlwWkluZGV4PXt0b29sdGlwWkluZGV4fVxuICAgICAgICBsYXlvdXRNb2RlPXtsYXlvdXRNb2RlfVxuICAgICAgICBjb250ZXh0Q2hpcD17Y29udGV4dENoaXB9XG4gICAgICAvPlxuICAgICAgPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz5cbiAgICA8L1N0eWxlZENoYXRGb290ZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ3ZFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQzs7QUFFakU7QUFDQSxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNs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
357
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJHbG9iZSIsIkxpc3RDaGVja2xpc3QiLCJNT0RBTF9FTEVNRU5UUyIsIkNoaXAiLCJNQUlBSW5wdXQiLCJDaGF0Rm9vdGVyQ29yQWNjZXNzIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZVQiLCJFVkVOVFMiLCJ1c2VFdmVudCIsIlN0eWxlZENoYXRGb290ZXIiLCJDaGlwc0FuZEZhcXNSb3ciLCJDb250ZXh0QmFyTGVmdCIsIkZvb3RlckFjdGlvbnNSaWdodCIsIkNzdkZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiVGV4dEZpbGVJY29uIiwiUGRmRmlsZUljb24iLCJJbWFnZUZpbGVJY29uIiwiWGxzeEZpbGVJY29uIiwiWGxzRmlsZUljb24iLCJNcDNGaWxlSWNvbiIsIldhdkZpbGVJY29uIiwiRmxhY0ZpbGVJY29uIiwiTTRhRmlsZUljb24iLCJNcDRGaWxlSWNvbiIsIk9nYUZpbGVJY29uIiwiT2dnRmlsZUljb24iLCJXZWJtRmlsZUljb24iLCJJbWFnZVByZXZpZXciLCJwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIiwidmFsaWRhdGVJc01haWEiLCJpc01haWFrZXJBZ2VudCIsIkNoYXREaXNjbGFpbWVyTWVzc2FnZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJJY29uQnlGaWxlVHlwZSIsIkNoYXRGb290ZXIiLCJfcmVmIiwiX2FnZW50JGNvbm5lY3RvcnMiLCJvblNlbmRNZXNzYWdlIiwiaXRlbXMiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJfcmVmJHNob3dGYXFzIiwic2hvd0ZhcXMiLCJ0b29sdGlwWkluZGV4IiwibGF5b3V0TW9kZSIsIm9uSW5wdXRGb2N1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsImFnZW50IiwiY2hpcHNQcm9qZWN0IiwiY2xpZW50IiwidGFzayIsInNlY3Rpb24iLCJfdXNlVCIsInQiLCJldmVudCIsImlucHV0UG9wb3ZlckFuY2hvclJlZiIsImNvbnRleHRCYXJBbmNob3JSZWYiLCJpc09yY2hlc3RyYXRvciIsInR5cGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJhdHRhY2htZW50cyIsInNldEF0dGFjaG1lbnRzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nTWVzc2FnZXMiLCJzZXRMb2FkaW5nTWVzc2FnZXMiLCJyZXBvcnRlZEV2ZW50IiwiaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50IiwiaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIiwiZSIsImRldGFpbCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiX3VzZU1lbW8iLCJjaGlwSXRlbXMiLCJuYW1lIiwiY2hpcFR5cGUiLCJwcm9qZWN0TmFtZSIsImVudGl0eSIsIm9uQ2hhbmdlIiwiY3VycmVudCIsInBtQWlUeXBlZFRleHQiLCJhZ2VudF90eXBlIiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJtZXNzYWdlIiwibmV3QXR0YWNobWVudHMiLCJtZW50aW9ucyIsImZhcUlkIiwiYWdlbnRTdWdnZXN0aW9uSWQiLCJmdWFJZCIsInNjSWQiLCJhaUNoYXRTZW5kIiwiYWdlbnRfaWQiLCJpZCIsImFnZW50X25hbWUiLCJoYW5kbGVTZWxlY3RGYXEiLCJ1bmRlZmluZWQiLCJoYW5kbGVGaWxlQXR0YWNoIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJmaWxlTmFtZVBhcnRzIiwiZmlsZUV4dGVuc2lvbiIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJpc0ltYWdlIiwiZXh0ZW5zaW9uVG9JY29uIiwiaWNvbiIsImV4dGVuc2lvblRvTWltZVR5cGUiLCJtaW1lVHlwZUJ5RXh0ZW5zaW9uIiwicHJvY2Vzc2VkRmlsZSIsImltYWdlVXJsIiwibmV3QXR0YWNobWVudCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzcGxpdCIsImxlbmd0aCIsImNvbmNhdCIsInBvcCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsInNlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJzcmMiLCJhbHQiLCJib3JkZXJSYWRpdXMiLCJvcmlnaW5hbEZpbGUiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsInNpemUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJmaWx0ZXIiLCJhdHRhY2htZW50IiwiaXNNQUlBIiwiZGlzY2xhaW1lck1lc3NhZ2UiLCJhZ2VudE5hbWUiLCJpc0ZhcUludGVyYWN0aW9uRGlzYWJsZWQiLCJCb29sZWFuIiwic2hvdWxkU2hvd0ZhcXMiLCJoYXNDb3JBY2Nlc3MiLCJjb25uZWN0b3JzIiwic29tZSIsImNvbm5lY3RvciIsImdyb3VwIiwic2x1Z3MiLCJzbHVnIiwidHJpbSIsInNob3VsZFNob3dDb250ZXh0QmFyIiwiY2hpbGRyZW4iLCJyZWYiLCJsZWFkaW5nSWNvbiIsImRlZmF1bHRWYWx1ZSIsInBvcG92ZXJBbmNob3JSZWYiLCJjbGFzc05hbWUiLCJwbGFjZWhvbGRlciIsImlucHV0X3BsYWNlaG9sZGVyIiwib25Gb2N1cyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsImF0dCIsIm1hcCIsIk51bWJlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9yZXF1aXJlLWRlZmF1bHQtcHJvcHMgKi9cbmltcG9ydCB7IFJlYWN0Tm9kZSwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgTGlzdENoZWNrbGlzdCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0xpc3RDaGVja2xpc3QnXG5pbXBvcnQgeyBNT0RBTF9FTEVNRU5UUyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZU1vZGFsL3VzZU1vZGFsJ1xuXG5pbXBvcnQgeyBDaGlwIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hpcCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IE1BSUFJbnB1dCB9IGZyb20gJy4uLy4uL2F0b21zL01BSUFJbnB1dCdcbmltcG9ydCB7IENoYXRGb290ZXJGYXFzIH0gZnJvbSAnLi9DaGF0Rm9vdGVyRmFxcydcbmltcG9ydCB7IENoYXRGb290ZXJDb3JBY2Nlc3MgfSBmcm9tICcuL0NoYXRGb290ZXJDb3JBY2Nlc3MnXG5cbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IFN0eWxlZENoYXRGb290ZXIsIENoaXBzQW5kRmFxc1JvdywgQ29udGV4dEJhckxlZnQsIEZvb3RlckFjdGlvbnNSaWdodCB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHtcbiAgQ3N2RmlsZUljb24sXG4gIE1ERmlsZUljb24sXG4gIERvY0ZpbGVJY29uLFxuICBEb2N4RmlsZUljb24sXG4gIFRleHRGaWxlSWNvbixcbiAgUGRmRmlsZUljb24sXG4gIEltYWdlRmlsZUljb24sXG4gIFhsc3hGaWxlSWNvbixcbiAgWGxzRmlsZUljb24sXG4gIE1wM0ZpbGVJY29uLFxuICBXYXZGaWxlSWNvbixcbiAgRmxhY0ZpbGVJY29uLFxuICBNNGFGaWxlSWNvbixcbiAgTXA0RmlsZUljb24sXG4gIE9nYUZpbGVJY29uLFxuICBPZ2dGaWxlSWNvbixcbiAgV2VibUZpbGVJY29uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IEltYWdlUHJldmlldyB9IGZyb20gJy4uLy4uL2F0b21zL0ltYWdlUHJldmlldy9JbWFnZVByZXZpZXcnXG5pbXBvcnQgeyBwcmVwcm9jZXNzSW1hZ2VGb3JCYWNrZW5kIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VQcmVwcm9jZXNzb3InXG5pbXBvcnQgeyB2YWxpZGF0ZUlzTWFpYSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxzL3ZhbGlkYXRlSXNNYWlhJ1xuaW1wb3J0IHsgaXNNYWlha2VyQWdlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hZ2VudERpc3BsYXlOYW1lJ1xuaW1wb3J0IHsgQWdlbnQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9hZ2VudCdcbmltcG9ydCB7IENoYXREaXNjbGFpbWVyTWVzc2FnZSB9IGZyb20gJy4uLy4uL2F0b21zL0NoYXREaXNjbGFpbWVyTWVzc2FnZSdcbmltcG9ydCB0eXBlIHsgTWFpYUNoYXRNb2RhbExheW91dE1vZGUgfSBmcm9tICcuLi9DaGF0QUlNb2RhbC9sYXlvdXQnXG5cbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgdXJsX3RodW1ibmFpbD86IHN0cmluZ1xuICB1cmxfb3JpZ2luYWw/OiBzdHJpbmdcbiAgdXJsX2ZpbGU/OiBzdHJpbmdcbiAgcm9sZT86ICd1c2VyJyB8ICdhc3Npc3RhbnQnXG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNpemU6IG51bWJlclxuICB0eXBlOiBzdHJpbmdcbiAgaWNvbj86IFJlYWN0Tm9kZVxuICBleHQ/OiBzdHJpbmdcbiAgc3RhdHVzPzogJ3BlbmRpbmcnIHwgJ3Byb2Nlc3NpbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCcgfCAnc3RhcnRlZCdcbn1cblxudHlwZSBDaGF0Rm9vdGVyUHJvcHMgPSB7XG4gIGl0ZW1zPzogc3RyaW5nW11cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgLyoqIFNpIGVzIGZhbHNlLCBubyBzZSBtdWVzdHJhIGVsIGJvdMOzbiBkZSBGQVFzLiBEZWJlIHNlciB0cnVlIGN1YW5kbyBjdXJyZW50T3B0aW9uID09PSBjaGF0LiBFbiBzZWN0aW9uIHRhc2sgbm8gc2UgbXVlc3RyYSBhdW5xdWUgc2VhIHRydWUuICovXG4gIHNob3dGYXFzPzogYm9vbGVhblxuICB0b29sdGlwWkluZGV4PzogbnVtYmVyXG4gIGxheW91dE1vZGU/OiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZVxuICBvbklucHV0Rm9jdXM/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBJY29uQnlGaWxlVHlwZSA9IHtcbiAgJ3RleHQvcGxhaW4nOiA8VGV4dEZpbGVJY29uIC8+LFxuICAndGV4dC94LW1hcmtkb3duJzogPE1ERmlsZUljb24gLz4sXG4gICd0ZXh0L2Nzdic6IDxDc3ZGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL21zd29yZCc6IDxEb2NGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JzogPERvY3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3BkZic6IDxQZGZGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL3BuZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnaW1hZ2UvanBlZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnaW1hZ2UvanBnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCc6IDxYbHN4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnOiA8WGxzRmlsZUljb24gLz4sXG4gICdhdWRpby9tcGVnJzogPE1wM0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vZmxhYyc6IDxGbGFjRmlsZUljb24gLz4sXG4gICdhdWRpby9tcDQnOiA8TXA0RmlsZUljb24gLz4sXG4gICdhdWRpby9tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICdhdWRpby9vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICdhdWRpby9vZ2EnOiA8T2dhRmlsZUljb24gLz4sXG4gICdhdWRpby93YXYnOiA8V2F2RmlsZUljb24gLz4sXG4gICdhdWRpby93ZWJtJzogPFdlYm1GaWxlSWNvbiAvPixcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoYXRGb290ZXIoe1xuICBvblNlbmRNZXNzYWdlLFxuICBpdGVtcyxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgc2hvd0ZhcXMgPSB0cnVlLFxuICB0b29sdGlwWkluZGV4LFxuICBsYXlvdXRNb2RlLFxuICBvbklucHV0Rm9jdXMsXG59OiBDaGF0Rm9vdGVyUHJvcHMpIHtcbiAgY29uc3QgeyBwcm9qZWN0LCBhZ2VudCwgY2hpcHNQcm9qZWN0LCBjbGllbnQsIHRhc2ssIHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCBldmVudCA9IHVzZUV2ZW50KClcbiAgY29uc3QgaW5wdXRQb3BvdmVyQW5jaG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBjb250ZXh0QmFyQW5jaG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBpc09yY2hlc3RyYXRvciA9IGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJ1xuICBjb25zdCBbYXR0YWNobWVudHMsIHNldEF0dGFjaG1lbnRzXSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlW10+KFtdKVxuICBjb25zdCBbbG9hZGluZ01lc3NhZ2VzLCBzZXRMb2FkaW5nTWVzc2FnZXNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgcmVwb3J0ZWRFdmVudCA9IHVzZVJlZihmYWxzZSlcbiAgY29uc3QgaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID0gaXNNYWlha2VyQWdlbnQoYWdlbnQpXG5cbiAgLy8gdXNlRWZmZWN0IHRvIGxpc3RlbiBsb2FkaW5nTWVzc2FnZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgPSAoZTogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgIHNldExvYWRpbmdNZXNzYWdlcyhlLmRldGFpbC5sb2FkaW5nTWVzc2FnZXMpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1sb2FkaW5nLW1lc3NhZ2VzLWNoYW5nZWQnLCBoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UgYXMgRXZlbnRMaXN0ZW5lcilcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gQ2xlYXIgYXR0YWNobWVudHMgd2hlbiBzZXNzaW9uIGNoYW5nZXMgKHVzZXIgc3dpdGNoZXMgdG8gYSBkaWZmZXJlbnQgY2hhdClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVTZXNzaW9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgc2V0QXR0YWNobWVudHMoW10pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IHsgY2hpcEl0ZW1zLCBjaGlwVHlwZSB9ID0gdXNlTWVtbzx7IGNoaXBJdGVtczogc3RyaW5nW107IGNoaXBUeXBlPzogQ29udGV4dEVudGl0eVR5cGUgfT4oKCkgPT4ge1xuICAgIGlmIChpdGVtcykgcmV0dXJuIHsgY2hpcEl0ZW1zOiBpdGVtcyB9XG5cbiAgICAvLyBNb25vLWNvbnRleHRvOiBzb2xvIGxhIGVudGlkYWQgbcOhcyBlc3BlY8OtZmljYSAoc2luIGFuaWRhciBjbGllbnRlL3Byb3llY3RvL3RhcmVhKS5cbiAgICBpZiAoYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InKSB7XG4gICAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG4gICAgICBpZiAoY2xpZW50Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtjbGllbnQubmFtZV0sIGNoaXBUeXBlOiAnY2xpZW50JyB9XG4gICAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtdIH1cbiAgICB9XG5cbiAgICBpZiAoYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcgJiYgY2xpZW50Py5uYW1lKSB7XG4gICAgICByZXR1cm4geyBjaGlwSXRlbXM6IFtjbGllbnQubmFtZV0sIGNoaXBUeXBlOiAnY2xpZW50JyB9XG4gICAgfVxuICAgIGlmICh0YXNrPy5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFt0YXNrLm5hbWVdLCBjaGlwVHlwZTogJ3Rhc2snIH1cbiAgICBpZiAoY2hpcHNQcm9qZWN0Py5wcm9qZWN0TmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2hpcHNQcm9qZWN0LnByb2plY3ROYW1lXSwgY2hpcFR5cGU6ICdwcm9qZWN0JyB9XG4gICAgaWYgKHByb2plY3Q/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Byb2plY3QubmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuXG4gICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gIH0sIFtpdGVtcywgcHJvamVjdCwgY2hpcHNQcm9qZWN0LCBhZ2VudD8uZW50aXR5LCBhZ2VudD8udHlwZSwgY2xpZW50LCB0YXNrPy5uYW1lXSlcblxuICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICBpZiAocmVwb3J0ZWRFdmVudC5jdXJyZW50KSByZXR1cm5cbiAgICBldmVudChFVkVOVFMucG1BaVR5cGVkVGV4dCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgIH0pXG4gICAgcmVwb3J0ZWRFdmVudC5jdXJyZW50ID0gdHJ1ZVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VuZE1lc3NhZ2UgPSAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG5ld0F0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSxcbiAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW10sXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgc2NJZD86IHN0cmluZ1xuICApID0+IHtcbiAgICBldmVudChFVkVOVFMuYWlDaGF0U2VuZCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCBuZXdBdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQsIHNjSWQpXG4gICAgc2V0QXR0YWNobWVudHMoW10pXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RGYXEgPSAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB7XG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIGZhcUlkLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGaWxlQXR0YWNoID0gYXN5bmMgKGZpbGU6IEZpbGUpID0+IHtcbiAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG4gICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzSW1hZ2VCeU1pbWUgPSBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAvLyBNYXBlbyBkZSBleHRlbnNpw7NuIGEgaWNvbm8gZGlyZWN0byBwYXJhIGNhc29zIGVzcGVjaWFsZXMgKGF1ZGlvL29nZyB5IGF1ZGlvL21wNClcbiAgICBjb25zdCBleHRlbnNpb25Ub0ljb246IFJlY29yZDxzdHJpbmcsIFJlYWN0Tm9kZT4gPSB7XG4gICAgICAnLm9nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgICAgICcub2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAgICAgJy5tcDQnOiA8TXA0RmlsZUljb24gLz4sXG4gICAgICAnLm00YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgICB9XG5cbiAgICBsZXQgaWNvbiA9IEljb25CeUZpbGVUeXBlW2ZpbGUudHlwZV1cblxuICAgIC8vIFNpIGVsIHRpcG8gZXMgYXVkaW8vb2dnIG8gYXVkaW8vbXA0LCB1c2FyIGxhIGV4dGVuc2nDs24gcGFyYSBkZXRlcm1pbmFyIGVsIGljb25vXG4gICAgaWYgKChmaWxlLnR5cGUgPT09ICdhdWRpby9vZ2cnIHx8IGZpbGUudHlwZSA9PT0gJ2F1ZGlvL21wNCcpICYmIGZpbGVFeHRlbnNpb24pIHtcbiAgICAgIGljb24gPSBleHRlbnNpb25Ub0ljb25bZmlsZUV4dGVuc2lvbl0gfHwgaWNvblxuICAgIH1cblxuICAgIGlmICghaWNvbikge1xuICAgICAgY29uc3QgZXh0ZW5zaW9uVG9NaW1lVHlwZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgJy50eHQnOiAndGV4dC9wbGFpbicsXG4gICAgICAgICcubWQnOiAndGV4dC94LW1hcmtkb3duJyxcbiAgICAgICAgJy5jc3YnOiAndGV4dC9jc3YnLFxuICAgICAgICAnLmRvYyc6ICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAgICAgICAnLmRvY3gnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAgICAgICAnLnBkZic6ICdhcHBsaWNhdGlvbi9wZGYnLFxuICAgICAgICAnLnhsc3gnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgICAgICAnLnhscyc6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgICAnLmZsYWMnOiAnYXVkaW8vZmxhYycsXG4gICAgICAgICcubTRhJzogJ2F1ZGlvL200YScsXG4gICAgICAgICcubXAzJzogJ2F1ZGlvL21wZWcnLFxuICAgICAgICAnLm1wNCc6ICdhdWRpby9tcDQnLFxuICAgICAgICAnLm9nYSc6ICdhdWRpby9vZ2EnLFxuICAgICAgICAnLm9nZyc6ICdhdWRpby9vZ2cnLFxuICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAnLndlYm0nOiAnYXVkaW8vd2VibScsXG4gICAgICB9XG4gICAgICBjb25zdCBtaW1lVHlwZUJ5RXh0ZW5zaW9uID0gZXh0ZW5zaW9uVG9NaW1lVHlwZVtmaWxlRXh0ZW5zaW9uXVxuICAgICAgaWYgKG1pbWVUeXBlQnlFeHRlbnNpb24pIHtcbiAgICAgICAgaWNvbiA9IEljb25CeUZpbGVUeXBlW21pbWVUeXBlQnlFeHRlbnNpb25dXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpY29uID0gPEF0dGFjaCBjb2xvcj1cInJnYmEoMTM1LCA2NCwgMTkxLCAxKVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHByb2Nlc3NlZEZpbGUgPSBmaWxlXG5cbiAgICAvLyBTaSBlcyB1bmEgaW1hZ2VuLCBwcmUtcHJvY2VzYXJsYSBwYXJhIGVsIGJhY2tlbmRcbiAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gUHJvY2VzYW5kbyBpbWFnZW5cbiAgICAgICAgcHJvY2Vzc2VkRmlsZSA9IGF3YWl0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZS1wcm9jZXNhbmRvIGltYWdlbjonLCBlcnJvcilcbiAgICAgICAgLy8gQ29udGludWFyIGNvbiBlbCBhcmNoaXZvIG9yaWdpbmFsIHNpIGhheSBlcnJvclxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSlcblxuICAgICAgaWNvbiA9IDxJbWFnZVByZXZpZXcgc3JjPXtpbWFnZVVybH0gYWx0PXtmaWxlLm5hbWV9IHdpZHRoPVwiNjNweFwiIGhlaWdodD1cIjYzcHhcIiBib3JkZXJSYWRpdXM9XCI2cHhcIiAvPlxuICAgIH1cblxuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnQ6IEF0dGFjaG1lbnRGaWxlID0ge1xuICAgICAgZmlsZTogcHJvY2Vzc2VkRmlsZSxcbiAgICAgIG9yaWdpbmFsRmlsZTogaXNJbWFnZSA/IGZpbGUgOiB1bmRlZmluZWQsXG4gICAgICBpZDogYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsXG4gICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICBzaXplOiBwcm9jZXNzZWRGaWxlLnNpemUsXG4gICAgICB0eXBlOiBwcm9jZXNzZWRGaWxlLnR5cGUsXG4gICAgICBpY29uLFxuICAgIH1cblxuICAgIHNldEF0dGFjaG1lbnRzKHByZXYgPT4gWy4uLnByZXYsIG5ld0F0dGFjaG1lbnRdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQXR0YWNobWVudCA9IChmaWxlSWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4gYXR0YWNobWVudC5pZCAhPT0gZmlsZUlkKVxuICAgIHNldEF0dGFjaG1lbnRzKG5ld0F0dGFjaG1lbnRzKVxuICB9XG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGRpc2NsYWltZXJNZXNzYWdlID0gaXNNQUlBXG4gICAgPyB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyJywgeyBhZ2VudE5hbWU6IHQoJ2dsb2JhbHMuYnJhbmROYW1lJykgfSlcbiAgICA6IHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXJBZ2VudCcpXG5cbiAgY29uc3QgaXNGYXFJbnRlcmFjdGlvbkRpc2FibGVkID0gQm9vbGVhbihkaXNhYmxlZCB8fCBpc1N0cmVhbWluZyB8fCBpc1dyaXRpbmcpXG4gIGNvbnN0IHNob3VsZFNob3dGYXFzID0gc2hvd0ZhcXMgJiYgc2VjdGlvbiAhPT0gJ3Rhc2snXG4gIGNvbnN0IGhhc0NvckFjY2VzcyA9IEJvb2xlYW4oXG4gICAgYWdlbnQ/LnR5cGUgPT09ICdjdXN0b20nICYmXG4gICAgYWdlbnQuY29ubmVjdG9ycz8uc29tZShcbiAgICAgIGNvbm5lY3RvciA9PlxuICAgICAgICBjb25uZWN0b3IuZ3JvdXAgPT09ICdDT1InICYmIGNvbm5lY3Rvci5zbHVncy5zb21lKHNsdWcgPT4gdHlwZW9mIHNsdWcgPT09ICdzdHJpbmcnICYmIHNsdWcudHJpbSgpLmxlbmd0aCA+IDApXG4gICAgKVxuICApXG4gIGNvbnN0IHNob3VsZFNob3dDb250ZXh0QmFyID0gKGlzTUFJQSB8fCBoYXNDb3JBY2Nlc3MpICYmICFsb2FkaW5nTWVzc2FnZXNcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDaGF0Rm9vdGVyPlxuICAgICAge3Nob3VsZFNob3dDb250ZXh0QmFyICYmIChcbiAgICAgICAgPENoaXBzQW5kRmFxc1JvdyByZWY9e2NvbnRleHRCYXJBbmNob3JSZWZ9PlxuICAgICAgICAgIDxDb250ZXh0QmFyTGVmdD5cbiAgICAgICAgICAgIHtpc01BSUEgJiZcbiAgICAgICAgICAgICAgKGNoaXBJdGVtcy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgIGl0ZW1zPXtjaGlwSXRlbXN9XG4gICAgICAgICAgICAgICAgICB0eXBlPXtjaGlwVHlwZX1cbiAgICAgICAgICAgICAgICAgIGxlYWRpbmdJY29uPXtcbiAgICAgICAgICAgICAgICAgICAgY2hpcFR5cGUgPT09ICd0YXNrJyA/IDxMaXN0Q2hlY2tsaXN0IGNvbG9yPVwiIzY2NlwiIHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPiA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgaXNPcmNoZXN0cmF0b3IgJiYgKFxuICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM9e1t0KCdjb250ZXh0UGluLmFkZENvbnRleHQnLCB7IGRlZmF1bHRWYWx1ZTogJ0NvbnRleHRvIGdsb2JhbCcgfSldfVxuICAgICAgICAgICAgICAgICAgICBsZWFkaW5nSWNvbj17PEdsb2JlIGNvbG9yPVwiIzY2NlwiIHdpZHRoPVwiMTRweFwiIGhlaWdodD1cIjE0cHhcIiAvPn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICA8L0NvbnRleHRCYXJMZWZ0PlxuICAgICAgICAgIDxGb290ZXJBY3Rpb25zUmlnaHQ+XG4gICAgICAgICAgICB7aGFzQ29yQWNjZXNzICYmIDxDaGF0Rm9vdGVyQ29yQWNjZXNzIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9IC8+fVxuICAgICAgICAgICAgey8qIHtpc01BSUEgJiYgc2hvdWxkU2hvd0ZhcXMgJiYgKFxuICAgICAgICAgICAgICA8Q2hhdEZvb3RlckZhcXMgb25TZWxlY3RGYXE9e2hhbmRsZVNlbGVjdEZhcX0gZGlzYWJsZWQ9e2lzRmFxSW50ZXJhY3Rpb25EaXNhYmxlZH0gLz5cbiAgICAgICAgICAgICl9ICovfVxuICAgICAgICAgIDwvRm9vdGVyQWN0aW9uc1JpZ2h0PlxuICAgICAgICA8L0NoaXBzQW5kRmFxc1Jvdz5cbiAgICAgICl9XG4gICAgICA8TUFJQUlucHV0XG4gICAgICAgIHBvcG92ZXJBbmNob3JSZWY9e2lucHV0UG9wb3ZlckFuY2hvclJlZn1cbiAgICAgICAgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgIGFnZW50Py5pbnB1dF9wbGFjZWhvbGRlciB8fFxuICAgICAgICAgIChpc09yY2hlc3RyYXRvciA/IHQoJ2NoYXQuZm9vdGVyLm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyJykgOiB0KCdjaGF0LmZvb3Rlci5wbGFjZWhvbGRlcicpKVxuICAgICAgICB9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17b25JbnB1dEZvY3VzfVxuICAgICAgICBvbkZpbGVBdHRhY2g9e2hhbmRsZUZpbGVBdHRhY2h9XG4gICAgICAgIG9uRGVsZXRlQXR0YWNobWVudD17aGFuZGxlRGVsZXRlQXR0YWNobWVudH1cbiAgICAgICAgYXR0YWNobWVudHM9e2F0dGFjaG1lbnRzXG4gICAgICAgICAgLmZpbHRlcihhdHQgPT4gISFhdHQuZmlsZSlcbiAgICAgICAgICAubWFwKGF0dCA9PiAoe1xuICAgICAgICAgICAgZmlsZTogYXR0LmZpbGUhLFxuICAgICAgICAgICAgb3JpZ2luYWxGaWxlOiBhdHQub3JpZ2luYWxGaWxlLFxuICAgICAgICAgICAgaWQ6IGF0dC5pZCxcbiAgICAgICAgICAgIG5hbWU6IGF0dC5uYW1lLFxuICAgICAgICAgICAgc2l6ZTogdHlwZW9mIGF0dC5zaXplID09PSAnbnVtYmVyJyA/IGF0dC5zaXplIDogTnVtYmVyKGF0dC5zaXplKSB8fCAwLFxuICAgICAgICAgICAgdHlwZTogYXR0LnR5cGUsXG4gICAgICAgICAgICBpY29uOiBhdHQuaWNvbixcbiAgICAgICAgICB9KSl9XG4gICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICAgIG9uU3RvcEdlbmVyYXRpb249e29uU3RvcEdlbmVyYXRpb259XG4gICAgICAgIGNoYXRJZD17Y2hhdElkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgbGF5b3V0TW9kZT17bGF5b3V0TW9kZX1cbiAgICAgIC8+XG4gICAgICA8Q2hhdERpc2NsYWltZXJNZXNzYWdlIG1lc3NhZ2U9e2Rpc2NsYWltZXJNZXNzYWdlfSAvPlxuICAgIDwvU3R5bGVkQ2hhdEZvb3Rlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFvQkEsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDdkUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLGFBQWEsUUFBUSxnREFBZ0Q7QUFDOUUsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQztBQUVqRSxTQUFTQyxJQUFJLFFBQVEsa0JBQWtCO0FBQ3ZDO0FBQ0EsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUVqRCxTQUFTQyxtQkFBbUIsUUFBUSx1QkFBdUI7QUFFM0QsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBQ2xFLFNBQVNDLElBQUksUUFBUSxxQkFBcUI7QUFDMUMsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBRTFELFNBQVNDLGdCQUFnQixFQUFFQyxlQUFlLEVBQUVDLGNBQWMsRUFBRUMsa0JBQWtCLFFBQVEsVUFBVTtBQUNoRyxTQUNFQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksUUFDUCxtQkFBbUI7QUFDMUIsU0FBU0MsWUFBWSxRQUFRLHVDQUF1QztBQUNwRSxTQUFTQyx5QkFBeUIsUUFBUSxrQ0FBa0M7QUFDNUUsU0FBU0MsY0FB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
@@ -8,7 +8,6 @@ export var ContextMentionInput = function ContextMentionInput(_ref) {
8
8
  var placeholder = _ref.placeholder,
9
9
  disabled = _ref.disabled,
10
10
  enabledTypes = _ref.enabledTypes,
11
- skills = _ref.skills,
12
11
  onSendMessage = _ref.onSendMessage,
13
12
  onMentionAdded = _ref.onMentionAdded,
14
13
  onChange = _ref.onChange;
@@ -18,7 +17,6 @@ export var ContextMentionInput = function ContextMentionInput(_ref) {
18
17
  editorRef: editorRef,
19
18
  popoverAnchorRef: wrapperRef,
20
19
  enabledTypes: enabledTypes,
21
- skills: skills,
22
20
  onMentionAdded: onMentionAdded
23
21
  }),
24
22
  popoverOpen = _useMentionPopover.popoverOpen,
@@ -59,4 +57,4 @@ export var ContextMentionInput = function ContextMentionInput(_ref) {
59
57
  }), popoverNode && /*#__PURE__*/createPortal(popoverNode, document.body)]
60
58
  });
61
59
  };
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsImNyZWF0ZVBvcnRhbCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWVudGlvblBvcG92ZXIiLCJTQ01JV3JhcHBlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDb250ZXh0TWVudGlvbklucHV0IiwiX3JlZiIsInBsYWNlaG9sZGVyIiwiZGlzYWJsZWQiLCJlbmFibGVkVHlwZXMiLCJza2lsbHMiLCJvblNlbmRNZXNzYWdlIiwib25NZW50aW9uQWRkZWQiLCJvbkNoYW5nZSIsImVkaXRvclJlZiIsIndyYXBwZXJSZWYiLCJfdXNlTWVudGlvblBvcG92ZXIiLCJwb3BvdmVyQW5jaG9yUmVmIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlUG9wb3ZlcktleURvd24iLCJoYW5kbGVLZXlEb3duIiwicG9wb3Zlck5vZGUiLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWYyIiwidGV4dCIsIm1lbnRpb25zIiwidHJpZ2dlciIsImUiLCJrZXkiLCJzaGlmdEtleSIsIl9lZGl0b3JSZWYkY3VycmVudCIsIl9lZGl0b3JSZWYkY3VycmVudDIiLCJwcmV2ZW50RGVmYXVsdCIsInN0YXRlIiwiY3VycmVudCIsInNlcmlhbGl6ZSIsInRyaW0iLCJjbGVhciIsInJlZiIsImNoaWxkcmVuIiwib25JbnB1dCIsIm9uS2V5RG93biIsImRvY3VtZW50IiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Db250ZXh0TWVudGlvbklucHV0L0NvbnRleHRNZW50aW9uSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleWJvYXJkRXZlbnQsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9yLCBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSB9IGZyb20gJy4uLy4uL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHsgdXNlTWVudGlvblBvcG92ZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHR5cGUgeyBTa2lsbCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3NraWxsJ1xuaW1wb3J0IHsgU0NNSVdyYXBwZXIgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uSW5wdXQuc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbklucHV0UHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKiogT3ZlcnJpZGUgZGUgdGlwb3MgcGVybWl0aWRvczsgc2kgc2Ugb21pdGUsIHNlIGRlcml2YSBkZSBhZ2VudC5lbnRpdHkgKi9cbiAgZW5hYmxlZFR5cGVzPzogQ29udGV4dEVudGl0eVR5cGVbXVxuICAvKiogU2tpbGxzIGlueWVjdGFkYXMgZGlyZWN0YW1lbnRlIChkZXYvdGVzdGluZykuIFNpIHNlIHByb3ZlZW4sIHNlIG9taXRlIGVsIGZldGNoIFJFU1QuICovXG4gIHNraWxscz86IFNraWxsW11cbiAgb25TZW5kTWVzc2FnZTogKHRleHQ6IHN0cmluZywgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW10pID0+IHZvaWRcbiAgb25NZW50aW9uQWRkZWQ/OiAobWVudGlvbjogQ29udGV4dE1lbnRpb24pID0+IHZvaWRcbiAgb25DaGFuZ2U/OiAoc3RhdGU6IHsgdGV4dDogc3RyaW5nOyBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXSB9KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvbklucHV0ID0gKHtcbiAgcGxhY2Vob2xkZXIsXG4gIGRpc2FibGVkLFxuICBlbmFibGVkVHlwZXMsXG4gIHNraWxscyxcbiAgb25TZW5kTWVzc2FnZSxcbiAgb25NZW50aW9uQWRkZWQsXG4gIG9uQ2hhbmdlLFxufTogQ29udGV4dE1lbnRpb25JbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICAgIGVuYWJsZWRUeXBlcyxcbiAgICBza2lsbHMsXG4gICAgb25NZW50aW9uQWRkZWQsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlRWRpdG9ySW5wdXQgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgdGV4dCxcbiAgICAgIG1lbnRpb25zLFxuICAgICAgdHJpZ2dlcixcbiAgICB9OiB7XG4gICAgICB0ZXh0OiBzdHJpbmdcbiAgICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgfSkgPT4ge1xuICAgICAgb25DaGFuZ2U/Lih7IHRleHQsIG1lbnRpb25zIH0pXG4gICAgICBoYW5kbGVUcmlnZ2VyKHRyaWdnZXIpXG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIGhhbmRsZVRyaWdnZXJdXG4gIClcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGhhbmRsZVBvcG92ZXJLZXlEb3duKGUpKSByZXR1cm5cblxuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiAhZS5zaGlmdEtleSAmJiAhcG9wb3Zlck9wZW4pIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBlZGl0b3JSZWYuY3VycmVudD8uc2VyaWFsaXplKClcbiAgICAgIGlmICghc3RhdGUgfHwgIXN0YXRlLnRleHQudHJpbSgpKSByZXR1cm5cbiAgICAgIG9uU2VuZE1lc3NhZ2Uoc3RhdGUudGV4dCwgc3RhdGUubWVudGlvbnMpXG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nKClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ01JV3JhcHBlciByZWY9e3dyYXBwZXJSZWZ9PlxuICAgICAgPENvbnRleHRNZW50aW9uRWRpdG9yXG4gICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgIC8+XG4gICAgICB7cG9wb3Zlck5vZGUgJiYgY3JlYXRlUG9ydGFsKHBvcG92ZXJOb2RlLCBkb2N1bWVudC5ib2R5KX1cbiAgICA8L1NDTUlXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQXdCQSxXQUFXLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQzFELFNBQVNDLFlBQVksUUFBUSxXQUFXO0FBQ3hDLFNBQVNDLG9CQUFvQixRQUFvQyxrQ0FBa0M7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
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZVJlZiIsImNyZWF0ZVBvcnRhbCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWVudGlvblBvcG92ZXIiLCJTQ01JV3JhcHBlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDb250ZXh0TWVudGlvbklucHV0IiwiX3JlZiIsInBsYWNlaG9sZGVyIiwiZGlzYWJsZWQiLCJlbmFibGVkVHlwZXMiLCJvblNlbmRNZXNzYWdlIiwib25NZW50aW9uQWRkZWQiLCJvbkNoYW5nZSIsImVkaXRvclJlZiIsIndyYXBwZXJSZWYiLCJfdXNlTWVudGlvblBvcG92ZXIiLCJwb3BvdmVyQW5jaG9yUmVmIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlUG9wb3ZlcktleURvd24iLCJoYW5kbGVLZXlEb3duIiwicG9wb3Zlck5vZGUiLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWYyIiwidGV4dCIsIm1lbnRpb25zIiwidHJpZ2dlciIsImUiLCJrZXkiLCJzaGlmdEtleSIsIl9lZGl0b3JSZWYkY3VycmVudCIsIl9lZGl0b3JSZWYkY3VycmVudDIiLCJwcmV2ZW50RGVmYXVsdCIsInN0YXRlIiwiY3VycmVudCIsInNlcmlhbGl6ZSIsInRyaW0iLCJjbGVhciIsInJlZiIsImNoaWxkcmVuIiwib25JbnB1dCIsIm9uS2V5RG93biIsImRvY3VtZW50IiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Db250ZXh0TWVudGlvbklucHV0L0NvbnRleHRNZW50aW9uSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleWJvYXJkRXZlbnQsIHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IENvbnRleHRNZW50aW9uRWRpdG9yLCBDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZSB9IGZyb20gJy4uLy4uL2F0b21zL0NvbnRleHRNZW50aW9uRWRpdG9yJ1xuaW1wb3J0IHsgdXNlTWVudGlvblBvcG92ZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNZW50aW9uUG9wb3ZlcidcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgU0NNSVdyYXBwZXIgfSBmcm9tICcuL0NvbnRleHRNZW50aW9uSW5wdXQuc3R5bGVzJ1xuXG5leHBvcnQgdHlwZSBDb250ZXh0TWVudGlvbklucHV0UHJvcHMgPSB7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKiogT3ZlcnJpZGUgZGUgdGlwb3MgcGVybWl0aWRvczsgc2kgc2Ugb21pdGUsIHNlIGRlcml2YSBkZSBhZ2VudC5lbnRpdHkgKi9cbiAgZW5hYmxlZFR5cGVzPzogQ29udGV4dEVudGl0eVR5cGVbXVxuICBvblNlbmRNZXNzYWdlOiAodGV4dDogc3RyaW5nLCBtZW50aW9uczogQ29udGV4dE1lbnRpb25bXSkgPT4gdm9pZFxuICBvbk1lbnRpb25BZGRlZD86IChtZW50aW9uOiBDb250ZXh0TWVudGlvbikgPT4gdm9pZFxuICBvbkNoYW5nZT86IChzdGF0ZTogeyB0ZXh0OiBzdHJpbmc7IG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdIH0pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRleHRNZW50aW9uSW5wdXQgPSAoe1xuICBwbGFjZWhvbGRlcixcbiAgZGlzYWJsZWQsXG4gIGVuYWJsZWRUeXBlcyxcbiAgb25TZW5kTWVzc2FnZSxcbiAgb25NZW50aW9uQWRkZWQsXG4gIG9uQ2hhbmdlLFxufTogQ29udGV4dE1lbnRpb25JbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxDb250ZXh0TWVudGlvbkVkaXRvckhhbmRsZT4obnVsbClcbiAgY29uc3Qgd3JhcHBlclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICAgIGVuYWJsZWRUeXBlcyxcbiAgICBvbk1lbnRpb25BZGRlZCxcbiAgfSlcblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB0ZXh0LFxuICAgICAgbWVudGlvbnMsXG4gICAgICB0cmlnZ2VyLFxuICAgIH06IHtcbiAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICB9KSA9PiB7XG4gICAgICBvbkNoYW5nZT8uKHsgdGV4dCwgbWVudGlvbnMgfSlcbiAgICAgIGhhbmRsZVRyaWdnZXIodHJpZ2dlcilcbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlcl1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoaGFuZGxlUG9wb3ZlcktleURvd24oZSkpIHJldHVyblxuXG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5ICYmICFwb3BvdmVyT3Blbikge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUudGV4dC50cmltKCkpIHJldHVyblxuICAgICAgb25TZW5kTWVzc2FnZShzdGF0ZS50ZXh0LCBzdGF0ZS5tZW50aW9ucylcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNDTUlXcmFwcGVyIHJlZj17d3JhcHBlclJlZn0+XG4gICAgICA8Q29udGV4dE1lbnRpb25FZGl0b3JcbiAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbklucHV0PXtoYW5kbGVFZGl0b3JJbnB1dH1cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgLz5cbiAgICAgIHtwb3BvdmVyTm9kZSAmJiBjcmVhdGVQb3J0YWwocG9wb3Zlck5vZGUsIGRvY3VtZW50LmJvZHkpfVxuICAgIDwvU0NNSVdyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBd0JBLFdBQVcsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFDMUQsU0FBU0MsWUFBWSxRQUFRLFdBQVc7QUFDeEMsU0FBU0Msb0JBQW9CLFFBQW9DLGtDQUFrQztBQUNuRyxTQUFTQyxpQkFBaUIsUUFBUSxrQ0FBa0M7QUFFcEUsU0FBU0MsV0FBVyxRQUFRLDhCQUE4QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFZMUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBQyxJQUFBLEVBT0E7RUFBQSxJQU45QkMsV0FBVyxHQUFBRCxJQUFBLENBQVhDLFdBQVc7SUFDWEMsUUFBUSxHQUFBRixJQUFBLENBQVJFLFFBQVE7SUFDUkMsWUFBWSxHQUFBSCxJQUFBLENBQVpHLFlBQVk7SUFDWkMsYUFBYSxHQUFBSixJQUFBLENBQWJJLGFBQWE7SUFDYkMsY0FBYyxHQUFBTCxJQUFBLENBQWRLLGNBQWM7SUFDZEMsUUFBUSxHQUFBTixJQUFBLENBQVJNLFFBQVE7RUFFUixJQUFNQyxTQUFTLEdBQUdqQixNQUFNLENBQTZCLElBQUksQ0FBQztFQUMxRCxJQUFNa0IsVUFBVSxHQUFHbEIsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDL0MsSUFBQW1CLGtCQUFBLEdBTUloQixpQkFBaUIsQ0FBQztNQUNwQmMsU0FBUyxFQUFUQSxTQUFTO01BQ1RHLGdCQUFnQixFQUFFRixVQUFVO01BQzVCTCxZQUFZLEVBQVpBLFlBQVk7TUFDWkUsY0FBYyxFQUFkQTtJQUNGLENBQUMsQ0FBQztJQVZBTSxXQUFXLEdBQUFGLGtCQUFBLENBQVhFLFdBQVc7SUFDWEMsd0JBQXdCLEdBQUFILGtCQUFBLENBQXhCRyx3QkFBd0I7SUFDeEJDLGFBQWEsR0FBQUosa0JBQUEsQ0FBYkksYUFBYTtJQUNFQyxvQkFBb0IsR0FBQUwsa0JBQUEsQ0FBbkNNLGFBQWE7SUFDYkMsV0FBVyxHQUFBUCxrQkFBQSxDQUFYTyxXQUFXO0VBUWIsSUFBTUMsaUJBQWlCLEdBQUc1QixXQUFXLENBQ25DLFVBQUE2QixLQUFBLEVBUU07SUFBQSxJQVBKQyxJQUFJLEdBQUFELEtBQUEsQ0FBSkMsSUFBSTtNQUNKQyxRQUFRLEdBQUFGLEtBQUEsQ0FBUkUsUUFBUTtNQUNSQyxPQUFPLEdBQUFILEtBQUEsQ0FBUEcsT0FBTztJQU1QZixRQUFRLGFBQVJBLFFBQVEsZUFBUkEsUUFBUSxDQUFHO01BQUVhLElBQUksRUFBSkEsSUFBSTtNQUFFQyxRQUFRLEVBQVJBO0lBQVMsQ0FBQyxDQUFDO0lBQzlCUCxhQUFhLENBQUNRLE9BQU8sQ0FBQztFQUN4QixDQUFDLEVBQ0QsQ0FBQ2YsUUFBUSxFQUFFTyxhQUFhLENBQzFCLENBQUM7RUFFRCxJQUFNRSxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlPLENBQWdDLEVBQUs7SUFDMUQsSUFBSVIsb0JBQW9CLENBQUNRLENBQUMsQ0FBQyxFQUFFO0lBRTdCLElBQUlBLENBQUMsQ0FBQ0MsR0FBRyxLQUFLLE9BQU8sSUFBSSxDQUFDRCxDQUFDLENBQUNFLFFBQVEsSUFBSSxDQUFDYixXQUFXLEVBQUU7TUFBQSxJQUFBYyxrQkFBQSxFQUFBQyxtQkFBQTtNQUNwREosQ0FBQyxDQUFDSyxjQUFjLENBQUMsQ0FBQztNQUNsQixJQUFNQyxLQUFLLElBQUFILGtCQUFBLEdBQUdsQixTQUFTLENBQUNzQixPQUFPLGNBQUFKLGtCQUFBLHVCQUFqQkEsa0JBQUEsQ0FBbUJLLFNBQVMsQ0FBQyxDQUFDO01BQzVDLElBQUksQ0FBQ0YsS0FBSyxJQUFJLENBQUNBLEtBQUssQ0FBQ1QsSUFBSSxDQUFDWSxJQUFJLENBQUMsQ0FBQyxFQUFFO01BQ2xDM0IsYUFBYSxDQUFDd0IsS0FBSyxDQUFDVCxJQUFJLEVBQUVTLEtBQUssQ0FBQ1IsUUFBUSxDQUFDO01BQ3pDLENBQUFNLG1CQUFBLEdBQUFuQixTQUFTLENBQUNzQixPQUFPLGNBQUFILG1CQUFBLGVBQWpCQSxtQkFBQSxDQUFtQk0sS0FBSyxDQUFDLENBQUM7TUFDMUJwQix3QkFBd0IsQ0FBQyxDQUFDO0lBQzVCO0VBQ0YsQ0FBQztFQUVELG9CQUNFZCxLQUFBLENBQUNKLFdBQVc7SUFBQ3VDLEdBQUcsRUFBRXpCLFVBQVc7SUFBQTBCLFFBQUEsZ0JBQzNCdEMsSUFBQSxDQUFDSixvQkFBb0I7TUFDbkJ5QyxHQUFHLEVBQUUxQixTQUFVO01BQ2ZOLFdBQVcsRUFBRUEsV0FBWTtNQUN6QkMsUUFBUSxFQUFFQSxRQUFTO01BQ25CaUMsT0FBTyxFQUFFbEIsaUJBQWtCO01BQzNCbUIsU0FBUyxFQUFFckI7SUFBYyxDQUMxQixDQUFDLEVBQ0RDLFdBQVcsaUJBQUl6QixZQUFZLENBQUN5QixXQUFXLEVBQUVxQixRQUFRLENBQUNDLElBQUksQ0FBQztFQUFBLENBQzdDLENBQUM7QUFFbEIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==