@projectcor/maia-components 2.35.3 → 2.35.4-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 (210) hide show
  1. package/CHANGELOG.md +727 -0
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +63 -4
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
  4. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +16 -4
  5. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  6. package/lib/components/atoms/Chip/Chip.spec.js +32 -0
  7. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  8. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +12 -1
  9. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +127 -5
  10. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
  11. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
  12. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +2 -19
  13. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  14. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +4 -20
  15. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -18
  16. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  17. package/lib/components/atoms/MAIAInput/MAIAInput.js +243 -42
  18. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +283 -0
  19. package/lib/components/atoms/MAIAInput/styles.js +41 -44
  20. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +68 -0
  21. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
  22. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  23. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
  24. package/lib/components/atoms/SkillsDropdown/index.js +2 -0
  25. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
  26. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  27. package/lib/components/atoms/icons/PlusIcon.js +29 -0
  28. package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
  29. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
  30. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
  31. package/lib/components/atoms/icons/SkillsNavIcon.js +4 -7
  32. package/lib/components/atoms/icons/index.js +5 -1
  33. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +34 -11
  34. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
  35. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -3
  36. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -16
  37. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +2 -23
  38. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +5 -33
  39. package/lib/components/molecules/ChatAIHome/styles.js +2 -11
  40. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +20 -31
  41. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  42. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -3
  43. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
  44. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  45. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +59 -20
  46. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  47. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -8
  48. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +9 -15
  49. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -14
  50. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  51. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +11 -17
  52. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -14
  53. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  54. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +2 -12
  55. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  56. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +333 -242
  57. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  58. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +131 -104
  59. package/lib/components/molecules/ChatFooter/ChatFooter.js +57 -63
  60. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +105 -0
  61. package/lib/components/molecules/ChatFooter/styles.js +6 -12
  62. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
  63. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  64. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  65. package/lib/components/molecules/Sidebar/Sidebar.js +13 -6
  66. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +3 -3
  67. package/lib/components/molecules/Sidebar/Sidebar.spec.js +183 -0
  68. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +30 -46
  69. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
  70. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +8 -1
  71. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +430 -184
  72. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +293 -0
  73. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +132 -72
  74. package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
  75. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  76. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  77. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  78. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  79. package/lib/constants/config.js +1 -4
  80. package/lib/constants/permissions/utils.js +3 -3
  81. package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
  82. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
  83. package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
  84. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
  85. package/lib/hooks/useCaretPosition.spec.js +58 -0
  86. package/lib/hooks/useChatManager/useChatManager.js +12 -19
  87. package/lib/hooks/useContextMentions.js +96 -56
  88. package/lib/hooks/useDebounce.spec.js +42 -0
  89. package/lib/hooks/useEntitySearch.js +92 -278
  90. package/lib/hooks/useEvent.js +15 -2
  91. package/lib/hooks/useEvent.spec.js +40 -0
  92. package/lib/hooks/useMentionAllowedTypes.js +9 -25
  93. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  94. package/lib/hooks/useMentionPopover.js +9 -33
  95. package/lib/hooks/useModal/useModal.spec.js +73 -0
  96. package/lib/hooks/useResize.spec.js +37 -0
  97. package/lib/hooks/useSkillsCatalog.js +66 -0
  98. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  99. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  100. package/lib/hooks/useT.spec.js +20 -0
  101. package/lib/hooks/useToggle.spec.js +33 -0
  102. package/lib/lang/br/index.js +39 -12
  103. package/lib/lang/en/index.js +39 -12
  104. package/lib/lang/es/index.js +40 -13
  105. package/lib/lang/fr/index.js +40 -13
  106. package/lib/services/maia/Access/updateAccess.spec.js +108 -0
  107. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
  108. package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
  109. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  110. package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
  111. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  112. package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
  113. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
  114. package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
  115. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  116. package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
  117. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  118. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  119. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  120. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  121. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  122. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  123. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  124. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  125. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  126. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  127. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  128. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  129. package/lib/services/maia/Orchestrator/orchestrator.js +16 -7
  130. package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
  131. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  132. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
  133. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  134. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  135. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  136. package/lib/services/maia/Skills/createSkill.js +1 -1
  137. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  138. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  139. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  140. package/lib/services/maia/Skills/getSkills.js +70 -40
  141. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  142. package/lib/services/maia/Skills/updateSkill.js +1 -1
  143. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  144. package/lib/services/maia/client.spec.js +56 -0
  145. package/lib/services/maia/index.js +2 -4
  146. package/lib/services/utils/fetchCOR.js +57 -106
  147. package/lib/services/utils/fetchCOR.spec.js +211 -0
  148. package/lib/services/utils/getCookie.spec.js +20 -0
  149. package/lib/services/utils/index.js +1 -2
  150. package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
  151. package/lib/store/faqsStore.types.js +1 -1
  152. package/lib/store/index.js +1 -2
  153. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  154. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  155. package/lib/store/sessions/sessionStreamManager.js +7 -24
  156. package/lib/store/sessions/sessions.types.spec.js +16 -0
  157. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  158. package/lib/store/useChatsStore.js +3 -3
  159. package/lib/store/useChatsStore.spec.js +619 -0
  160. package/lib/store/useFaqsStore.spec.js +57 -0
  161. package/lib/test/buttonMock.js +22 -0
  162. package/lib/test/fetchPolyfill.js +160 -0
  163. package/lib/test/fileMock.js +2 -0
  164. package/lib/test/global-context.js +49 -0
  165. package/lib/test/iconMock.js +19 -0
  166. package/lib/test/mockFetch.js +49 -0
  167. package/lib/test/portalRoot.js +13 -0
  168. package/lib/test/styleMock.js +2 -0
  169. package/lib/test/test-utils.js +26 -0
  170. package/lib/test/tooltipMock.js +11 -0
  171. package/lib/types/Chat.js +1 -1
  172. package/lib/types/FrequentlyAskedQuestion.js +1 -1
  173. package/lib/types/agentModal.js +1 -1
  174. package/lib/types/skill.js +1 -1
  175. package/lib/utils/agentDisplayName.spec.js +44 -0
  176. package/lib/utils/autoApproveStorage.spec.js +25 -0
  177. package/lib/utils/chatInputFiles.spec.js +39 -0
  178. package/lib/utils/contextMentionLabel.spec.js +13 -0
  179. package/lib/utils/contextMentionTriggers.js +2 -5
  180. package/lib/utils/contextMentionTriggers.spec.js +38 -0
  181. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  182. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  183. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  184. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  185. package/lib/utils/formatUnreadCount.spec.js +12 -0
  186. package/lib/utils/getUnitFileSize.spec.js +18 -0
  187. package/lib/utils/hitlAnalytics.spec.js +100 -0
  188. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  189. package/lib/utils/mapBackendLang.spec.js +19 -0
  190. package/lib/utils/normalizeAgentConnectors.js +44 -16
  191. package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
  192. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  193. package/lib/utils/reasoningMappers.spec.js +103 -0
  194. package/lib/utils/renderContextMentions.js +39 -18
  195. package/lib/utils/retryCompletion.spec.js +99 -0
  196. package/lib/utils/skillContentSize.spec.js +13 -0
  197. package/lib/utils/slashCommandMarker.spec.js +43 -0
  198. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  199. package/lib/utils/sseStreamContent.spec.js +31 -0
  200. package/lib/utils/streamActivityMessages.spec.js +98 -0
  201. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  202. package/package.json +9 -6
  203. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -33
  204. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -47
  205. package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
  206. package/lib/services/maia/Usage/getUsage.js +0 -45
  207. package/lib/services/maia/Usage/index.js +0 -6
  208. package/lib/services/utils/MaiaApiError.js +0 -34
  209. package/lib/store/useUsageStore.js +0 -108
  210. package/lib/types/usage.js +0 -9
@@ -18,14 +18,13 @@ import { MAIAInput } from '../../atoms/MAIAInput';
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 { SCComposerBlockedStack, StyledChatFooter } from './styles';
21
+ import { StyledChatFooter } from './styles';
22
22
  import { TaskLinkIcon } from '../../atoms/icons/TaskLinkIcon';
23
23
  import { CsvFileIcon, MDFileIcon, DocFileIcon, DocxFileIcon, PptFileIcon, PptxFileIcon, TextFileIcon, PdfFileIcon, ImageFileIcon, XlsxFileIcon, XlsFileIcon, Mp3FileIcon, WavFileIcon, FlacFileIcon, M4aFileIcon, Mp4FileIcon, OgaFileIcon, OggFileIcon, WebmFileIcon } from '../../atoms/icons';
24
24
  import { preprocessImageForBackend } from '../../../utils/imagePreprocessor';
25
25
  import { validateIsMaia } from '../../../services/utils/validateIsMaia';
26
26
  import { isMaiakerAgent } from '../../../utils/agentDisplayName';
27
27
  import { ChatDisclaimerMessage } from '../../atoms/ChatDisclaimerMessage';
28
- import { UsageBlockedBanner } from '../UsageBlockedBanner';
29
28
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
30
29
  export var IconByFileType = {
31
30
  'text/plain': /*#__PURE__*/_jsx(TextFileIcon, {}),
@@ -54,10 +53,6 @@ export function ChatFooter(_ref) {
54
53
  var onSendMessage = _ref.onSendMessage,
55
54
  items = _ref.items,
56
55
  disabled = _ref.disabled,
57
- _ref$usageBlocked = _ref.usageBlocked,
58
- usageBlocked = _ref$usageBlocked === void 0 ? false : _ref$usageBlocked,
59
- _ref$usageBlockedMess = _ref.usageBlockedMessage,
60
- usageBlockedMessage = _ref$usageBlockedMess === void 0 ? null : _ref$usageBlockedMess,
61
56
  isStreaming = _ref.isStreaming,
62
57
  isWriting = _ref.isWriting,
63
58
  onStopGeneration = _ref.onStopGeneration,
@@ -179,13 +174,24 @@ export function ChatFooter(_ref) {
179
174
  }, fromDeepLink ? {
180
175
  source: 'deep_link'
181
176
  } : {}));
177
+ var skillIds = (mentions !== null && mentions !== void 0 ? mentions : []).filter(function (mention) {
178
+ return mention.type === 'skill';
179
+ }).map(function (mention) {
180
+ return String(mention.id);
181
+ });
182
+ if (skillIds.length > 0) {
183
+ event(EVENTS.aiChatSkillSend, {
184
+ skill_ids: skillIds,
185
+ skill_count: skillIds.length,
186
+ agent_type: isMarketplaceGlobalAgent ? 'marketplace' : agent === null || agent === void 0 ? void 0 : agent.type
187
+ });
188
+ }
182
189
  onSendMessage(message, newAttachments, faqId, agentSuggestionId, mentions, fuaId, scId);
183
190
  setAttachments([]);
184
191
  };
185
192
  var handleSelectFaq = function handleSelectFaq(message, faqId) {
186
193
  onSendMessage(message, undefined, faqId, undefined);
187
194
  };
188
- var isComposerDisabled = Boolean(disabled || usageBlocked);
189
195
  var handleFileAttach = /*#__PURE__*/function () {
190
196
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
191
197
  var _fileNameParts$pop;
@@ -193,12 +199,6 @@ export function ChatFooter(_ref) {
193
199
  return _regeneratorRuntime.wrap(function (_context) {
194
200
  while (1) switch (_context.prev = _context.next) {
195
201
  case 0:
196
- if (!isComposerDisabled) {
197
- _context.next = 1;
198
- break;
199
- }
200
- return _context.abrupt("return");
201
- case 1:
202
202
  fileNameParts = file.name.split('.');
203
203
  fileExtension = fileNameParts.length > 1 ? ".".concat((_fileNameParts$pop = fileNameParts.pop()) === null || _fileNameParts$pop === void 0 ? void 0 : _fileNameParts$pop.toLowerCase()) : '';
204
204
  isImageByExtension = ['.png', '.jpg', '.jpeg'].includes(fileExtension);
@@ -250,21 +250,21 @@ export function ChatFooter(_ref) {
250
250
  }
251
251
  processedFile = file; // Si es una imagen, pre-procesarla para el backend (el chip del input usa el ícono de tipo).
252
252
  if (!isImage) {
253
- _context.next = 5;
253
+ _context.next = 4;
254
254
  break;
255
255
  }
256
- _context.prev = 2;
257
- _context.next = 3;
256
+ _context.prev = 1;
257
+ _context.next = 2;
258
258
  return preprocessImageForBackend(file);
259
- case 3:
259
+ case 2:
260
260
  processedFile = _context.sent;
261
- _context.next = 5;
261
+ _context.next = 4;
262
262
  break;
263
- case 4:
264
- _context.prev = 4;
265
- _t = _context["catch"](2);
263
+ case 3:
264
+ _context.prev = 3;
265
+ _t = _context["catch"](1);
266
266
  console.error('Error pre-procesando imagen:', _t);
267
- case 5:
267
+ case 4:
268
268
  newAttachment = {
269
269
  file: processedFile,
270
270
  originalFile: isImage ? file : undefined,
@@ -277,11 +277,11 @@ export function ChatFooter(_ref) {
277
277
  setAttachments(function (prev) {
278
278
  return [].concat(_toConsumableArray(prev), [newAttachment]);
279
279
  });
280
- case 6:
280
+ case 5:
281
281
  case "end":
282
282
  return _context.stop();
283
283
  }
284
- }, _callee, null, [[2, 4]]);
284
+ }, _callee, null, [[1, 3]]);
285
285
  }));
286
286
  return function handleFileAttach(_x) {
287
287
  return _ref2.apply(this, arguments);
@@ -309,47 +309,41 @@ export function ChatFooter(_ref) {
309
309
  }) : undefined
310
310
  };
311
311
  }, [isMAIA, loadingMessages, chipItems, chipType]);
312
- var composerInput = /*#__PURE__*/_jsx(MAIAInput, {
313
- popoverAnchorRef: inputPopoverAnchorRef,
314
- onSendMessage: handleSendMessage,
315
- className: MODAL_ELEMENTS,
316
- disabled: isComposerDisabled,
317
- usageBlocked: usageBlocked,
318
- placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
319
- onChange: onChange,
320
- onFocus: onInputFocus,
321
- onFileAttach: handleFileAttach,
322
- onDeleteAttachment: handleDeleteAttachment,
323
- attachments: attachments.filter(function (att) {
324
- return !!att.file;
325
- }).map(function (att) {
326
- return {
327
- file: att.file,
328
- originalFile: att.originalFile,
329
- id: att.id,
330
- name: att.name,
331
- size: typeof att.size === 'number' ? att.size : Number(att.size) || 0,
332
- type: att.type,
333
- icon: att.icon
334
- };
335
- }),
336
- isStreaming: isStreaming,
337
- isWriting: isWriting,
338
- onStopGeneration: onStopGeneration,
339
- chatId: chatId || undefined,
340
- newChatKey: newChatKey,
341
- tooltipZIndex: tooltipZIndex,
342
- layoutMode: layoutMode,
343
- contextChip: contextChip
344
- });
345
312
  return /*#__PURE__*/_jsxs(StyledChatFooter, {
346
- children: [usageBlocked ? /*#__PURE__*/_jsxs(SCComposerBlockedStack, {
347
- children: [/*#__PURE__*/_jsx(UsageBlockedBanner, {
348
- message: usageBlockedMessage
349
- }), composerInput]
350
- }) : composerInput, /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
313
+ children: [/*#__PURE__*/_jsx(MAIAInput, {
314
+ popoverAnchorRef: inputPopoverAnchorRef,
315
+ onSendMessage: handleSendMessage,
316
+ className: MODAL_ELEMENTS,
317
+ disabled: disabled,
318
+ placeholder: (agent === null || agent === void 0 ? void 0 : agent.input_placeholder) || (isOrchestrator ? t('chat.footer.orchestratorPlaceholder') : t('chat.footer.placeholder')),
319
+ onChange: onChange,
320
+ onFocus: onInputFocus,
321
+ onFileAttach: handleFileAttach,
322
+ onDeleteAttachment: handleDeleteAttachment,
323
+ attachments: attachments.filter(function (att) {
324
+ return !!att.file;
325
+ }).map(function (att) {
326
+ return {
327
+ file: att.file,
328
+ originalFile: att.originalFile,
329
+ id: att.id,
330
+ name: att.name,
331
+ size: typeof att.size === 'number' ? att.size : Number(att.size) || 0,
332
+ type: att.type,
333
+ icon: att.icon
334
+ };
335
+ }),
336
+ isStreaming: isStreaming,
337
+ isWriting: isWriting,
338
+ onStopGeneration: onStopGeneration,
339
+ chatId: chatId || undefined,
340
+ newChatKey: newChatKey,
341
+ tooltipZIndex: tooltipZIndex,
342
+ layoutMode: layoutMode,
343
+ contextChip: contextChip
344
+ }), /*#__PURE__*/_jsx(ChatDisclaimerMessage, {
351
345
  message: disclaimerMessage
352
346
  })]
353
347
  });
354
348
  }
355
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrIiwiU3R5bGVkQ2hhdEZvb3RlciIsIlRhc2tMaW5rSWNvbiIsIkNzdkZpbGVJY29uIiwiTURGaWxlSWNvbiIsIkRvY0ZpbGVJY29uIiwiRG9jeEZpbGVJY29uIiwiUHB0RmlsZUljb24iLCJQcHR4RmlsZUljb24iLCJUZXh0RmlsZUljb24iLCJQZGZGaWxlSWNvbiIsIkltYWdlRmlsZUljb24iLCJYbHN4RmlsZUljb24iLCJYbHNGaWxlSWNvbiIsIk1wM0ZpbGVJY29uIiwiV2F2RmlsZUljb24iLCJGbGFjRmlsZUljb24iLCJNNGFGaWxlSWNvbiIsIk1wNEZpbGVJY29uIiwiT2dhRmlsZUljb24iLCJPZ2dGaWxlSWNvbiIsIldlYm1GaWxlSWNvbiIsInByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQiLCJ2YWxpZGF0ZUlzTWFpYSIsImlzTWFpYWtlckFnZW50IiwiQ2hhdERpc2NsYWltZXJNZXNzYWdlIiwiVXNhZ2VCbG9ja2VkQmFubmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkljb25CeUZpbGVUeXBlIiwiQ2hhdEZvb3RlciIsIl9yZWYiLCJvblNlbmRNZXNzYWdlIiwiaXRlbXMiLCJkaXNhYmxlZCIsIl9yZWYkdXNhZ2VCbG9ja2VkIiwidXNhZ2VCbG9ja2VkIiwiX3JlZiR1c2FnZUJsb2NrZWRNZXNzIiwidXNhZ2VCbG9ja2VkTWVzc2FnZSIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwibGF5b3V0TW9kZSIsIm9uSW5wdXRGb2N1cyIsIl91c2VHbG9iYWxDb250ZXh0IiwicHJvamVjdCIsImFnZW50IiwiY2hpcHNQcm9qZWN0IiwiY2xpZW50IiwidGFzayIsImRlZXBMaW5rU2VuZFBlbmRpbmdSZWYiLCJfdXNlVCIsInQiLCJldmVudCIsImlucHV0UG9wb3ZlckFuY2hvclJlZiIsImlzT3JjaGVzdHJhdG9yIiwidHlwZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImF0dGFjaG1lbnRzIiwic2V0QXR0YWNobWVudHMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImxvYWRpbmdNZXNzYWdlcyIsInNldExvYWRpbmdNZXNzYWdlcyIsInJlcG9ydGVkRXZlbnQiLCJpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQiLCJoYW5kbGVMb2FkaW5nTWVzc2FnZXNDaGFuZ2UiLCJlIiwiZGV0YWlsIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVNlc3Npb25DaGFuZ2UiLCJjdXJyZW50IiwiX3VzZU1lbW8iLCJjaGlwSXRlbXMiLCJuYW1lIiwiY2hpcFR5cGUiLCJwcm9qZWN0TmFtZSIsImVudGl0eSIsIm9uQ2hhbmdlIiwicG1BaVR5cGVkVGV4dCIsImFnZW50X3R5cGUiLCJoYW5kbGVTZW5kTWVzc2FnZSIsIm1lc3NhZ2UiLCJuZXdBdHRhY2htZW50cyIsIm1lbnRpb25zIiwiZmFxSWQiLCJhZ2VudFN1Z2dlc3Rpb25JZCIsImZ1YUlkIiwic2NJZCIsImZyb21EZWVwTGluayIsIkJvb2xlYW4iLCJhaUNoYXRTZW5kIiwiX29iamVjdFNwcmVhZCIsImFnZW50X2lkIiwiaWQiLCJhZ2VudF9uYW1lIiwic291cmNlIiwiaGFuZGxlU2VsZWN0RmFxIiwidW5kZWZpbmVkIiwiaXNDb21wb3NlckRpc2FibGVkIiwiaGFuZGxlRmlsZUF0dGFjaCIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJmaWxlIiwiX2ZpbGVOYW1lUGFydHMkcG9wIiwiZmlsZU5hbWVQYXJ0cyIsImZpbGVFeHRlbnNpb24iLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwiaXNJbWFnZSIsImV4dGVuc2lvblRvSWNvbiIsImljb24iLCJleHRlbnNpb25Ub01pbWVUeXBlIiwibWltZVR5cGVCeUV4dGVuc2lvbiIsInByb2Nlc3NlZEZpbGUiLCJuZXdBdHRhY2htZW50IiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInNwbGl0IiwibGVuZ3RoIiwiY29uY2F0IiwicG9wIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsInN0YXJ0c1dpdGgiLCJjb2xvciIsIndpZHRoIiwiaGVpZ2h0Iiwic2VudCIsImNvbnNvbGUiLCJlcnJvciIsIm9yaWdpbmFsRmlsZSIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic2l6ZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImZpbHRlciIsImF0dGFjaG1lbnQiLCJpc01BSUEiLCJkaXNjbGFpbWVyTWVzc2FnZSIsImFnZW50TmFtZSIsImNvbnRleHRDaGlwIiwibGVhZGluZ0ljb24iLCJjb21wb3NlcklucHV0IiwicG9wb3ZlckFuY2hvclJlZiIsImNsYXNzTmFtZSIsInBsYWNlaG9sZGVyIiwiaW5wdXRfcGxhY2Vob2xkZXIiLCJvbkZvY3VzIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiYXR0IiwibWFwIiwiTnVtYmVyIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyBSZWFjdE5vZGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgTUFJQUlucHV0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUlucHV0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgU0NDb21wb3NlckJsb2NrZWRTdGFjaywgU3R5bGVkQ2hhdEZvb3RlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgVGFza0xpbmtJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGFza0xpbmtJY29uJ1xuaW1wb3J0IHtcbiAgQ3N2RmlsZUljb24sXG4gIE1ERmlsZUljb24sXG4gIERvY0ZpbGVJY29uLFxuICBEb2N4RmlsZUljb24sXG4gIFBwdEZpbGVJY29uLFxuICBQcHR4RmlsZUljb24sXG4gIFRleHRGaWxlSWNvbixcbiAgUGRmRmlsZUljb24sXG4gIEltYWdlRmlsZUljb24sXG4gIFhsc3hGaWxlSWNvbixcbiAgWGxzRmlsZUljb24sXG4gIE1wM0ZpbGVJY29uLFxuICBXYXZGaWxlSWNvbixcbiAgRmxhY0ZpbGVJY29uLFxuICBNNGFGaWxlSWNvbixcbiAgTXA0RmlsZUljb24sXG4gIE9nYUZpbGVJY29uLFxuICBPZ2dGaWxlSWNvbixcbiAgV2VibUZpbGVJY29uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVByZXByb2Nlc3NvcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuaW1wb3J0IHsgVXNhZ2VCbG9ja2VkQmFubmVyIH0gZnJvbSAnLi4vVXNhZ2VCbG9ja2VkQmFubmVyJ1xuaW1wb3J0IHR5cGUgeyBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2xheW91dCdcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudEZpbGUgPSB7XG4gIGZpbGU6IEZpbGVcbiAgb3JpZ2luYWxGaWxlPzogRmlsZVxuICB1cmxfdGh1bWJuYWlsPzogc3RyaW5nXG4gIHVybF9vcmlnaW5hbD86IHN0cmluZ1xuICB1cmxfZmlsZT86IHN0cmluZ1xuICByb2xlPzogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG4gIGV4dD86IHN0cmluZ1xuICBzdGF0dXM/OiAncGVuZGluZycgfCAncHJvY2Vzc2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8ICdzdGFydGVkJ1xufVxuXG50eXBlIENoYXRGb290ZXJQcm9wcyA9IHtcbiAgaXRlbXM/OiBzdHJpbmdbXVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgLyoqIFBvb2wgZGUgdXNvcyBhZ290YWRvOiBiYW5uZXIgQmxvcXVlbyArIGNvbXBvc2VyIGRlc2hhYmlsaXRhZG8uICovXG4gIHVzYWdlQmxvY2tlZD86IGJvb2xlYW5cbiAgLyoqIE1lbnNhamUgZGVsIDQwMiB1c2FnZV9xdW90YV9leGNlZWRlZCAoeWEgbG9jYWxpemFkbykuICovXG4gIHVzYWdlQmxvY2tlZE1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIG9uU2VuZE1lc3NhZ2U6IChcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIG1lbnRpb25zPzogQ29udGV4dE1lbnRpb25bXSxcbiAgICBmdWFJZD86IHN0cmluZyxcbiAgICBzY0lkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBvblN0b3BHZW5lcmF0aW9uPzogKCgpID0+IHZvaWQpIHwgbnVsbFxuICBjaGF0SWQ/OiBzdHJpbmcgfCBudWxsXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICBsYXlvdXRNb2RlPzogTWFpYUNoYXRNb2RhbExheW91dE1vZGVcbiAgb25JbnB1dEZvY3VzPzogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgSWNvbkJ5RmlsZVR5cGUgPSB7XG4gICd0ZXh0L3BsYWluJzogPFRleHRGaWxlSWNvbiAvPixcbiAgJ3RleHQveC1tYXJrZG93bic6IDxNREZpbGVJY29uIC8+LFxuICAndGV4dC9jc3YnOiA8Q3N2RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnOiA8RG9jRmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCc6IDxEb2N4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nOiA8UHB0eEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vcGRmJzogPFBkZkZpbGVJY29uIC8+LFxuICAnaW1hZ2UvcG5nJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGVnJzogPEltYWdlRmlsZUljb24gLz4sXG4gICdpbWFnZS9qcGcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JzogPFhsc3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCc6IDxYbHNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wZWcnOiA8TXAzRmlsZUljb24gLz4sXG4gICdhdWRpby9mbGFjJzogPEZsYWNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL21wNCc6IDxNcDRGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL200YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL29nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dhdic6IDxXYXZGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL3dlYm0nOiA8V2VibUZpbGVJY29uIC8+LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hhdEZvb3Rlcih7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGl0ZW1zLFxuICBkaXNhYmxlZCxcbiAgdXNhZ2VCbG9ja2VkID0gZmFsc2UsXG4gIHVzYWdlQmxvY2tlZE1lc3NhZ2UgPSBudWxsLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG4gIHRvb2x0aXBaSW5kZXgsXG4gIGxheW91dE1vZGUsXG4gIG9uSW5wdXRGb2N1cyxcbn06IENoYXRGb290ZXJQcm9wcykge1xuICBjb25zdCB7IHByb2plY3QsIGFnZW50LCBjaGlwc1Byb2plY3QsIGNsaWVudCwgdGFzaywgZGVlcExpbmtTZW5kUGVuZGluZ1JlZiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBpbnB1dFBvcG92ZXJBbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9yID0gYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIGNvbnN0IFthdHRhY2htZW50cywgc2V0QXR0YWNobWVudHNdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGVbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCByZXBvcnRlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPSBpc01haWFrZXJBZ2VudChhZ2VudClcblxuICAvLyB1c2VFZmZlY3QgdG8gbGlzdGVuIGxvYWRpbmdNZXNzYWdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSA9IChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGUuZGV0YWlsLmxvYWRpbmdNZXNzYWdlcylcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBDbGVhciBhdHRhY2htZW50cyB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgICAgc2V0QXR0YWNobWVudHMoW10pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtkZWVwTGlua1NlbmRQZW5kaW5nUmVmXSlcblxuICBjb25zdCB7IGNoaXBJdGVtcywgY2hpcFR5cGUgfSA9IHVzZU1lbW88eyBjaGlwSXRlbXM6IHN0cmluZ1tdOyBjaGlwVHlwZT86IENvbnRleHRFbnRpdHlUeXBlIH0+KCgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHJldHVybiB7IGNoaXBJdGVtczogaXRlbXMgfVxuXG4gICAgLy8gTW9uby1jb250ZXh0bzogc29sbyBsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgKHNpbiBhbmlkYXIgY2xpZW50ZS9wcm95ZWN0by90YXJlYSkuXG4gICAgaWYgKGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJykge1xuICAgICAgaWYgKHRhc2s/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Rhc2submFtZV0sIGNoaXBUeXBlOiAndGFzaycgfVxuICAgICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgICAgaWYgKGNsaWVudD8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gICAgfVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnICYmIGNsaWVudD8ubmFtZSkge1xuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgIH1cbiAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgIGlmIChwcm9qZWN0Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtwcm9qZWN0Lm5hbWVdLCBjaGlwVHlwZTogJ3Byb2plY3QnIH1cblxuICAgIHJldHVybiB7IGNoaXBJdGVtczogW10gfVxuICB9LCBbaXRlbXMsIHByb2plY3QsIGNoaXBzUHJvamVjdCwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGNsaWVudCwgdGFzaz8ubmFtZV0pXG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHJlcG9ydGVkRXZlbnQuY3VycmVudCkgcmV0dXJuXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICB9KVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgZnJvbURlZXBMaW5rID0gQm9vbGVhbihkZWVwTGlua1NlbmRQZW5kaW5nUmVmPy5jdXJyZW50KVxuICAgIGlmIChkZWVwTGlua1NlbmRQZW5kaW5nUmVmKSB7XG4gICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH1cbiAgICBldmVudChFVkVOVFMuYWlDaGF0U2VuZCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgICAgLi4uKGZyb21EZWVwTGluayA/IHsgc291cmNlOiAnZGVlcF9saW5rJyB9IDoge30pLFxuICAgIH0pXG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCBuZXdBdHRhY2htZW50cywgZmFxSWQsIGFnZW50U3VnZ2VzdGlvbklkLCBtZW50aW9ucywgZnVhSWQsIHNjSWQpXG4gICAgc2V0QXR0YWNobWVudHMoW10pXG4gIH1cblxuICBjb25zdCBoYW5kbGVTZWxlY3RGYXEgPSAobWVzc2FnZTogc3RyaW5nLCBmYXFJZDogc3RyaW5nKSA9PiB7XG4gICAgb25TZW5kTWVzc2FnZShtZXNzYWdlLCB1bmRlZmluZWQsIGZhcUlkLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBpc0NvbXBvc2VyRGlzYWJsZWQgPSBCb29sZWFuKGRpc2FibGVkIHx8IHVzYWdlQmxvY2tlZClcblxuICBjb25zdCBoYW5kbGVGaWxlQXR0YWNoID0gYXN5bmMgKGZpbGU6IEZpbGUpID0+IHtcbiAgICBpZiAoaXNDb21wb3NlckRpc2FibGVkKSByZXR1cm5cblxuICAgIGNvbnN0IGZpbGVOYW1lUGFydHMgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKVxuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgY29uc3QgaXNJbWFnZUJ5TWltZSA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgIC8vIFNpIGVsIE1JTUUgbm8gZGlzdGluZ3VlIGJpZW4gbGEgZXh0ZW5zacOzbiAoYXVkaW8vb2dnLCBhdWRpby9tcDQsIFBvd2VyUG9pbnQpLCB1c2FyIGVsIGljb25vIHBvciBleHRlbnNpw7NuXG4gICAgY29uc3QgZXh0ZW5zaW9uVG9JY29uOiBSZWNvcmQ8c3RyaW5nLCBSZWFjdE5vZGU+ID0ge1xuICAgICAgJy5vZ2cnOiA8T2dnRmlsZUljb24gLz4sXG4gICAgICAnLm9nYSc6IDxPZ2FGaWxlSWNvbiAvPixcbiAgICAgICcubXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAgICAgJy5tNGEnOiA8TTRhRmlsZUljb24gLz4sXG4gICAgICAnLnBwdCc6IDxQcHRGaWxlSWNvbiAvPixcbiAgICAgICcucHB0eCc6IDxQcHR4RmlsZUljb24gLz4sXG4gICAgfVxuXG4gICAgbGV0IGljb24gPSBJY29uQnlGaWxlVHlwZVtmaWxlLnR5cGVdXG5cbiAgICAvLyBTaSBlbCB0aXBvIGVzIGF1ZGlvL29nZywgYXVkaW8vbXA0IG8gUG93ZXJQb2ludCBnZW7DqXJpY28sIHVzYXIgbGEgZXh0ZW5zacOzbiBwYXJhIGVsIGljb25vXG4gICAgaWYgKFxuICAgICAgKGZpbGUudHlwZSA9PT0gJ2F1ZGlvL29nZycgfHwgZmlsZS50eXBlID09PSAnYXVkaW8vbXA0JyB8fCBmaWxlLnR5cGUgPT09ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcpICYmXG4gICAgICBmaWxlRXh0ZW5zaW9uXG4gICAgKSB7XG4gICAgICBpY29uID0gZXh0ZW5zaW9uVG9JY29uW2ZpbGVFeHRlbnNpb25dIHx8IGljb25cbiAgICB9XG5cbiAgICBpZiAoIWljb24pIHtcbiAgICAgIGNvbnN0IGV4dGVuc2lvblRvTWltZVR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgICcudHh0JzogJ3RleHQvcGxhaW4nLFxuICAgICAgICAnLm1kJzogJ3RleHQveC1tYXJrZG93bicsXG4gICAgICAgICcuY3N2JzogJ3RleHQvY3N2JyxcbiAgICAgICAgJy5kb2MnOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICAgJy5kb2N4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAgICAgJy5wcHQnOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLFxuICAgICAgICAnLnBwdHgnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgICAgICcucGRmJzogJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICcueGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICcueGxzJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICcuZmxhYyc6ICdhdWRpby9mbGFjJyxcbiAgICAgICAgJy5tNGEnOiAnYXVkaW8vbTRhJyxcbiAgICAgICAgJy5tcDMnOiAnYXVkaW8vbXBlZycsXG4gICAgICAgICcubXA0JzogJ2F1ZGlvL21wNCcsXG4gICAgICAgICcub2dhJzogJ2F1ZGlvL29nYScsXG4gICAgICAgICcub2dnJzogJ2F1ZGlvL29nZycsXG4gICAgICAgICcud2F2JzogJ2F1ZGlvL3dhdicsXG4gICAgICAgICcud2VibSc6ICdhdWRpby93ZWJtJyxcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlQnlFeHRlbnNpb24gPSBleHRlbnNpb25Ub01pbWVUeXBlW2ZpbGVFeHRlbnNpb25dXG4gICAgICBpZiAobWltZVR5cGVCeUV4dGVuc2lvbikge1xuICAgICAgICBpY29uID0gSWNvbkJ5RmlsZVR5cGVbbWltZVR5cGVCeUV4dGVuc2lvbl1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGljb24gPSA8QXR0YWNoIGNvbG9yPVwicmdiYSgxMzUsIDY0LCAxOTEsIDEpXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcHJvY2Vzc2VkRmlsZSA9IGZpbGVcblxuICAgIC8vIFNpIGVzIHVuYSBpbWFnZW4sIHByZS1wcm9jZXNhcmxhIHBhcmEgZWwgYmFja2VuZCAoZWwgY2hpcCBkZWwgaW5wdXQgdXNhIGVsIMOtY29ubyBkZSB0aXBvKS5cbiAgICBpZiAoaXNJbWFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJvY2Vzc2VkRmlsZSA9IGF3YWl0IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQoZmlsZSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByZS1wcm9jZXNhbmRvIGltYWdlbjonLCBlcnJvcilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSA9IHtcbiAgICAgIGZpbGU6IHByb2Nlc3NlZEZpbGUsXG4gICAgICBvcmlnaW5hbEZpbGU6IGlzSW1hZ2UgPyBmaWxlIDogdW5kZWZpbmVkLFxuICAgICAgaWQ6IGAke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKX1gLFxuICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgc2l6ZTogcHJvY2Vzc2VkRmlsZS5zaXplLFxuICAgICAgdHlwZTogcHJvY2Vzc2VkRmlsZS50eXBlLFxuICAgICAgaWNvbixcbiAgICB9XG5cbiAgICBzZXRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBuZXdBdHRhY2htZW50XSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IGF0dGFjaG1lbnRzLmZpbHRlcihhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQuaWQgIT09IGZpbGVJZClcbiAgICBzZXRBdHRhY2htZW50cyhuZXdBdHRhY2htZW50cylcbiAgfVxuXG4gIGNvbnN0IGlzTUFJQSA9IHZhbGlkYXRlSXNNYWlhKGFnZW50IGFzIEFnZW50KVxuICBjb25zdCBkaXNjbGFpbWVyTWVzc2FnZSA9IGlzTUFJQVxuICAgID8gdCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lcicsIHsgYWdlbnROYW1lOiB0KCdnbG9iYWxzLmJyYW5kTmFtZScpIH0pXG4gICAgOiB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyQWdlbnQnKVxuXG4gIGNvbnN0IGNvbnRleHRDaGlwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFpc01BSUEgfHwgbG9hZGluZ01lc3NhZ2VzIHx8ICFjaGlwSXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1zOiBjaGlwSXRlbXMsXG4gICAgICB0eXBlOiBjaGlwVHlwZSxcbiAgICAgIGxlYWRpbmdJY29uOiBjaGlwVHlwZSA9PT0gJ3Rhc2snID8gPFRhc2tMaW5rSWNvbiB3aWR0aD17MTV9IGhlaWdodD17MTV9IGNvbG9yPVwiIzgwODA4MFwiIC8+IDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfSwgW2lzTUFJQSwgbG9hZGluZ01lc3NhZ2VzLCBjaGlwSXRlbXMsIGNoaXBUeXBlXSlcblxuICBjb25zdCBjb21wb3NlcklucHV0ID0gKFxuICAgIDxNQUlBSW5wdXRcbiAgICAgIHBvcG92ZXJBbmNob3JSZWY9e2lucHV0UG9wb3ZlckFuY2hvclJlZn1cbiAgICAgIG9uU2VuZE1lc3NhZ2U9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgY2xhc3NOYW1lPXtNT0RBTF9FTEVNRU5UU31cbiAgICAgIGRpc2FibGVkPXtpc0NvbXBvc2VyRGlzYWJsZWR9XG4gICAgICB1c2FnZUJsb2NrZWQ9e3VzYWdlQmxvY2tlZH1cbiAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgYWdlbnQ/LmlucHV0X3BsYWNlaG9sZGVyIHx8XG4gICAgICAgIChpc09yY2hlc3RyYXRvciA/IHQoJ2NoYXQuZm9vdGVyLm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyJykgOiB0KCdjaGF0LmZvb3Rlci5wbGFjZWhvbGRlcicpKVxuICAgICAgfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgb25Gb2N1cz17b25JbnB1dEZvY3VzfVxuICAgICAgb25GaWxlQXR0YWNoPXtoYW5kbGVGaWxlQXR0YWNofVxuICAgICAgb25EZWxldGVBdHRhY2htZW50PXtoYW5kbGVEZWxldGVBdHRhY2htZW50fVxuICAgICAgYXR0YWNobWVudHM9e2F0dGFjaG1lbnRzXG4gICAgICAgIC5maWx0ZXIoYXR0ID0+ICEhYXR0LmZpbGUpXG4gICAgICAgIC5tYXAoYXR0ID0+ICh7XG4gICAgICAgICAgZmlsZTogYXR0LmZpbGUhLFxuICAgICAgICAgIG9yaWdpbmFsRmlsZTogYXR0Lm9yaWdpbmFsRmlsZSxcbiAgICAgICAgICBpZDogYXR0LmlkLFxuICAgICAgICAgIG5hbWU6IGF0dC5uYW1lLFxuICAgICAgICAgIHNpemU6IHR5cGVvZiBhdHQuc2l6ZSA9PT0gJ251bWJlcicgPyBhdHQuc2l6ZSA6IE51bWJlcihhdHQuc2l6ZSkgfHwgMCxcbiAgICAgICAgICB0eXBlOiBhdHQudHlwZSxcbiAgICAgICAgICBpY29uOiBhdHQuaWNvbixcbiAgICAgICAgfSkpfVxuICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufVxuICAgICAgY2hhdElkPXtjaGF0SWQgfHwgdW5kZWZpbmVkfVxuICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgIHRvb2x0aXBaSW5kZXg9e3Rvb2x0aXBaSW5kZXh9XG4gICAgICBsYXlvdXRNb2RlPXtsYXlvdXRNb2RlfVxuICAgICAgY29udGV4dENoaXA9e2NvbnRleHRDaGlwfVxuICAgIC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDaGF0Rm9vdGVyPlxuICAgICAge3VzYWdlQmxvY2tlZCA/IChcbiAgICAgICAgPFNDQ29tcG9zZXJCbG9ja2VkU3RhY2s+XG4gICAgICAgICAgPFVzYWdlQmxvY2tlZEJhbm5lciBtZXNzYWdlPXt1c2FnZUJsb2NrZWRNZXNzYWdlfSAvPlxuICAgICAgICAgIHtjb21wb3NlcklucHV0fVxuICAgICAgICA8L1NDQ29tcG9zZXJCbG9ja2VkU3RhY2s+XG4gICAgICApIDogKFxuICAgICAgICBjb21wb3NlcklucHV0XG4gICAgICApfVxuICAgICAgPENoYXREaXNjbGFpbWVyTWVzc2FnZSBtZXNzYWdlPXtkaXNjbGFpbWVyTWVzc2FnZX0gLz5cbiAgICA8L1N0eWxlZENoYXRGb290ZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBb0JBLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQ3ZFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsY0FBYyxRQUFRLGtDQUFrQzs7QUFFakU7QUFDQSxTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQVNDLGdCQUFnQixRQUFRLGlDQUFpQztBQUNsRSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUUxRCxTQUFTQyxzQkFBc0IsRUFBRUMsZ0JBQWdCLFFBQVEsVUFBVTtBQUNuRSxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQ0VDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMsV0FBVyxFQUNYQyxXQUFXLEVBQ1hDLFlBQVksUUFDUCxtQkFBbUI7QUFDMUIsU0FBU0MseUJBQXlCLFFBQVEsa0NBQWtDO0FBQzVFLFNBQVNDLGNBQWMsUUFBUSx3Q0FBd0M7QUFDdkUsU0FBU0MsY0FBYyxRQUFRLGlDQUFpQztBQUVoRSxTQUFTQyxxQkFBcUIsUUFBUSxtQ0FBbUM7QUFDekUsU0FBU0Msa0JBQWtCLFFBQVEsdUJBQXVCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQTZDMUQsT0FBTyxJQUFNQyxjQUFjLEdBQUc7RUFDNUIsWUFBWSxlQUFFSCxJQUFBLENBQUNuQixZQUFZLElBQUUsQ0FBQztFQUM5QixpQkFBaUIsZUFBRW1CLElBQUEsQ0FBQ3hCLFVBQVUsSUFBRSxDQUFDO0VBQ2pDLFVBQVUsZUFBRXdCLElBQUEsQ0FBQ3pCLFdBQVcsSUFBRSxDQUFDO0VBQzNCLG9CQUFvQixlQUFFeUIsSUFBQSxDQUFDdkIsV0FBVyxJQUFFLENBQUM7RUFDckMseUVBQXlFLGVBQUV1QixJQUFBLENBQUN0QixZQUFZLElBQUUsQ0FBQztFQUMzRiwrQkFBK0IsZUFBRXNCLElBQUEsQ0FBQ3JCLFdBQVcsSUFBRSxDQUFDO0VBQ2hELDJFQUEyRSxlQUFFcUIsSUFBQSxDQUFDcEIsWUFBWSxJQUFFLENBQUM7RUFDN0YsaUJBQWlCLGVBQUVvQixJQUFBLENBQUNsQixXQUFXLElBQUUsQ0FBQztFQUNsQyxXQUFXLGVBQUVrQixJQUFBLENBQUNqQixhQUFhLElBQUUsQ0FBQztFQUM5QixZQUFZLGVBQUVpQixJQUFBLENBQUNqQixhQUFhLElBQUUsQ0FBQztFQUMvQixXQUFXLGVBQUVpQixJQUFBLENBQUNqQixhQUFhLElBQUUsQ0FBQztFQUM5QixtRUFBbUUsZUFBRWlCLElBQUEsQ0FBQ2hCLFlBQVksSUFBRSxDQUFDO0VBQ3JGLDBCQUEwQixlQUFFZ0IsSUFBQSxDQUFDZixXQUFXLElBQUUsQ0FBQztFQUMzQyxZQUFZLGVBQUVlLElBQUEsQ0FBQ2QsV0FBVyxJQUFFLENBQUM7RUFDN0IsWUFBWSxlQUFFYyxJQUFBLENBQUNaLFlBQVksSUFBRSxDQUFDO0VBQzlCLFdBQVcsZUFBRVksSUFBQSxDQUFDVixXQUFXLElBQUUsQ0FBQztFQUM1QixXQUFXLGVBQUVVLElBQUEsQ0FBQ1gsV0FBVyxJQUFFLENBQUM7RUFDNUIsV0FBVyxlQUFFVyxJQUFBLENBQUNSLFdBQVcsSUFBRSxDQUFDO0VBQzVCLFdBQVcsZUFBRVEsSUFBQSxDQUFDVCxXQUFXLElBQUUsQ0FBQztFQUM1QixXQUFXLGVBQUVTLElBQUEsQ0FBQ2IsV0FBVyxJQUFFLENBQUM7RUFDNUIsWUFBWSxlQUFFYSxJQUFBLENBQUNQLFlBQVksSUFBRTtBQUMvQixDQUFDO0FBRUQsT0FBTyxTQUFTVyxVQUFVQSxDQUFBQyxJQUFBLEVBY047RUFBQSxJQWJsQkMsYUFBYSxHQUFBRCxJQUFBLENBQWJDLGFBQWE7SUFDYkMsS0FBSyxHQUFBRixJQUFBLENBQUxFLEtBQUs7SUFDTEMsUUFBUSxHQUFBSCxJQUFBLENBQVJHLFFBQVE7SUFBQUMsaUJBQUEsR0FBQUosSUFBQSxDQUNSSyxZQUFZO0lBQVpBLFlBQVksR0FBQUQsaUJBQUEsY0FBRyxLQUFLLEdBQUFBLGlCQUFBO0lBQUFFLHFCQUFBLEdBQUFOLElBQUEsQ0FDcEJPLG1CQUFtQjtJQUFuQkEsbUJBQW1CLEdBQUFELHFCQUFBLGNBQUcsSUFBSSxHQUFBQSxxQkFBQTtJQUMxQkUsV0FBVyxHQUFBUixJQUFBLENBQVhRLFdBQVc7SUFDWEMsU0FBUyxHQUFBVCxJQUFBLENBQVRTLFNBQVM7SUFDVEMsZ0JBQWdCLEdBQUFWLElBQUEsQ0FBaEJVLGdCQUFnQjtJQUNoQkMsTUFBTSxHQUFBWCxJQUFBLENBQU5XLE1BQU07SUFDTkMsVUFBVSxHQUFBWixJQUFBLENBQVZZLFVBQVU7SUFDVkMsYUFBYSxHQUFBYixJQUFBLENBQWJhLGFBQWE7SUFDYkMsVUFBVSxHQUFBZCxJQUFBLENBQVZjLFVBQVU7SUFDVkMsWUFBWSxHQUFBZixJQUFBLENBQVplLFlBQVk7RUFFWixJQUFBQyxpQkFBQSxHQUErRXJELGdCQUFnQixDQUFDLENBQUM7SUFBekZzRCxPQUFPLEdBQUFELGlCQUFBLENBQVBDLE9BQU87SUFBRUMsS0FBSyxHQUFBRixpQkFBQSxDQUFMRSxLQUFLO0lBQUVDLFlBQVksR0FBQUgsaUJBQUEsQ0FBWkcsWUFBWTtJQUFFQyxNQUFNLEdBQUFKLGlCQUFBLENBQU5JLE1BQU07SUFBRUMsSUFBSSxHQUFBTCxpQkFBQSxDQUFKSyxJQUFJO0lBQUVDLHNCQUFzQixHQUFBTixpQkFBQSxDQUF0Qk0sc0JBQXNCO0VBQzFFLElBQUFDLEtBQUEsR0FBYzNELElBQUksQ0FBQyxDQUFDO0lBQVo0RCxDQUFDLEdBQUFELEtBQUEsQ0FBREMsQ0FBQztFQUNULElBQU1DLEtBQUssR0FBRzNELFFBQVEsQ0FBQyxDQUFDO0VBQ3hCLElBQU00RCxxQkFBcUIsR0FBR3JFLE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBQzFELElBQU1zRSxjQUFjLEdBQUcsQ0FBQVQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVVLElBQUksTUFBSyxjQUFjO0VBQ3JELElBQUFDLFNBQUEsR0FBc0N2RSxRQUFRLENBQW1CLEVBQUUsQ0FBQztJQUFBd0UsVUFBQSxHQUFBQyxjQUFBLENBQUFGLFNBQUE7SUFBN0RHLFdBQVcsR0FBQUYsVUFBQTtJQUFFRyxjQUFjLEdBQUFILFVBQUE7RUFDbEMsSUFBQUksVUFBQSxHQUE4QzVFLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQTZFLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQXRERSxlQUFlLEdBQUFELFVBQUE7SUFBRUUsa0JBQWtCLEdBQUFGLFVBQUE7RUFFMUMsSUFBTUcsYUFBYSxHQUFHakYsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUNuQyxJQUFNa0Ysd0JBQXdCLEdBQUdoRCxjQUFjLENBQUMyQixLQUFLLENBQUM7O0VBRXREO0VBQ0EzRCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQU1pRiwyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJQyxDQUFjLEVBQUs7TUFDdERKLGtCQUFrQixDQUFDSSxDQUFDLENBQUNDLE1BQU0sQ0FBQ04sZUFBZSxDQUFDO0lBQzlDLENBQUM7SUFFRE8sUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQywrQkFBK0IsRUFBRUosMkJBQTRDLENBQUM7SUFFeEcsT0FBTyxZQUFNO01BQ1hHLFFBQVEsQ0FBQ0UsbUJBQW1CLENBQUMsK0JBQStCLEVBQUVMLDJCQUE0QyxDQUFDO0lBQzdHLENBQUM7RUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDOztFQUVOO0VBQ0FqRixTQUFTLENBQUMsWUFBTTtJQUNkLElBQU11RixtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7TUFDaEMsSUFBSXhCLHNCQUFzQixFQUFFO1FBQzFCQSxzQkFBc0IsQ0FBQ3lCLE9BQU8sR0FBRyxLQUFLO01BQ3hDO01BQ0FkLGNBQWMsQ0FBQyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEVSxRQUFRLENBQUNDLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFRSxtQkFBbUIsQ0FBQztJQUV0RSxPQUFPLFlBQU07TUFDWEgsUUFBUSxDQUFDRSxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRUMsbUJBQW1CLENBQUM7SUFDM0UsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDeEIsc0JBQXNCLENBQUMsQ0FBQztFQUU1QixJQUFBMEIsUUFBQSxHQUFnQzVGLE9BQU8sQ0FBd0QsWUFBTTtNQUNuRyxJQUFJOEMsS0FBSyxFQUFFLE9BQU87UUFBRStDLFNBQVMsRUFBRS9DO01BQU0sQ0FBQzs7TUFFdEM7TUFDQSxJQUFJLENBQUFnQixLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVUsSUFBSSxNQUFLLGNBQWMsRUFBRTtRQUNsQyxJQUFJUCxJQUFJLGFBQUpBLElBQUksZUFBSkEsSUFBSSxDQUFFNkIsSUFBSSxFQUFFLE9BQU87VUFBRUQsU0FBUyxFQUFFLENBQUM1QixJQUFJLENBQUM2QixJQUFJLENBQUM7VUFBRUMsUUFBUSxFQUFFO1FBQU8sQ0FBQztRQUNuRSxJQUFJaEMsWUFBWSxhQUFaQSxZQUFZLGVBQVpBLFlBQVksQ0FBRWlDLFdBQVcsRUFBRSxPQUFPO1VBQUVILFNBQVMsRUFBRSxDQUFDOUIsWUFBWSxDQUFDaUMsV0FBVyxDQUFDO1VBQUVELFFBQVEsRUFBRTtRQUFVLENBQUM7UUFDcEcsSUFBSS9CLE1BQU0sYUFBTkEsTUFBTSxlQUFOQSxNQUFNLENBQUU4QixJQUFJLEVBQUUsT0FBTztVQUFFRCxTQUFTLEVBQUUsQ0FBQzdCLE1BQU0sQ0FBQzhCLElBQUksQ0FBQztVQUFFQyxRQUFRLEVBQUU7UUFBUyxDQUFDO1FBQ3pFLE9BQU87VUFBRUYsU0FBUyxFQUFFO1FBQUcsQ0FBQztNQUMxQjtNQUVBLElBQUksQ0FBQS9CLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFbUMsTUFBTSxNQUFLLFFBQVEsSUFBSWpDLE1BQU0sYUFBTkEsTUFBTSxlQUFOQSxNQUFNLENBQUU4QixJQUFJLEVBQUU7UUFDOUMsT0FBTztVQUFFRCxTQUFTLEVBQUUsQ0FBQzdCLE1BQU0sQ0FBQzhCLElBQUksQ0FBQztVQUFFQyxRQUFRLEVBQUU7UUFBUyxDQUFDO01BQ3pEO01BQ0EsSUFBSTlCLElBQUksYUFBSkEsSUFBSSxlQUFKQSxJQUFJLENBQUU2QixJQUFJLEVBQUUsT0FBTztRQUFFRCxTQUFTLEVBQUUsQ0FBQzVCLElBQUksQ0FBQzZCLElBQUksQ0FBQztRQUFFQyxRQUFRLEVBQUU7TUFBTyxDQUFDO01BQ25FLElBQUloQyxZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFaUMsV0FBVyxFQUFFLE9BQU87UUFBRUgsU0FBUyxFQUFFLENBQUM5QixZQUFZLENBQUNpQyxXQUFXLENBQUM7UUFBRUQsUUFBUSxFQUFFO01BQVUsQ0FBQztNQUNwRyxJQUFJbEMsT0FBTyxhQUFQQSxPQUFPLGVBQVBBLE9BQU8sQ0FBRWlDLElBQUksRUFBRSxPQUFPO1FBQUVELFNBQVMsRUFBRSxDQUFDaEMsT0FBTyxDQUFDaUMsSUFBSSxDQUFDO1FBQUVDLFFBQVEsRUFBRTtNQUFVLENBQUM7TUFFNUUsT0FBTztRQUFFRixTQUFTLEVBQUU7TUFBRyxDQUFDO0lBQzFCLENBQUMsRUFBRSxDQUFDL0MsS0FBSyxFQUFFZSxPQUFPLEVBQUVFLFlBQVksRUFBRUQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVtQyxNQUFNLEVBQUVuQyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRVUsSUFBSSxFQUFFUixNQUFNLEVBQUVDLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFNkIsSUFBSSxDQUFDLENBQUM7SUFuQjFFRCxTQUFTLEdBQUFELFFBQUEsQ0FBVEMsU0FBUztJQUFFRSxRQUFRLEdBQUFILFFBQUEsQ0FBUkcsUUFBUTtFQXFCM0IsSUFBTUcsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUEsRUFBUztJQUNyQixJQUFJaEIsYUFBYSxDQUFDUyxPQUFPLEVBQUU7SUFDM0J0QixLQUFLLENBQUM1RCxNQUFNLENBQUMwRixhQUFhLEVBQUU7TUFDMUJDLFVBQVUsRUFBRWpCLHdCQUF3QixHQUFHLGFBQWEsR0FBR3JCLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFVTtJQUNoRSxDQUFDLENBQUM7SUFDRlUsYUFBYSxDQUFDUyxPQUFPLEdBQUcsSUFBSTtFQUM5QixDQUFDO0VBRUQsSUFBTVUsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FDckJDLE9BQWUsRUFDZkMsY0FBaUMsRUFDakNDLFFBQTJCLEVBQzNCQyxLQUFjLEVBQ2RDLGlCQUEwQixFQUMxQkMsS0FBYyxFQUNkQyxJQUFhLEVBQ1Y7SUFDSCxJQUFNQyxZQUFZLEdBQUdDLE9BQU8sQ0FBQzVDLHNCQUFzQixhQUF0QkEsc0JBQXNCLHVCQUF0QkEsc0JBQXNCLENBQUV5QixPQUFPLENBQUM7SUFDN0QsSUFBSXpCLHNCQUFzQixFQUFFO01BQzFCQSxzQkFBc0IsQ0FBQ3lCLE9BQU8sR0FBRyxLQUFLO0lBQ3hDO0lBQ0F0QixLQUFLLENBQUM1RCxNQUFNLENBQUNzRyxVQUFVLEVBQUFDLGFBQUE7TUFDckJaLFVBQVUsRUFBRWpCLHdCQUF3QixHQUFHLGFBQWEsR0FBR3JCLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFVSxJQUFJO01BQ2xFeUMsUUFBUSxFQUFFbkQsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVvRCxFQUFFO01BQ25CQyxVQUFVLEVBQUVyRCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRWdDO0lBQUksR0FDbkJlLFlBQVksR0FBRztNQUFFTyxNQUFNLEVBQUU7SUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDRnZFLGFBQWEsQ0FBQ3lELE9BQU8sRUFBRUMsY0FBYyxFQUFFRSxLQUFLLEVBQUVDLGlCQUFpQixFQUFFRixRQUFRLEVBQUVHLEtBQUssRUFBRUMsSUFBSSxDQUFDO0lBQ3ZGL0IsY0FBYyxDQUFDLEVBQUUsQ0FBQztFQUNwQixDQUFDO0VBRUQsSUFBTXdDLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSWYsT0FBZSxFQUFFRyxLQUFhLEVBQUs7SUFDMUQ1RCxhQUFhLENBQUN5RCxPQUFPLEVBQUVnQixTQUFTLEVBQUViLEtBQUssRUFBRWEsU0FBUyxDQUFDO0VBQ3JELENBQUM7RUFFRCxJQUFNQyxrQkFBa0IsR0FBR1QsT0FBTyxDQUFDL0QsUUFBUSxJQUFJRSxZQUFZLENBQUM7RUFFNUQsSUFBTXVFLGdCQUFnQjtJQUFBLElBQUFDLEtBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLElBQVU7TUFBQSxJQUFBQyxrQkFBQTtNQUFBLElBQUFDLGFBQUEsRUFBQUMsYUFBQSxFQUFBQyxrQkFBQSxFQUFBQyxhQUFBLEVBQUFDLE9BQUEsRUFBQUMsZUFBQSxFQUFBQyxJQUFBLEVBQUFDLG1CQUFBLEVBQUFDLG1CQUFBLEVBQUFDLGFBQUEsRUFBQUMsYUFBQSxFQUFBQyxFQUFBO01BQUEsT0FBQWhCLG1CQUFBLENBQUFpQixJQUFBLFdBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1lBQUEsS0FDcEN4QixrQkFBa0I7Y0FBQXNCLFFBQUEsQ0FBQUUsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBRixRQUFBLENBQUFHLE1BQUE7VUFBQTtZQUVoQmhCLGFBQWEsR0FBR0YsSUFBSSxDQUFDaEMsSUFBSSxDQUFDbUQsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNwQ2hCLGFBQWEsR0FBR0QsYUFBYSxDQUFDa0IsTUFBTSxHQUFHLENBQUMsT0FBQUMsTUFBQSxFQUFBcEIsa0JBQUEsR0FBT0MsYUFBYSxDQUFDb0IsR0FBRyxDQUFDLENBQUMsY0FBQXJCLGtCQUFBLHVCQUFuQkEsa0JBQUEsQ0FBcUJzQixXQUFXLENBQUMsQ0FBQyxJQUFLLEVBQUU7WUFDeEZuQixrQkFBa0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUNvQixRQUFRLENBQUNyQixhQUFhLENBQUM7WUFDdEVFLGFBQWEsR0FBR0wsSUFBSSxDQUFDdEQsSUFBSSxDQUFDK0UsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5Q25CLE9BQU8sR0FBR0QsYUFBYSxJQUFJRCxrQkFBa0IsRUFDbkQ7WUFDTUcsZUFBMEMsR0FBRztjQUNqRCxNQUFNLGVBQUU5RixJQUFBLENBQUNSLFdBQVcsSUFBRSxDQUFDO2NBQ3ZCLE1BQU0sZUFBRVEsSUFBQSxDQUFDVCxXQUFXLElBQUUsQ0FBQztjQUN2QixNQUFNLGVBQUVTLElBQUEsQ0FBQ1YsV0FBVyxJQUFFLENBQUM7Y0FDdkIsTUFBTSxlQUFFVSxJQUFBLENBQUNYLFdBQVcsSUFBRSxDQUFDO2NBQ3ZCLE1BQU0sZUFBRVcsSUFBQSxDQUFDckIsV0FBVyxJQUFFLENBQUM7Y0FDdkIsT0FBTyxlQUFFcUIsSUFBQSxDQUFDcEIsWUFBWSxJQUFFO1lBQzFCLENBQUM7WUFFR21ILElBQUksR0FBRzVGLGNBQWMsQ0FBQ29GLElBQUksQ0FBQ3RELElBQUksQ0FBQyxFQUVwQztZQUNBLElBQ0UsQ0FBQ3NELElBQUksQ0FBQ3RELElBQUksS0FBSyxXQUFXLElBQUlzRCxJQUFJLENBQUN0RCxJQUFJLEtBQUssV0FBVyxJQUFJc0QsSUFBSSxDQUFDdEQsSUFBSSxLQUFLLCtCQUErQixLQUN4R3lELGFBQWEsRUFDYjtjQUNBSyxJQUFJLEdBQUdELGVBQWUsQ0FBQ0osYUFBYSxDQUFDLElBQUlLLElBQUk7WUFDL0M7WUFFQSxJQUFJLENBQUNBLElBQUksRUFBRTtjQUNIQyxtQkFBMkMsR0FBRztnQkFDbEQsTUFBTSxFQUFFLFlBQVk7Z0JBQ3BCLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixNQUFNLEVBQUUsb0JBQW9CO2dCQUM1QixPQUFPLEVBQUUseUVBQXlFO2dCQUNsRixNQUFNLEVBQUUsK0JBQStCO2dCQUN2QyxPQUFPLEVBQUUsMkVBQTJFO2dCQUNwRixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixPQUFPLEVBQUUsbUVBQW1FO2dCQUM1RSxNQUFNLEVBQUUsMEJBQTBCO2dCQUNsQyxPQUFPLEVBQUUsWUFBWTtnQkFDckIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsV0FBVztnQkFDbkIsT0FBTyxFQUFFO2NBQ1gsQ0FBQztjQUNLQyxtQkFBbUIsR0FBR0QsbUJBQW1CLENBQUNOLGFBQWEsQ0FBQztjQUM5RCxJQUFJTyxtQkFBbUIsRUFBRTtnQkFDdkJGLElBQUksR0FBRzVGLGNBQWMsQ0FBQzhGLG1CQUFtQixDQUFDO2NBQzVDLENBQUMsTUFBTTtnQkFDTEYsSUFBSSxnQkFBRy9GLElBQUEsQ0FBQ25DLE1BQU07a0JBQUNvSixLQUFLLEVBQUMsdUJBQXVCO2tCQUFDQyxLQUFLLEVBQUUsRUFBRztrQkFBQ0MsTUFBTSxFQUFFO2dCQUFHLENBQUUsQ0FBQztjQUN4RTtZQUNGO1lBQ0lqQixhQUFhLEdBQUdYLElBQUksRUFFeEI7WUFBQSxLQUNJTSxPQUFPO2NBQUFTLFFBQUEsQ0FBQUUsSUFBQTtjQUFBO1lBQUE7WUFBQUYsUUFBQSxDQUFBQyxJQUFBO1lBQUFELFFBQUEsQ0FBQUUsSUFBQTtZQUFBLE9BRWU5Ryx5QkFBeUIsQ0FBQzZGLElBQUksQ0FBQztVQUFBO1lBQXJEVyxhQUFhLEdBQUFJLFFBQUEsQ0FBQWMsSUFBQTtZQUFBZCxRQUFBLENBQUFFLElBQUE7WUFBQTtVQUFBO1lBQUFGLFFBQUEsQ0FBQUMsSUFBQTtZQUFBSCxFQUFBLEdBQUFFLFFBQUE7WUFFYmUsT0FBTyxDQUFDQyxLQUFLLENBQUMsOEJBQThCLEVBQUFsQixFQUFPLENBQUM7VUFBQTtZQUlsREQsYUFBNkIsR0FBRztjQUNwQ1osSUFBSSxFQUFFVyxhQUFhO2NBQ25CcUIsWUFBWSxFQUFFMUIsT0FBTyxHQUFHTixJQUFJLEdBQUdSLFNBQVM7Y0FDeENKLEVBQUUsS0FBQWlDLE1BQUEsQ0FBS1ksSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxPQUFBYixNQUFBLENBQUljLElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBRTtjQUNwQ3BFLElBQUksRUFBRWdDLElBQUksQ0FBQ2hDLElBQUk7Y0FDZnFFLElBQUksRUFBRTFCLGFBQWEsQ0FBQzBCLElBQUk7Y0FDeEIzRixJQUFJLEVBQUVpRSxhQUFhLENBQUNqRSxJQUFJO2NBQ3hCOEQsSUFBSSxFQUFKQTtZQUNGLENBQUM7WUFFRHpELGNBQWMsQ0FBQyxVQUFBaUUsSUFBSTtjQUFBLFVBQUFLLE1BQUEsQ0FBQWlCLGtCQUFBLENBQVF0QixJQUFJLElBQUVKLGFBQWE7WUFBQSxDQUFDLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQUcsUUFBQSxDQUFBd0IsSUFBQTtRQUFBO01BQUEsR0FBQXhDLE9BQUE7SUFBQSxDQUNqRDtJQUFBLGdCQTlFS0wsZ0JBQWdCQSxDQUFBOEMsRUFBQTtNQUFBLE9BQUE3QyxLQUFBLENBQUE4QyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtFQUFBLEdBOEVyQjtFQUVELElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUlDLE1BQWMsRUFBSztJQUNqRCxJQUFNbkUsY0FBYyxHQUFHM0IsV0FBVyxDQUFDK0YsTUFBTSxDQUFDLFVBQUFDLFVBQVU7TUFBQSxPQUFJQSxVQUFVLENBQUMxRCxFQUFFLEtBQUt3RCxNQUFNO0lBQUEsRUFBQztJQUNqRjdGLGNBQWMsQ0FBQzBCLGNBQWMsQ0FBQztFQUNoQyxDQUFDO0VBRUQsSUFBTXNFLE1BQU0sR0FBRzNJLGNBQWMsQ0FBQzRCLEtBQWMsQ0FBQztFQUM3QyxJQUFNZ0gsaUJBQWlCLEdBQUdELE1BQU0sR0FDNUJ6RyxDQUFDLENBQUMsd0JBQXdCLEVBQUU7SUFBRTJHLFNBQVMsRUFBRTNHLENBQUMsQ0FBQyxtQkFBbUI7RUFBRSxDQUFDLENBQUMsR0FDbEVBLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQztFQUVwQyxJQUFNNEcsV0FBVyxHQUFHaEwsT0FBTyxDQUFDLFlBQU07SUFDaEMsSUFBSSxDQUFDNkssTUFBTSxJQUFJN0YsZUFBZSxJQUFJLENBQUNhLFNBQVMsQ0FBQ3FELE1BQU0sRUFBRSxPQUFPLElBQUk7SUFFaEUsT0FBTztNQUNMcEcsS0FBSyxFQUFFK0MsU0FBUztNQUNoQnJCLElBQUksRUFBRXVCLFFBQVE7TUFDZGtGLFdBQVcsRUFBRWxGLFFBQVEsS0FBSyxNQUFNLGdCQUFHeEQsSUFBQSxDQUFDMUIsWUFBWTtRQUFDNEksS0FBSyxFQUFFLEVBQUc7UUFBQ0MsTUFBTSxFQUFFLEVBQUc7UUFBQ0YsS0FBSyxFQUFDO01BQVMsQ0FBRSxDQUFDLEdBQUdsQztJQUMvRixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUN1RCxNQUFNLEVBQUU3RixlQUFlLEVBQUVhLFNBQVMsRUFBRUUsUUFBUSxDQUFDLENBQUM7RUFFbEQsSUFBTW1GLGFBQWEsZ0JBQ2pCM0ksSUFBQSxDQUFDakMsU0FBUztJQUNSNkssZ0JBQWdCLEVBQUU3RyxxQkFBc0I7SUFDeEN6QixhQUFhLEVBQUV3RCxpQkFBa0I7SUFDakMrRSxTQUFTLEVBQUUvSyxjQUFlO0lBQzFCMEMsUUFBUSxFQUFFd0Usa0JBQW1CO0lBQzdCdEUsWUFBWSxFQUFFQSxZQUFhO0lBQzNCb0ksV0FBVyxFQUNULENBQUF2SCxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRXdILGlCQUFpQixNQUN2Qi9HLGNBQWMsR0FBR0gsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLEdBQUdBLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUMxRjtJQUNEOEIsUUFBUSxFQUFFQSxRQUFTO0lBQ25CcUYsT0FBTyxFQUFFNUgsWUFBYTtJQUN0QjZILFlBQVksRUFBRWhFLGdCQUFpQjtJQUMvQmlFLGtCQUFrQixFQUFFaEIsc0JBQXVCO0lBQzNDN0YsV0FBVyxFQUFFQSxXQUFXLENBQ3JCK0YsTUFBTSxDQUFDLFVBQUFlLEdBQUc7TUFBQSxPQUFJLENBQUMsQ0FBQ0EsR0FBRyxDQUFDNUQsSUFBSTtJQUFBLEVBQUMsQ0FDekI2RCxHQUFHLENBQUMsVUFBQUQsR0FBRztNQUFBLE9BQUs7UUFDWDVELElBQUksRUFBRTRELEdBQUcsQ0FBQzVELElBQUs7UUFDZmdDLFlBQVksRUFBRTRCLEdBQUcsQ0FBQzVCLFlBQVk7UUFDOUI1QyxFQUFFLEVBQUV3RSxHQUFHLENBQUN4RSxFQUFFO1FBQ1ZwQixJQUFJLEVBQUU0RixHQUFHLENBQUM1RixJQUFJO1FBQ2RxRSxJQUFJLEVBQUUsT0FBT3VCLEdBQUcsQ0FBQ3ZCLElBQUksS0FBSyxRQUFRLEdBQUd1QixHQUFHLENBQUN2QixJQUFJLEdBQUd5QixNQUFNLENBQUNGLEdBQUcsQ0FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckUzRixJQUFJLEVBQUVrSCxHQUFHLENBQUNsSCxJQUFJO1FBQ2Q4RCxJQUFJLEVBQUVvRCxHQUFHLENBQUNwRDtNQUNaLENBQUM7SUFBQSxDQUFDLENBQUU7SUFDTmxGLFdBQVcsRUFBRUEsV0FBWTtJQUN6QkMsU0FBUyxFQUFFQSxTQUFVO0lBQ3JCQyxnQkFBZ0IsRUFBRUEsZ0JBQWlCO0lBQ25DQyxNQUFNLEVBQUVBLE1BQU0sSUFBSStELFNBQVU7SUFDNUI5RCxVQUFVLEVBQUVBLFVBQVc7SUFDdkJDLGFBQWEsRUFBRUEsYUFBYztJQUM3QkMsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCc0gsV0FBVyxFQUFFQTtFQUFZLENBQzFCLENBQ0Y7RUFFRCxvQkFDRXZJLEtBQUEsQ0FBQzdCLGdCQUFnQjtJQUFBaUwsUUFBQSxHQUNkNUksWUFBWSxnQkFDWFIsS0FBQSxDQUFDOUIsc0JBQXNCO01BQUFrTCxRQUFBLGdCQUNyQnRKLElBQUEsQ0FBQ0Ysa0JBQWtCO1FBQUNpRSxPQUFPLEVBQUVuRDtNQUFvQixDQUFFLENBQUMsRUFDbkQrSCxhQUFhO0lBQUEsQ0FDUSxDQUFDLEdBRXpCQSxhQUNELGVBQ0QzSSxJQUFBLENBQUNILHFCQUFxQjtNQUFDa0UsT0FBTyxFQUFFd0U7SUFBa0IsQ0FBRSxDQUFDO0VBQUEsQ0FDckMsQ0FBQztBQUV2QiIsImlnbm9yZUxpc3QiOltdfQ==
349
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJBdHRhY2giLCJNT0RBTF9FTEVNRU5UUyIsIk1BSUFJbnB1dCIsInVzZUdsb2JhbENvbnRleHQiLCJ1c2VUIiwiRVZFTlRTIiwidXNlRXZlbnQiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiVGFza0xpbmtJY29uIiwiQ3N2RmlsZUljb24iLCJNREZpbGVJY29uIiwiRG9jRmlsZUljb24iLCJEb2N4RmlsZUljb24iLCJQcHRGaWxlSWNvbiIsIlBwdHhGaWxlSWNvbiIsIlRleHRGaWxlSWNvbiIsIlBkZkZpbGVJY29uIiwiSW1hZ2VGaWxlSWNvbiIsIlhsc3hGaWxlSWNvbiIsIlhsc0ZpbGVJY29uIiwiTXAzRmlsZUljb24iLCJXYXZGaWxlSWNvbiIsIkZsYWNGaWxlSWNvbiIsIk00YUZpbGVJY29uIiwiTXA0RmlsZUljb24iLCJPZ2FGaWxlSWNvbiIsIk9nZ0ZpbGVJY29uIiwiV2VibUZpbGVJY29uIiwicHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZCIsInZhbGlkYXRlSXNNYWlhIiwiaXNNYWlha2VyQWdlbnQiLCJDaGF0RGlzY2xhaW1lck1lc3NhZ2UiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiSWNvbkJ5RmlsZVR5cGUiLCJDaGF0Rm9vdGVyIiwiX3JlZiIsIm9uU2VuZE1lc3NhZ2UiLCJpdGVtcyIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsInRvb2x0aXBaSW5kZXgiLCJsYXlvdXRNb2RlIiwib25JbnB1dEZvY3VzIiwiX3VzZUdsb2JhbENvbnRleHQiLCJwcm9qZWN0IiwiYWdlbnQiLCJjaGlwc1Byb2plY3QiLCJjbGllbnQiLCJ0YXNrIiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsIl91c2VUIiwidCIsImV2ZW50IiwiaW5wdXRQb3BvdmVyQW5jaG9yUmVmIiwiaXNPcmNoZXN0cmF0b3IiLCJ0eXBlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYXR0YWNobWVudHMiLCJzZXRBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwibG9hZGluZ01lc3NhZ2VzIiwic2V0TG9hZGluZ01lc3NhZ2VzIiwicmVwb3J0ZWRFdmVudCIsImlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCIsImhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSIsImUiLCJkZXRhaWwiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlU2Vzc2lvbkNoYW5nZSIsImN1cnJlbnQiLCJfdXNlTWVtbyIsImNoaXBJdGVtcyIsIm5hbWUiLCJjaGlwVHlwZSIsInByb2plY3ROYW1lIiwiZW50aXR5Iiwib25DaGFuZ2UiLCJwbUFpVHlwZWRUZXh0IiwiYWdlbnRfdHlwZSIsImhhbmRsZVNlbmRNZXNzYWdlIiwibWVzc2FnZSIsIm5ld0F0dGFjaG1lbnRzIiwibWVudGlvbnMiLCJmYXFJZCIsImFnZW50U3VnZ2VzdGlvbklkIiwiZnVhSWQiLCJzY0lkIiwiZnJvbURlZXBMaW5rIiwiQm9vbGVhbiIsImFpQ2hhdFNlbmQiLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfaWQiLCJpZCIsImFnZW50X25hbWUiLCJzb3VyY2UiLCJza2lsbElkcyIsImZpbHRlciIsIm1lbnRpb24iLCJtYXAiLCJTdHJpbmciLCJsZW5ndGgiLCJhaUNoYXRTa2lsbFNlbmQiLCJza2lsbF9pZHMiLCJza2lsbF9jb3VudCIsImhhbmRsZVNlbGVjdEZhcSIsInVuZGVmaW5lZCIsImhhbmRsZUZpbGVBdHRhY2giLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImZpbGVOYW1lUGFydHMiLCJmaWxlRXh0ZW5zaW9uIiwiaXNJbWFnZUJ5RXh0ZW5zaW9uIiwiaXNJbWFnZUJ5TWltZSIsImlzSW1hZ2UiLCJleHRlbnNpb25Ub0ljb24iLCJpY29uIiwiZXh0ZW5zaW9uVG9NaW1lVHlwZSIsIm1pbWVUeXBlQnlFeHRlbnNpb24iLCJwcm9jZXNzZWRGaWxlIiwibmV3QXR0YWNobWVudCIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJzcGxpdCIsImNvbmNhdCIsInBvcCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwiY29sb3IiLCJ3aWR0aCIsImhlaWdodCIsInNlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJvcmlnaW5hbEZpbGUiLCJEYXRlIiwibm93IiwiTWF0aCIsInJhbmRvbSIsInNpemUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlSWQiLCJhdHRhY2htZW50IiwiaXNNQUlBIiwiZGlzY2xhaW1lck1lc3NhZ2UiLCJhZ2VudE5hbWUiLCJjb250ZXh0Q2hpcCIsImxlYWRpbmdJY29uIiwiY2hpbGRyZW4iLCJwb3BvdmVyQW5jaG9yUmVmIiwiY2xhc3NOYW1lIiwicGxhY2Vob2xkZXIiLCJpbnB1dF9wbGFjZWhvbGRlciIsIm9uRm9jdXMiLCJvbkZpbGVBdHRhY2giLCJvbkRlbGV0ZUF0dGFjaG1lbnQiLCJhdHQiLCJOdW1iZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlZiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG5pbXBvcnQgeyBSZWFjdE5vZGUsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXR0YWNoIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQXR0YWNoJ1xuaW1wb3J0IHsgTU9EQUxfRUxFTUVOVFMgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VNb2RhbC91c2VNb2RhbCdcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgTUFJQUlucHV0IH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQUlucHV0J1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgU3R5bGVkQ2hhdEZvb3RlciB9IGZyb20gJy4vc3R5bGVzJ1xuaW1wb3J0IHsgVGFza0xpbmtJY29uIH0gZnJvbSAnLi4vLi4vYXRvbXMvaWNvbnMvVGFza0xpbmtJY29uJ1xuaW1wb3J0IHtcbiAgQ3N2RmlsZUljb24sXG4gIE1ERmlsZUljb24sXG4gIERvY0ZpbGVJY29uLFxuICBEb2N4RmlsZUljb24sXG4gIFBwdEZpbGVJY29uLFxuICBQcHR4RmlsZUljb24sXG4gIFRleHRGaWxlSWNvbixcbiAgUGRmRmlsZUljb24sXG4gIEltYWdlRmlsZUljb24sXG4gIFhsc3hGaWxlSWNvbixcbiAgWGxzRmlsZUljb24sXG4gIE1wM0ZpbGVJY29uLFxuICBXYXZGaWxlSWNvbixcbiAgRmxhY0ZpbGVJY29uLFxuICBNNGFGaWxlSWNvbixcbiAgTXA0RmlsZUljb24sXG4gIE9nYUZpbGVJY29uLFxuICBPZ2dGaWxlSWNvbixcbiAgV2VibUZpbGVJY29uLFxufSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IHByZXByb2Nlc3NJbWFnZUZvckJhY2tlbmQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVByZXByb2Nlc3NvcidcbmltcG9ydCB7IHZhbGlkYXRlSXNNYWlhIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbHMvdmFsaWRhdGVJc01haWEnXG5pbXBvcnQgeyBpc01haWFrZXJBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2FnZW50RGlzcGxheU5hbWUnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQ2hhdERpc2NsYWltZXJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hhdERpc2NsYWltZXJNZXNzYWdlJ1xuaW1wb3J0IHR5cGUgeyBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZSB9IGZyb20gJy4uL0NoYXRBSU1vZGFsL2xheW91dCdcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudEZpbGUgPSB7XG4gIGZpbGU6IEZpbGVcbiAgb3JpZ2luYWxGaWxlPzogRmlsZVxuICB1cmxfdGh1bWJuYWlsPzogc3RyaW5nXG4gIHVybF9vcmlnaW5hbD86IHN0cmluZ1xuICB1cmxfZmlsZT86IHN0cmluZ1xuICByb2xlPzogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG4gIGV4dD86IHN0cmluZ1xuICBzdGF0dXM/OiAncGVuZGluZycgfCAncHJvY2Vzc2luZycgfCAnZG9uZScgfCAnZmFpbGVkJyB8ICdzdGFydGVkJ1xufVxuXG50eXBlIENoYXRGb290ZXJQcm9wcyA9IHtcbiAgaXRlbXM/OiBzdHJpbmdbXVxuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuXG4gIGlzV3JpdGluZz86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gIGNoYXRJZD86IHN0cmluZyB8IG51bGxcbiAgbmV3Q2hhdEtleT86IG51bWJlclxuICB0b29sdGlwWkluZGV4PzogbnVtYmVyXG4gIGxheW91dE1vZGU/OiBNYWlhQ2hhdE1vZGFsTGF5b3V0TW9kZVxuICBvbklucHV0Rm9jdXM/OiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBJY29uQnlGaWxlVHlwZSA9IHtcbiAgJ3RleHQvcGxhaW4nOiA8VGV4dEZpbGVJY29uIC8+LFxuICAndGV4dC94LW1hcmtkb3duJzogPE1ERmlsZUljb24gLz4sXG4gICd0ZXh0L2Nzdic6IDxDc3ZGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL21zd29yZCc6IDxEb2NGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JzogPERvY3hGaWxlSWNvbiAvPixcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JzogPFBwdEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbic6IDxQcHR4RmlsZUljb24gLz4sXG4gICdhcHBsaWNhdGlvbi9wZGYnOiA8UGRmRmlsZUljb24gLz4sXG4gICdpbWFnZS9wbmcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZWcnOiA8SW1hZ2VGaWxlSWNvbiAvPixcbiAgJ2ltYWdlL2pwZyc6IDxJbWFnZUZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnOiA8WGxzeEZpbGVJY29uIC8+LFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJzogPFhsc0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXBlZyc6IDxNcDNGaWxlSWNvbiAvPixcbiAgJ2F1ZGlvL2ZsYWMnOiA8RmxhY0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vbXA0JzogPE1wNEZpbGVJY29uIC8+LFxuICAnYXVkaW8vbTRhJzogPE00YUZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dnJzogPE9nZ0ZpbGVJY29uIC8+LFxuICAnYXVkaW8vb2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2F2JzogPFdhdkZpbGVJY29uIC8+LFxuICAnYXVkaW8vd2VibSc6IDxXZWJtRmlsZUljb24gLz4sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGF0Rm9vdGVyKHtcbiAgb25TZW5kTWVzc2FnZSxcbiAgaXRlbXMsXG4gIGRpc2FibGVkLFxuICBpc1N0cmVhbWluZyxcbiAgaXNXcml0aW5nLFxuICBvblN0b3BHZW5lcmF0aW9uLFxuICBjaGF0SWQsXG4gIG5ld0NoYXRLZXksXG4gIHRvb2x0aXBaSW5kZXgsXG4gIGxheW91dE1vZGUsXG4gIG9uSW5wdXRGb2N1cyxcbn06IENoYXRGb290ZXJQcm9wcykge1xuICBjb25zdCB7IHByb2plY3QsIGFnZW50LCBjaGlwc1Byb2plY3QsIGNsaWVudCwgdGFzaywgZGVlcExpbmtTZW5kUGVuZGluZ1JlZiB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBpbnB1dFBvcG92ZXJBbmNob3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IGlzT3JjaGVzdHJhdG9yID0gYWdlbnQ/LnR5cGUgPT09ICdvcmNoZXN0cmF0b3InXG4gIGNvbnN0IFthdHRhY2htZW50cywgc2V0QXR0YWNobWVudHNdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGVbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nTWVzc2FnZXMsIHNldExvYWRpbmdNZXNzYWdlc10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCByZXBvcnRlZEV2ZW50ID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPSBpc01haWFrZXJBZ2VudChhZ2VudClcblxuICAvLyB1c2VFZmZlY3QgdG8gbGlzdGVuIGxvYWRpbmdNZXNzYWdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSA9IChlOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgc2V0TG9hZGluZ01lc3NhZ2VzKGUuZGV0YWlsLmxvYWRpbmdNZXNzYWdlcylcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGF0LWxvYWRpbmctbWVzc2FnZXMtY2hhbmdlZCcsIGhhbmRsZUxvYWRpbmdNZXNzYWdlc0NoYW5nZSBhcyBFdmVudExpc3RlbmVyKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtbG9hZGluZy1tZXNzYWdlcy1jaGFuZ2VkJywgaGFuZGxlTG9hZGluZ01lc3NhZ2VzQ2hhbmdlIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbXSlcblxuICAvLyBDbGVhciBhdHRhY2htZW50cyB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgICAgc2V0QXR0YWNobWVudHMoW10pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICB9XG4gIH0sIFtkZWVwTGlua1NlbmRQZW5kaW5nUmVmXSlcblxuICBjb25zdCB7IGNoaXBJdGVtcywgY2hpcFR5cGUgfSA9IHVzZU1lbW88eyBjaGlwSXRlbXM6IHN0cmluZ1tdOyBjaGlwVHlwZT86IENvbnRleHRFbnRpdHlUeXBlIH0+KCgpID0+IHtcbiAgICBpZiAoaXRlbXMpIHJldHVybiB7IGNoaXBJdGVtczogaXRlbXMgfVxuXG4gICAgLy8gTW9uby1jb250ZXh0bzogc29sbyBsYSBlbnRpZGFkIG3DoXMgZXNwZWPDrWZpY2EgKHNpbiBhbmlkYXIgY2xpZW50ZS9wcm95ZWN0by90YXJlYSkuXG4gICAgaWYgKGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJykge1xuICAgICAgaWYgKHRhc2s/Lm5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW3Rhc2submFtZV0sIGNoaXBUeXBlOiAndGFzaycgfVxuICAgICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgICAgaWYgKGNsaWVudD8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbXSB9XG4gICAgfVxuXG4gICAgaWYgKGFnZW50Py5lbnRpdHkgPT09ICdjbGllbnQnICYmIGNsaWVudD8ubmFtZSkge1xuICAgICAgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbY2xpZW50Lm5hbWVdLCBjaGlwVHlwZTogJ2NsaWVudCcgfVxuICAgIH1cbiAgICBpZiAodGFzaz8ubmFtZSkgcmV0dXJuIHsgY2hpcEl0ZW1zOiBbdGFzay5uYW1lXSwgY2hpcFR5cGU6ICd0YXNrJyB9XG4gICAgaWYgKGNoaXBzUHJvamVjdD8ucHJvamVjdE5hbWUpIHJldHVybiB7IGNoaXBJdGVtczogW2NoaXBzUHJvamVjdC5wcm9qZWN0TmFtZV0sIGNoaXBUeXBlOiAncHJvamVjdCcgfVxuICAgIGlmIChwcm9qZWN0Py5uYW1lKSByZXR1cm4geyBjaGlwSXRlbXM6IFtwcm9qZWN0Lm5hbWVdLCBjaGlwVHlwZTogJ3Byb2plY3QnIH1cblxuICAgIHJldHVybiB7IGNoaXBJdGVtczogW10gfVxuICB9LCBbaXRlbXMsIHByb2plY3QsIGNoaXBzUHJvamVjdCwgYWdlbnQ/LmVudGl0eSwgYWdlbnQ/LnR5cGUsIGNsaWVudCwgdGFzaz8ubmFtZV0pXG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgaWYgKHJlcG9ydGVkRXZlbnQuY3VycmVudCkgcmV0dXJuXG4gICAgZXZlbnQoRVZFTlRTLnBtQWlUeXBlZFRleHQsIHtcbiAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICB9KVxuICAgIHJlcG9ydGVkRXZlbnQuY3VycmVudCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBuZXdBdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB7XG4gICAgY29uc3QgZnJvbURlZXBMaW5rID0gQm9vbGVhbihkZWVwTGlua1NlbmRQZW5kaW5nUmVmPy5jdXJyZW50KVxuICAgIGlmIChkZWVwTGlua1NlbmRQZW5kaW5nUmVmKSB7XG4gICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH1cbiAgICBldmVudChFVkVOVFMuYWlDaGF0U2VuZCwge1xuICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgICAgYWdlbnRfaWQ6IGFnZW50Py5pZCxcbiAgICAgIGFnZW50X25hbWU6IGFnZW50Py5uYW1lLFxuICAgICAgLi4uKGZyb21EZWVwTGluayA/IHsgc291cmNlOiAnZGVlcF9saW5rJyB9IDoge30pLFxuICAgIH0pXG4gICAgY29uc3Qgc2tpbGxJZHMgPSAobWVudGlvbnMgPz8gW10pLmZpbHRlcihtZW50aW9uID0+IG1lbnRpb24udHlwZSA9PT0gJ3NraWxsJykubWFwKG1lbnRpb24gPT4gU3RyaW5nKG1lbnRpb24uaWQpKVxuICAgIGlmIChza2lsbElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudChFVkVOVFMuYWlDaGF0U2tpbGxTZW5kLCB7XG4gICAgICAgIHNraWxsX2lkczogc2tpbGxJZHMsXG4gICAgICAgIHNraWxsX2NvdW50OiBza2lsbElkcy5sZW5ndGgsXG4gICAgICAgIGFnZW50X3R5cGU6IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA/ICdtYXJrZXRwbGFjZScgOiBhZ2VudD8udHlwZSxcbiAgICAgIH0pXG4gICAgfVxuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgbmV3QXR0YWNobWVudHMsIGZhcUlkLCBhZ2VudFN1Z2dlc3Rpb25JZCwgbWVudGlvbnMsIGZ1YUlkLCBzY0lkKVxuICAgIHNldEF0dGFjaG1lbnRzKFtdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0RmFxID0gKG1lc3NhZ2U6IHN0cmluZywgZmFxSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uU2VuZE1lc3NhZ2UobWVzc2FnZSwgdW5kZWZpbmVkLCBmYXFJZCwgdW5kZWZpbmVkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZUF0dGFjaCA9IGFzeW5jIChmaWxlOiBGaWxlKSA9PiB7XG4gICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgIGNvbnN0IGlzSW1hZ2VCeUV4dGVuc2lvbiA9IFsnLnBuZycsICcuanBnJywgJy5qcGVnJ10uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbilcbiAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gZmlsZS50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgY29uc3QgaXNJbWFnZSA9IGlzSW1hZ2VCeU1pbWUgJiYgaXNJbWFnZUJ5RXh0ZW5zaW9uXG4gICAgLy8gU2kgZWwgTUlNRSBubyBkaXN0aW5ndWUgYmllbiBsYSBleHRlbnNpw7NuIChhdWRpby9vZ2csIGF1ZGlvL21wNCwgUG93ZXJQb2ludCksIHVzYXIgZWwgaWNvbm8gcG9yIGV4dGVuc2nDs25cbiAgICBjb25zdCBleHRlbnNpb25Ub0ljb246IFJlY29yZDxzdHJpbmcsIFJlYWN0Tm9kZT4gPSB7XG4gICAgICAnLm9nZyc6IDxPZ2dGaWxlSWNvbiAvPixcbiAgICAgICcub2dhJzogPE9nYUZpbGVJY29uIC8+LFxuICAgICAgJy5tcDQnOiA8TXA0RmlsZUljb24gLz4sXG4gICAgICAnLm00YSc6IDxNNGFGaWxlSWNvbiAvPixcbiAgICAgICcucHB0JzogPFBwdEZpbGVJY29uIC8+LFxuICAgICAgJy5wcHR4JzogPFBwdHhGaWxlSWNvbiAvPixcbiAgICB9XG5cbiAgICBsZXQgaWNvbiA9IEljb25CeUZpbGVUeXBlW2ZpbGUudHlwZV1cblxuICAgIC8vIFNpIGVsIHRpcG8gZXMgYXVkaW8vb2dnLCBhdWRpby9tcDQgbyBQb3dlclBvaW50IGdlbsOpcmljbywgdXNhciBsYSBleHRlbnNpw7NuIHBhcmEgZWwgaWNvbm9cbiAgICBpZiAoXG4gICAgICAoZmlsZS50eXBlID09PSAnYXVkaW8vb2dnJyB8fCBmaWxlLnR5cGUgPT09ICdhdWRpby9tcDQnIHx8IGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JykgJiZcbiAgICAgIGZpbGVFeHRlbnNpb25cbiAgICApIHtcbiAgICAgIGljb24gPSBleHRlbnNpb25Ub0ljb25bZmlsZUV4dGVuc2lvbl0gfHwgaWNvblxuICAgIH1cblxuICAgIGlmICghaWNvbikge1xuICAgICAgY29uc3QgZXh0ZW5zaW9uVG9NaW1lVHlwZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgJy50eHQnOiAndGV4dC9wbGFpbicsXG4gICAgICAgICcubWQnOiAndGV4dC94LW1hcmtkb3duJyxcbiAgICAgICAgJy5jc3YnOiAndGV4dC9jc3YnLFxuICAgICAgICAnLmRvYyc6ICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAgICAgICAnLmRvY3gnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAgICAgICAnLnBwdCc6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgICAgICcucHB0eCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyxcbiAgICAgICAgJy5wZGYnOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAgICAgJy54bHN4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICAgJy54bHMnOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgICAgICAgJy5mbGFjJzogJ2F1ZGlvL2ZsYWMnLFxuICAgICAgICAnLm00YSc6ICdhdWRpby9tNGEnLFxuICAgICAgICAnLm1wMyc6ICdhdWRpby9tcGVnJyxcbiAgICAgICAgJy5tcDQnOiAnYXVkaW8vbXA0JyxcbiAgICAgICAgJy5vZ2EnOiAnYXVkaW8vb2dhJyxcbiAgICAgICAgJy5vZ2cnOiAnYXVkaW8vb2dnJyxcbiAgICAgICAgJy53YXYnOiAnYXVkaW8vd2F2JyxcbiAgICAgICAgJy53ZWJtJzogJ2F1ZGlvL3dlYm0nLFxuICAgICAgfVxuICAgICAgY29uc3QgbWltZVR5cGVCeUV4dGVuc2lvbiA9IGV4dGVuc2lvblRvTWltZVR5cGVbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGlmIChtaW1lVHlwZUJ5RXh0ZW5zaW9uKSB7XG4gICAgICAgIGljb24gPSBJY29uQnlGaWxlVHlwZVttaW1lVHlwZUJ5RXh0ZW5zaW9uXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWNvbiA9IDxBdHRhY2ggY29sb3I9XCJyZ2JhKDEzNSwgNjQsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBwcm9jZXNzZWRGaWxlID0gZmlsZVxuXG4gICAgLy8gU2kgZXMgdW5hIGltYWdlbiwgcHJlLXByb2Nlc2FybGEgcGFyYSBlbCBiYWNrZW5kIChlbCBjaGlwIGRlbCBpbnB1dCB1c2EgZWwgw61jb25vIGRlIHRpcG8pLlxuICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBwcm9jZXNzZWRGaWxlID0gYXdhaXQgcHJlcHJvY2Vzc0ltYWdlRm9yQmFja2VuZChmaWxlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJlLXByb2Nlc2FuZG8gaW1hZ2VuOicsIGVycm9yKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnQ6IEF0dGFjaG1lbnRGaWxlID0ge1xuICAgICAgZmlsZTogcHJvY2Vzc2VkRmlsZSxcbiAgICAgIG9yaWdpbmFsRmlsZTogaXNJbWFnZSA/IGZpbGUgOiB1bmRlZmluZWQsXG4gICAgICBpZDogYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpfWAsXG4gICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICBzaXplOiBwcm9jZXNzZWRGaWxlLnNpemUsXG4gICAgICB0eXBlOiBwcm9jZXNzZWRGaWxlLnR5cGUsXG4gICAgICBpY29uLFxuICAgIH1cblxuICAgIHNldEF0dGFjaG1lbnRzKHByZXYgPT4gWy4uLnByZXYsIG5ld0F0dGFjaG1lbnRdKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQXR0YWNobWVudCA9IChmaWxlSWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4gYXR0YWNobWVudC5pZCAhPT0gZmlsZUlkKVxuICAgIHNldEF0dGFjaG1lbnRzKG5ld0F0dGFjaG1lbnRzKVxuICB9XG5cbiAgY29uc3QgaXNNQUlBID0gdmFsaWRhdGVJc01haWEoYWdlbnQgYXMgQWdlbnQpXG4gIGNvbnN0IGRpc2NsYWltZXJNZXNzYWdlID0gaXNNQUlBXG4gICAgPyB0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyJywgeyBhZ2VudE5hbWU6IHQoJ2dsb2JhbHMuYnJhbmROYW1lJykgfSlcbiAgICA6IHQoJ2NoYXQuZm9vdGVyLmRpc2NsYWltZXJBZ2VudCcpXG5cbiAgY29uc3QgY29udGV4dENoaXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWlzTUFJQSB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgIWNoaXBJdGVtcy5sZW5ndGgpIHJldHVybiBudWxsXG5cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IGNoaXBJdGVtcyxcbiAgICAgIHR5cGU6IGNoaXBUeXBlLFxuICAgICAgbGVhZGluZ0ljb246IGNoaXBUeXBlID09PSAndGFzaycgPyA8VGFza0xpbmtJY29uIHdpZHRoPXsxNX0gaGVpZ2h0PXsxNX0gY29sb3I9XCIjODA4MDgwXCIgLz4gOiB1bmRlZmluZWQsXG4gICAgfVxuICB9LCBbaXNNQUlBLCBsb2FkaW5nTWVzc2FnZXMsIGNoaXBJdGVtcywgY2hpcFR5cGVdKVxuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENoYXRGb290ZXI+XG4gICAgICA8TUFJQUlucHV0XG4gICAgICAgIHBvcG92ZXJBbmNob3JSZWY9e2lucHV0UG9wb3ZlckFuY2hvclJlZn1cbiAgICAgICAgb25TZW5kTWVzc2FnZT17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgIGNsYXNzTmFtZT17TU9EQUxfRUxFTUVOVFN9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgIGFnZW50Py5pbnB1dF9wbGFjZWhvbGRlciB8fFxuICAgICAgICAgIChpc09yY2hlc3RyYXRvciA/IHQoJ2NoYXQuZm9vdGVyLm9yY2hlc3RyYXRvclBsYWNlaG9sZGVyJykgOiB0KCdjaGF0LmZvb3Rlci5wbGFjZWhvbGRlcicpKVxuICAgICAgICB9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25Gb2N1cz17b25JbnB1dEZvY3VzfVxuICAgICAgICBvbkZpbGVBdHRhY2g9e2hhbmRsZUZpbGVBdHRhY2h9XG4gICAgICAgIG9uRGVsZXRlQXR0YWNobWVudD17aGFuZGxlRGVsZXRlQXR0YWNobWVudH1cbiAgICAgICAgYXR0YWNobWVudHM9e2F0dGFjaG1lbnRzXG4gICAgICAgICAgLmZpbHRlcihhdHQgPT4gISFhdHQuZmlsZSlcbiAgICAgICAgICAubWFwKGF0dCA9PiAoe1xuICAgICAgICAgICAgZmlsZTogYXR0LmZpbGUhLFxuICAgICAgICAgICAgb3JpZ2luYWxGaWxlOiBhdHQub3JpZ2luYWxGaWxlLFxuICAgICAgICAgICAgaWQ6IGF0dC5pZCxcbiAgICAgICAgICAgIG5hbWU6IGF0dC5uYW1lLFxuICAgICAgICAgICAgc2l6ZTogdHlwZW9mIGF0dC5zaXplID09PSAnbnVtYmVyJyA/IGF0dC5zaXplIDogTnVtYmVyKGF0dC5zaXplKSB8fCAwLFxuICAgICAgICAgICAgdHlwZTogYXR0LnR5cGUsXG4gICAgICAgICAgICBpY29uOiBhdHQuaWNvbixcbiAgICAgICAgICB9KSl9XG4gICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgaXNXcml0aW5nPXtpc1dyaXRpbmd9XG4gICAgICAgIG9uU3RvcEdlbmVyYXRpb249e29uU3RvcEdlbmVyYXRpb259XG4gICAgICAgIGNoYXRJZD17Y2hhdElkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgbmV3Q2hhdEtleT17bmV3Q2hhdEtleX1cbiAgICAgICAgdG9vbHRpcFpJbmRleD17dG9vbHRpcFpJbmRleH1cbiAgICAgICAgbGF5b3V0TW9kZT17bGF5b3V0TW9kZX1cbiAgICAgICAgY29udGV4dENoaXA9e2NvbnRleHRDaGlwfVxuICAgICAgLz5cbiAgICAgIDxDaGF0RGlzY2xhaW1lck1lc3NhZ2UgbWVzc2FnZT17ZGlzY2xhaW1lck1lc3NhZ2V9IC8+XG4gICAgPC9TdHlsZWRDaGF0Rm9vdGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQW9CQSxPQUFPLEVBQUVDLE1BQU0s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
@@ -0,0 +1,105 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ 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; }
3
+ 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; }
4
+ import { fireEvent, renderWithProviders, screen } from '../../../test/test-utils';
5
+ import { GlobalContextTestProvider, testAgent } from '../../../test/global-context';
6
+ import { ChatFooter } from './ChatFooter';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ jest.mock('../../../hooks/useEvent', function () {
9
+ return {
10
+ EVENTS: {
11
+ aiChatSend: 'AI_CHAT_SEND',
12
+ pmAiTypedText: 'AI_CHAT_TYPED'
13
+ },
14
+ useEvent: function useEvent() {
15
+ return jest.fn();
16
+ }
17
+ };
18
+ });
19
+ jest.mock('../../atoms/MAIAInput', function () {
20
+ return {
21
+ MAIAInput: function MAIAInput(_ref) {
22
+ var _contextChip$items;
23
+ var onSendMessage = _ref.onSendMessage,
24
+ disabled = _ref.disabled,
25
+ isStreaming = _ref.isStreaming,
26
+ onStopGeneration = _ref.onStopGeneration,
27
+ placeholder = _ref.placeholder,
28
+ contextChip = _ref.contextChip;
29
+ return /*#__PURE__*/_jsxs("div", {
30
+ children: [/*#__PURE__*/_jsx("span", {
31
+ children: placeholder
32
+ }), contextChip !== null && contextChip !== void 0 && (_contextChip$items = contextChip.items) !== null && _contextChip$items !== void 0 && _contextChip$items.length ? /*#__PURE__*/_jsx("span", {
33
+ children: contextChip.items.join(', ')
34
+ }) : null, /*#__PURE__*/_jsx("button", {
35
+ type: "button",
36
+ disabled: disabled,
37
+ onClick: function onClick() {
38
+ return onSendMessage('hola');
39
+ },
40
+ children: "send"
41
+ }), isStreaming && onStopGeneration ? /*#__PURE__*/_jsx("button", {
42
+ type: "button",
43
+ onClick: onStopGeneration,
44
+ children: "stop"
45
+ }) : null]
46
+ });
47
+ }
48
+ };
49
+ });
50
+ var renderFooter = function renderFooter(ui, context) {
51
+ return renderWithProviders(/*#__PURE__*/_jsx(GlobalContextTestProvider, {
52
+ value: context,
53
+ children: ui
54
+ }));
55
+ };
56
+ describe('ChatFooter', function () {
57
+ it('sends the message from the input', function () {
58
+ var onSendMessage = jest.fn();
59
+ renderFooter(/*#__PURE__*/_jsx(ChatFooter, {
60
+ onSendMessage: onSendMessage
61
+ }));
62
+ fireEvent.click(screen.getByRole('button', {
63
+ name: 'send'
64
+ }));
65
+ expect(onSendMessage).toHaveBeenCalledWith('hola', undefined, undefined, undefined, undefined, undefined, undefined);
66
+ });
67
+ it('disables send and can stop a stream', function () {
68
+ var onStopGeneration = jest.fn();
69
+ renderFooter(/*#__PURE__*/_jsx(ChatFooter, {
70
+ onSendMessage: jest.fn(),
71
+ disabled: true,
72
+ isStreaming: true,
73
+ onStopGeneration: onStopGeneration
74
+ }));
75
+ expect(screen.getByRole('button', {
76
+ name: 'send'
77
+ })).toBeDisabled();
78
+ fireEvent.click(screen.getByRole('button', {
79
+ name: 'stop'
80
+ }));
81
+ expect(onStopGeneration).toHaveBeenCalledTimes(1);
82
+ });
83
+ it('shows the orchestrator disclaimer and context chip', function () {
84
+ renderFooter(/*#__PURE__*/_jsx(ChatFooter, {
85
+ onSendMessage: jest.fn(),
86
+ items: ['Proyecto Alpha']
87
+ }));
88
+ expect(screen.getByText('chat.footer.disclaimer')).toBeInTheDocument();
89
+ expect(screen.getByText('Proyecto Alpha')).toBeInTheDocument();
90
+ expect(screen.getByText('chat.footer.orchestratorPlaceholder')).toBeInTheDocument();
91
+ });
92
+ it('uses the agent disclaimer for a custom agent', function () {
93
+ renderFooter(/*#__PURE__*/_jsx(ChatFooter, {
94
+ onSendMessage: jest.fn()
95
+ }), {
96
+ agent: _objectSpread(_objectSpread({}, testAgent), {}, {
97
+ type: 'custom',
98
+ input_placeholder: 'Preguntale al custom'
99
+ })
100
+ });
101
+ expect(screen.getByText('chat.footer.disclaimerAgent')).toBeInTheDocument();
102
+ expect(screen.getByText('Preguntale al custom')).toBeInTheDocument();
103
+ });
104
+ });
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwiR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciIsInRlc3RBZ2VudCIsIkNoYXRGb290ZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiamVzdCIsIm1vY2siLCJFVkVOVFMiLCJhaUNoYXRTZW5kIiwicG1BaVR5cGVkVGV4dCIsInVzZUV2ZW50IiwiZm4iLCJNQUlBSW5wdXQiLCJfcmVmIiwiX2NvbnRleHRDaGlwJGl0ZW1zIiwib25TZW5kTWVzc2FnZSIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJvblN0b3BHZW5lcmF0aW9uIiwicGxhY2Vob2xkZXIiLCJjb250ZXh0Q2hpcCIsImNoaWxkcmVuIiwiaXRlbXMiLCJsZW5ndGgiLCJqb2luIiwidHlwZSIsIm9uQ2xpY2siLCJyZW5kZXJGb290ZXIiLCJ1aSIsImNvbnRleHQiLCJ2YWx1ZSIsImRlc2NyaWJlIiwiaXQiLCJjbGljayIsImdldEJ5Um9sZSIsIm5hbWUiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInVuZGVmaW5lZCIsInRvQmVEaXNhYmxlZCIsInRvSGF2ZUJlZW5DYWxsZWRUaW1lcyIsImdldEJ5VGV4dCIsInRvQmVJblRoZURvY3VtZW50IiwiYWdlbnQiLCJfb2JqZWN0U3ByZWFkIiwiaW5wdXRfcGxhY2Vob2xkZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0RWxlbWVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZmlyZUV2ZW50LCByZW5kZXJXaXRoUHJvdmlkZXJzLCBzY3JlZW4gfSBmcm9tICcuLi8uLi8uLi90ZXN0L3Rlc3QtdXRpbHMnXG5pbXBvcnQgeyBHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyLCB0ZXN0QWdlbnQgfSBmcm9tICcuLi8uLi8uLi90ZXN0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgQ2hhdEZvb3RlciB9IGZyb20gJy4vQ2hhdEZvb3RlcidcblxuamVzdC5tb2NrKCcuLi8uLi8uLi9ob29rcy91c2VFdmVudCcsICgpID0+ICh7XG4gIEVWRU5UUzogeyBhaUNoYXRTZW5kOiAnQUlfQ0hBVF9TRU5EJywgcG1BaVR5cGVkVGV4dDogJ0FJX0NIQVRfVFlQRUQnIH0sXG4gIHVzZUV2ZW50OiAoKSA9PiBqZXN0LmZuKCksXG59KSlcblxuamVzdC5tb2NrKCcuLi8uLi9hdG9tcy9NQUlBSW5wdXQnLCAoKSA9PiAoe1xuICBNQUlBSW5wdXQ6ICh7XG4gICAgb25TZW5kTWVzc2FnZSxcbiAgICBkaXNhYmxlZCxcbiAgICBpc1N0cmVhbWluZyxcbiAgICBvblN0b3BHZW5lcmF0aW9uLFxuICAgIHBsYWNlaG9sZGVyLFxuICAgIGNvbnRleHRDaGlwLFxuICB9OiB7XG4gICAgb25TZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZFxuICAgIGRpc2FibGVkPzogYm9vbGVhblxuICAgIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICAgIG9uU3RvcEdlbmVyYXRpb24/OiAoKSA9PiB2b2lkXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgICBjb250ZXh0Q2hpcD86IHsgaXRlbXM6IHN0cmluZ1tdIH0gfCBudWxsXG4gIH0pID0+IChcbiAgICA8ZGl2PlxuICAgICAgPHNwYW4+e3BsYWNlaG9sZGVyfTwvc3Bhbj5cbiAgICAgIHtjb250ZXh0Q2hpcD8uaXRlbXM/Lmxlbmd0aCA/IDxzcGFuPntjb250ZXh0Q2hpcC5pdGVtcy5qb2luKCcsICcpfTwvc3Bhbj4gOiBudWxsfVxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQ9e2Rpc2FibGVkfSBvbkNsaWNrPXsoKSA9PiBvblNlbmRNZXNzYWdlKCdob2xhJyl9PlxuICAgICAgICBzZW5kXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIHtpc1N0cmVhbWluZyAmJiBvblN0b3BHZW5lcmF0aW9uID8gKFxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtvblN0b3BHZW5lcmF0aW9ufT5cbiAgICAgICAgICBzdG9wXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9kaXY+XG4gICksXG59KSlcblxuY29uc3QgcmVuZGVyRm9vdGVyID0gKHVpOiBSZWFjdEVsZW1lbnQsIGNvbnRleHQ/OiBQYXJhbWV0ZXJzPHR5cGVvZiBHbG9iYWxDb250ZXh0VGVzdFByb3ZpZGVyPlswXVsndmFsdWUnXSkgPT5cbiAgcmVuZGVyV2l0aFByb3ZpZGVycyg8R2xvYmFsQ29udGV4dFRlc3RQcm92aWRlciB2YWx1ZT17Y29udGV4dH0+e3VpfTwvR2xvYmFsQ29udGV4dFRlc3RQcm92aWRlcj4pXG5cbmRlc2NyaWJlKCdDaGF0Rm9vdGVyJywgKCkgPT4ge1xuICBpdCgnc2VuZHMgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgaW5wdXQnLCAoKSA9PiB7XG4gICAgY29uc3Qgb25TZW5kTWVzc2FnZSA9IGplc3QuZm4oKVxuICAgIHJlbmRlckZvb3Rlcig8Q2hhdEZvb3RlciBvblNlbmRNZXNzYWdlPXtvblNlbmRNZXNzYWdlfSAvPilcblxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdzZW5kJyB9KSlcblxuICAgIGV4cGVjdChvblNlbmRNZXNzYWdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnaG9sYScsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpXG4gIH0pXG5cbiAgaXQoJ2Rpc2FibGVzIHNlbmQgYW5kIGNhbiBzdG9wIGEgc3RyZWFtJywgKCkgPT4ge1xuICAgIGNvbnN0IG9uU3RvcEdlbmVyYXRpb24gPSBqZXN0LmZuKClcbiAgICByZW5kZXJGb290ZXIoPENoYXRGb290ZXIgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSBkaXNhYmxlZCBpc1N0cmVhbWluZyBvblN0b3BHZW5lcmF0aW9uPXtvblN0b3BHZW5lcmF0aW9ufSAvPilcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdzZW5kJyB9KSkudG9CZURpc2FibGVkKClcbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnc3RvcCcgfSkpXG4gICAgZXhwZWN0KG9uU3RvcEdlbmVyYXRpb24pLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKVxuICB9KVxuXG4gIGl0KCdzaG93cyB0aGUgb3JjaGVzdHJhdG9yIGRpc2NsYWltZXIgYW5kIGNvbnRleHQgY2hpcCcsICgpID0+IHtcbiAgICByZW5kZXJGb290ZXIoPENoYXRGb290ZXIgb25TZW5kTWVzc2FnZT17amVzdC5mbigpfSBpdGVtcz17WydQcm95ZWN0byBBbHBoYSddfSAvPilcblxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdjaGF0LmZvb3Rlci5kaXNjbGFpbWVyJykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnUHJveWVjdG8gQWxwaGEnKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdjaGF0LmZvb3Rlci5vcmNoZXN0cmF0b3JQbGFjZWhvbGRlcicpKS50b0JlSW5UaGVEb2N1bWVudCgpXG4gIH0pXG5cbiAgaXQoJ3VzZXMgdGhlIGFnZW50IGRpc2NsYWltZXIgZm9yIGEgY3VzdG9tIGFnZW50JywgKCkgPT4ge1xuICAgIHJlbmRlckZvb3Rlcig8Q2hhdEZvb3RlciBvblNlbmRNZXNzYWdlPXtqZXN0LmZuKCl9IC8+LCB7XG4gICAgICBhZ2VudDogeyAuLi50ZXN0QWdlbnQsIHR5cGU6ICdjdXN0b20nLCBpbnB1dF9wbGFjZWhvbGRlcjogJ1ByZWd1bnRhbGUgYWwgY3VzdG9tJyB9LFxuICAgIH0pXG5cbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnY2hhdC5mb290ZXIuZGlzY2xhaW1lckFnZW50JykpLnRvQmVJblRoZURvY3VtZW50KClcbiAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnUHJlZ3VudGFsZSBhbCBjdXN0b20nKSkudG9CZUluVGhlRG9jdW1lbnQoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsU0FBU0EsU0FBUyxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRixTQUFTQyx5QkFBeUIsRUFBRUMsU0FBUyxRQUFRLDhCQUE4QjtBQUNuRixTQUFTQyxVQUFVLFFBQVEsY0FBYztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFekNDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHlCQUF5QixFQUFFO0VBQUEsT0FBTztJQUMxQ0MsTUFBTSxFQUFFO01BQUVDLFVBQVUsRUFBRSxjQUFjO01BQUVDLGFBQWEsRUFBRTtJQUFnQixDQUFDO0lBQ3RFQyxRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBQTtNQUFBLE9BQVFMLElBQUksQ0FBQ00sRUFBRSxDQUFDLENBQUM7SUFBQTtFQUMzQixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhOLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFO0VBQUEsT0FBTztJQUN4Q00sU0FBUyxFQUFFLFNBQVhBLFNBQVNBLENBQUFDLElBQUE7TUFBQSxJQUFBQyxrQkFBQTtNQUFBLElBQ1BDLGFBQWEsR0FBQUYsSUFBQSxDQUFiRSxhQUFhO1FBQ2JDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO1FBQ1JDLFdBQVcsR0FBQUosSUFBQSxDQUFYSSxXQUFXO1FBQ1hDLGdCQUFnQixHQUFBTCxJQUFBLENBQWhCSyxnQkFBZ0I7UUFDaEJDLFdBQVcsR0FBQU4sSUFBQSxDQUFYTSxXQUFXO1FBQ1hDLFdBQVcsR0FBQVAsSUFBQSxDQUFYTyxXQUFX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
@@ -3,27 +3,21 @@ import colors from '@projectcor/theme/lib/base/colors';
3
3
  export var StyledChatFooter = styled.div.withConfig({
4
4
  displayName: "styles__StyledChatFooter",
5
5
  componentId: "sc-qhd26v-0"
6
- })(["display:flex;flex-direction:column;gap:8px;width:100%;max-width:864px;"]);
7
-
8
- /** Figma Bloqueo: banner absoluto arriba del input (padding-top ≈ alto del banner). */
9
- export var SCComposerBlockedStack = styled.div.withConfig({
10
- displayName: "styles__SCComposerBlockedStack",
11
- componentId: "sc-qhd26v-1"
12
- })(["position:relative;width:100%;isolation:isolate;"]);
6
+ })(["display:flex;flex-direction:column;gap:6px;width:100%;max-width:864px;"]);
13
7
  export var ContextBarLeft = styled.div.withConfig({
14
8
  displayName: "styles__ContextBarLeft",
15
- componentId: "sc-qhd26v-2"
9
+ componentId: "sc-qhd26v-1"
16
10
  })(["display:flex;align-items:center;gap:6px;min-width:0;flex:0 1 auto;"]);
17
11
  export var GlobalContextLabel = styled.span.withConfig({
18
12
  displayName: "styles__GlobalContextLabel",
19
- componentId: "sc-qhd26v-3"
13
+ componentId: "sc-qhd26v-2"
20
14
  })(["display:inline-flex;align-items:center;flex-shrink:0;height:30px;padding:0 10px;border:0.5px dashed #bfbfbf;border-radius:20px;color:", ";font-size:12px;line-height:130%;white-space:nowrap;"], colors.secondary);
21
15
  export var ChipsAndFaqsRow = styled.div.withConfig({
22
16
  displayName: "styles__ChipsAndFaqsRow",
23
- componentId: "sc-qhd26v-4"
17
+ componentId: "sc-qhd26v-3"
24
18
  })(["display:flex;align-items:center;justify-content:space-between;gap:6px;box-sizing:border-box;width:100%;min-width:0;& > *:first-child{flex:0 1 auto;min-width:0;max-width:100%;}& > *:last-child{flex-shrink:0;}"]);
25
19
  export var FooterActionsRight = styled.div.withConfig({
26
20
  displayName: "styles__FooterActionsRight",
27
- componentId: "sc-qhd26v-5"
21
+ componentId: "sc-qhd26v-4"
28
22
  })(["display:flex;align-items:center;gap:8px;flex-shrink:0;"]);
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJTQ0NvbXBvc2VyQmxvY2tlZFN0YWNrIiwiQ29udGV4dEJhckxlZnQiLCJHbG9iYWxDb250ZXh0TGFiZWwiLCJzcGFuIiwic2Vjb25kYXJ5IiwiQ2hpcHNBbmRGYXFzUm93IiwiRm9vdGVyQWN0aW9uc1JpZ2h0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRGb290ZXIvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENoYXRGb290ZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODY0cHg7XG5gXG5cbi8qKiBGaWdtYSBCbG9xdWVvOiBiYW5uZXIgYWJzb2x1dG8gYXJyaWJhIGRlbCBpbnB1dCAocGFkZGluZy10b3Ag4omIIGFsdG8gZGVsIGJhbm5lcikuICovXG5leHBvcnQgY29uc3QgU0NDb21wb3NlckJsb2NrZWRTdGFjayA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbmBcblxuZXhwb3J0IGNvbnN0IENvbnRleHRCYXJMZWZ0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMCAxIGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb250ZXh0TGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYm9yZGVyOiAwLjVweCBkYXNoZWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnNlY29uZGFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwc0FuZEZhcXNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuXG4gIC8qIENoaXAgYWwgYW5jaG8gZGVsIHRleHRvOyBzaSBubyBlbnRyYSwgZW5jb2dlIHkgdHJ1bmNhLiBBY2Npb25lcyBmaWphcyBhIGxhIGRlcmVjaGEuICovXG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEZvb3RlckFjdGlvbnNSaWdodCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdGLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhFQU16Qzs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsc0JBQXNCLEdBQUdQLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHVEQUkvQztBQUVELE9BQU8sSUFBTUUsY0FBYyxHQUFHUixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFNdkM7QUFFRCxPQUFPLElBQU1HLGtCQUFrQixHQUFHVCxNQUFNLENBQUNVLElBQUksQ0FBQU4sVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzTUFRbENMLE1BQU0sQ0FBQ1UsU0FBUyxDQUkxQjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHWixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1TkFtQnhDO0FBRUQsT0FBTyxJQUFNTyxrQkFBa0IsR0FBR2IsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOERBSzNDIiwiaWdub3JlTGlzdCI6W119
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjb2xvcnMiLCJTdHlsZWRDaGF0Rm9vdGVyIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJDb250ZXh0QmFyTGVmdCIsIkdsb2JhbENvbnRleHRMYWJlbCIsInNwYW4iLCJzZWNvbmRhcnkiLCJDaGlwc0FuZEZhcXNSb3ciLCJGb290ZXJBY3Rpb25zUmlnaHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cydcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5leHBvcnQgY29uc3QgU3R5bGVkQ2hhdEZvb3RlciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NjRweDtcbmBcblxuZXhwb3J0IGNvbnN0IENvbnRleHRCYXJMZWZ0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMCAxIGF1dG87XG5gXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxDb250ZXh0TGFiZWwgPSBzdHlsZWQuc3BhbmBcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgYm9yZGVyOiAwLjVweCBkYXNoZWQgI2JmYmZiZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgY29sb3I6ICR7Y29sb3JzLnNlY29uZGFyeX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEzMCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5gXG5cbmV4cG9ydCBjb25zdCBDaGlwc0FuZEZhcXNSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAwO1xuXG4gIC8qIENoaXAgYWwgYW5jaG8gZGVsIHRleHRvOyBzaSBubyBlbnRyYSwgZW5jb2dlIHkgdHJ1bmNhLiBBY2Npb25lcyBmaWphcyBhIGxhIGRlcmVjaGEuICovXG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJiA+ICo6bGFzdC1jaGlsZCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IEZvb3RlckFjdGlvbnNSaWdodCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmbGV4LXNocmluazogMDtcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBRXRELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdGLE1BQU0sQ0FBQ0csR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDhFQU16QztBQUVELE9BQU8sSUFBTUMsY0FBYyxHQUFHUCxNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwRUFNdkM7QUFFRCxPQUFPLElBQU1FLGtCQUFrQixHQUFHUixNQUFNLENBQUNTLElBQUksQ0FBQUwsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxzTUFRbENMLE1BQU0sQ0FBQ1MsU0FBUyxDQUkxQjtBQUVELE9BQU8sSUFBTUMsZUFBZSxHQUFHWCxNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx1TkFtQnhDO0FBRUQsT0FBTyxJQUFNTSxrQkFBa0IsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOERBSzNDIiwiaWdub3JlTGlzdCI6W119
@@ -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==