@projectcor/maia-components 2.49.0-beta.1 → 2.49.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.
- package/lib/components/atoms/ApprovalBox/ApprovalBox.helpers.js +37 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +3 -37
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +117 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +31 -101
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +91 -0
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +49 -140
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +257 -0
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +53 -205
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +4 -0
- package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +2 -4
- package/lib/components/atoms/ClientSelector/ClientSelector.helpers.js +26 -0
- package/lib/components/atoms/ClientSelector/ClientSelector.js +12 -21
- package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +227 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +15 -255
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +59 -0
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +12 -57
- package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +74 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +184 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +127 -176
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +96 -0
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +40 -113
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +17 -0
- package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +3 -15
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +3 -4
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +3 -11
- package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +6 -1
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +2 -3
- package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +10 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.js +101 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +21 -77
- package/lib/components/atoms/TextArea/TextArea.helpers.js +23 -0
- package/lib/components/atoms/TextArea/TextArea.js +11 -20
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +37 -0
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +6 -29
- package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +68 -0
- package/lib/components/molecules/AbmSection/AbmGeneralSection.js +17 -56
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +133 -0
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +31 -112
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +17 -0
- package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +5 -15
- package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.js +370 -0
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +197 -233
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +398 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +209 -235
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +515 -4
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +228 -344
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +5 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +3 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +49 -0
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +36 -33
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.js +39 -0
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +30 -33
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.js +41 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +9 -35
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +48 -0
- package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +9 -44
- package/lib/components/molecules/Sidebar/Sidebar.helpers.js +43 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +25 -22
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +512 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +309 -643
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.js +37 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +13 -25
- package/lib/constants/formatExtensions.js +7 -8
- package/lib/dev/DevReasoningTimeline.js +8 -50
- package/lib/hooks/useAgentModel/useCreateAgent.helpers.js +144 -0
- package/lib/hooks/useAgentModel/useCreateAgent.js +38 -102
- package/lib/hooks/useChatManager/useChatManager.helpers.js +902 -0
- package/lib/hooks/useChatManager/useChatManager.js +267 -741
- package/lib/hooks/useChatMessages/useChatMessages.helpers.js +365 -0
- package/lib/hooks/useChatMessages/useChatMessages.js +59 -285
- package/lib/hooks/useClientSearch.helpers.js +36 -0
- package/lib/hooks/useClientSearch.js +4 -32
- package/lib/hooks/useContextMentions.helpers.js +212 -0
- package/lib/hooks/useContextMentions.js +5 -223
- package/lib/hooks/useContextMentions.types.js +2 -0
- package/lib/hooks/useContextPinPopover.helpers.js +95 -0
- package/lib/hooks/useContextPinPopover.js +16 -75
- package/lib/hooks/useEntitySearch.helpers.js +407 -0
- package/lib/hooks/useEntitySearch.js +52 -436
- package/lib/hooks/useMentionPopover.helpers.js +41 -0
- package/lib/hooks/useMentionPopover.js +9 -35
- package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +47 -0
- package/lib/hooks/useMinimizedPillBottomOffset.js +15 -45
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.js +86 -0
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +8 -82
- package/lib/hooks/useProjectSearch.helpers.js +61 -0
- package/lib/hooks/useProjectSearch.js +4 -58
- package/lib/hooks/useProjectSummaryConfig.helpers.js +62 -0
- package/lib/hooks/useProjectSummaryConfig.js +14 -52
- package/lib/hooks/useReasoningTrace/reasoningStore.js +8 -39
- package/lib/hooks/useRecentClientsSearch.helpers.js +33 -0
- package/lib/hooks/useRecentClientsSearch.js +4 -32
- package/lib/lang/br/index.js +1 -7
- package/lib/lang/en/index.js +1 -7
- package/lib/lang/es/index.js +1 -7
- package/lib/lang/fr/index.js +1 -7
- package/lib/services/maia/Agents/getAgents.helpers.js +241 -0
- package/lib/services/maia/Agents/getAgents.js +90 -282
- package/lib/services/maia/Orchestrator/orchestrator.helpers.js +130 -0
- package/lib/services/maia/Orchestrator/orchestrator.js +38 -121
- package/lib/services/utils/mapChatMessages.helpers.js +223 -0
- package/lib/services/utils/mapChatMessages.js +25 -254
- package/lib/store/sessions/sessionNotifications.helpers.js +45 -0
- package/lib/store/sessions/sessionNotifications.js +35 -41
- package/lib/store/sessions/sessionStreamManager.helpers.js +134 -0
- package/lib/store/sessions/sessionStreamManager.js +172 -236
- package/lib/test/mockSseStream.js +121 -0
- package/lib/test/streamdownCodeMock.js +6 -0
- package/lib/test/streamdownMock.js +12 -0
- package/lib/types/Chat.js +1 -1
- package/lib/types/agentModal.js +1 -1
- package/lib/types/reasoning.js +1 -1
- package/lib/utils/imagePreprocessor.helpers.js +28 -0
- package/lib/utils/imagePreprocessor.js +12 -37
- package/lib/utils/renderContextMentions.helpers.js +110 -0
- package/lib/utils/renderContextMentions.js +4 -110
- package/lib/utils/streamActivityMessages.helpers.js +222 -0
- package/lib/utils/streamActivityMessages.js +4 -221
- package/package.json +2 -2
- package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.js +0 -53
- package/lib/components/atoms/ContextCompactedNotice/ContextCompactedNotice.styles.js +0 -8
- package/lib/components/atoms/ContextCompactedNotice/index.js +0 -2
- package/lib/types/contextCompaction.js +0 -48
- package/lib/types/jest-dom.d.js +0 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
2
|
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
4
3
|
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
@@ -21,27 +20,9 @@ import { useDownloadKnowledge } from '../../../hooks/useKnowledge/downloadKnowle
|
|
|
21
20
|
import { useOnboardingNavigation } from '../../../hooks/useOnboardingNavigation';
|
|
22
21
|
import { ModalFileExceeds } from '../../organisms/ModalFileExceeds/ModalFileExceeds';
|
|
23
22
|
import { allowedFileTypesForKnowledge, fileTypes } from '../../../constants/formatExtensions';
|
|
23
|
+
import { appendKnowledgeAttachments, canPreviewKnowledgeAttachment, computeAttachmentsTotalSize, createClosedKnowledgeFileErrorModalState, MAX_KNOWLEDGE_TOTAL_SIZE, processKnowledgeFiles, removeKnowledgeAttachmentByIndex, resolveKnowledgeAttachmentAtIndex, resolveKnowledgeFileErrorModalState, shouldBlockKnowledgeUpload, shouldEnableKnowledgeDragState, shouldHandleKnowledgeAttachmentAction, shouldProcessKnowledgeFileInput, shouldRunKnowledgeDownloadEffect } from './AbmKnowledgeSection.helpers';
|
|
24
24
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
25
|
-
|
|
26
|
-
var _stringToChange$split = stringToChange.split('.'),
|
|
27
|
-
_stringToChange$split2 = _slicedToArray(_stringToChange$split, 2),
|
|
28
|
-
filename = _stringToChange$split2[0],
|
|
29
|
-
_stringToChange$split3 = _stringToChange$split2[1],
|
|
30
|
-
extension = _stringToChange$split3 === void 0 ? '' : _stringToChange$split3;
|
|
31
|
-
var ext = extension ? ".".concat(extension) : '';
|
|
32
|
-
if (!(prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(stringToChange))) {
|
|
33
|
-
return stringToChange;
|
|
34
|
-
}
|
|
35
|
-
var counter = 1;
|
|
36
|
-
var newFilename;
|
|
37
|
-
do {
|
|
38
|
-
newFilename = "".concat(filename, "(").concat(counter, ")").concat(ext);
|
|
39
|
-
counter++;
|
|
40
|
-
} while (prevStrings !== null && prevStrings !== void 0 && prevStrings.includes(newFilename));
|
|
41
|
-
return newFilename;
|
|
42
|
-
}
|
|
43
|
-
var MAX_TOTAL_SIZE = 5 * 1024 * 1024; // 5MB total
|
|
44
|
-
|
|
25
|
+
var MAX_TOTAL_SIZE = MAX_KNOWLEDGE_TOTAL_SIZE;
|
|
45
26
|
export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
46
27
|
var handleSetAgentValues = _ref.handleSetAgentValues,
|
|
47
28
|
values = _ref.values,
|
|
@@ -79,103 +60,52 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
79
60
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
80
61
|
isDragging = _useState8[0],
|
|
81
62
|
setIsDragging = _useState8[1];
|
|
82
|
-
|
|
83
|
-
// Calcular el tamaño total actual de archivos
|
|
84
|
-
var currentTotalSize = (localAttachments || []).reduce(function (total, attachment) {
|
|
85
|
-
var size = typeof attachment.size === 'number' ? attachment.size : Number(attachment.size);
|
|
86
|
-
return total + (Number.isNaN(size) ? 0 : size);
|
|
87
|
-
}, 0);
|
|
63
|
+
var currentTotalSize = computeAttachmentsTotalSize(localAttachments || []);
|
|
88
64
|
var isAtSizeLimit = currentTotalSize >= MAX_TOTAL_SIZE;
|
|
89
65
|
var handleAttachClick = function handleAttachClick() {
|
|
90
66
|
var _fileInputRef$current;
|
|
91
|
-
if (isAtSizeLimit) {
|
|
67
|
+
if (shouldBlockKnowledgeUpload(isAtSizeLimit)) {
|
|
92
68
|
return;
|
|
93
69
|
}
|
|
94
70
|
(_fileInputRef$current = fileInputRef.current) === null || _fileInputRef$current === void 0 || _fileInputRef$current.click();
|
|
95
71
|
};
|
|
96
72
|
var handleFileSelect = function handleFileSelect(e) {
|
|
97
73
|
var files = e.target.files;
|
|
98
|
-
if (!files) return;
|
|
99
|
-
var
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return total + (Number.isNaN(size) ? 0 : size);
|
|
111
|
-
}, 0);
|
|
112
|
-
var runningTotalSize = existingTotalSize;
|
|
113
|
-
Array.from(files).forEach(function (file) {
|
|
114
|
-
var _fileNameParts$pop;
|
|
115
|
-
var fileNameParts = file.name.split('.');
|
|
116
|
-
var fileExtension = fileNameParts.length > 1 ? ".".concat((_fileNameParts$pop = fileNameParts.pop()) === null || _fileNameParts$pop === void 0 ? void 0 : _fileNameParts$pop.toLowerCase()) : '';
|
|
117
|
-
if (!allowedFileTypesForKnowledge.includes(fileExtension)) {
|
|
118
|
-
invalidExtensionFiles.push(file.name);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Verificar si agregar este archivo excedería el límite total de 5MB
|
|
123
|
-
var newTotalSize = runningTotalSize + file.size;
|
|
124
|
-
if (newTotalSize > MAX_TOTAL_SIZE) {
|
|
125
|
-
exceededFiles.push(file.name);
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
var typeFile = file.type || fileTypes[fileExtension];
|
|
129
|
-
var uniqueName = getUniqueString(attachmentsNames, file.name);
|
|
130
|
-
var parsedFile = new File([file], uniqueName, {
|
|
131
|
-
type: typeFile
|
|
132
|
-
});
|
|
133
|
-
var attachmentFile = {
|
|
134
|
-
file: parsedFile,
|
|
135
|
-
id: "".concat(Date.now(), "-").concat(Math.random()),
|
|
136
|
-
name: uniqueName,
|
|
137
|
-
size: file.size,
|
|
138
|
-
type: typeFile,
|
|
139
|
-
status: 'started'
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// Solo agregar el archivo si no está en la lista de archivos excedidos
|
|
143
|
-
if (!exceededFiles.includes(file.name)) {
|
|
144
|
-
insertedFiles.push(attachmentFile);
|
|
145
|
-
// Actualizar el tamaño total para la siguiente validación
|
|
146
|
-
runningTotalSize += file.size;
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
// Mostrar modal si hay archivos con extensión inválida o que exceden el límite
|
|
151
|
-
var hasErrors = invalidExtensionFiles.length > 0 || exceededFiles.length > 0;
|
|
74
|
+
if (!shouldProcessKnowledgeFileInput(files)) return;
|
|
75
|
+
var _processKnowledgeFile = processKnowledgeFiles({
|
|
76
|
+
files: Array.from(files),
|
|
77
|
+
existingAttachments: localAttachments || [],
|
|
78
|
+
allowedExtensions: allowedFileTypesForKnowledge,
|
|
79
|
+
fileTypes: fileTypes,
|
|
80
|
+
maxTotalSize: MAX_TOTAL_SIZE
|
|
81
|
+
}),
|
|
82
|
+
insertedFiles = _processKnowledgeFile.insertedFiles,
|
|
83
|
+
exceededFiles = _processKnowledgeFile.exceededFiles,
|
|
84
|
+
invalidExtensionFiles = _processKnowledgeFile.invalidExtensionFiles,
|
|
85
|
+
hasErrors = _processKnowledgeFile.hasErrors;
|
|
152
86
|
if (hasErrors) {
|
|
153
|
-
setModalProps({
|
|
154
|
-
isOpen: true,
|
|
155
|
-
excludedFiles: excludedFiles,
|
|
87
|
+
setModalProps(resolveKnowledgeFileErrorModalState({
|
|
156
88
|
exceededFiles: exceededFiles,
|
|
157
89
|
invalidExtensionFiles: invalidExtensionFiles
|
|
158
|
-
});
|
|
90
|
+
}));
|
|
159
91
|
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(true);
|
|
160
92
|
} else {
|
|
161
93
|
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
|
|
162
94
|
}
|
|
163
|
-
|
|
164
|
-
// Solo agregar archivos válidos que no excedan el límite
|
|
165
95
|
if (insertedFiles.length) {
|
|
166
96
|
handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
|
|
167
97
|
key: 'knowledge',
|
|
168
98
|
value: insertedFiles
|
|
169
99
|
});
|
|
170
100
|
setLocalAttachments(function (prev) {
|
|
171
|
-
return
|
|
101
|
+
return appendKnowledgeAttachments(prev || [], insertedFiles);
|
|
172
102
|
});
|
|
173
103
|
}
|
|
174
104
|
};
|
|
175
105
|
var handleDragEnter = function handleDragEnter(e) {
|
|
176
106
|
e.preventDefault();
|
|
177
107
|
e.stopPropagation();
|
|
178
|
-
if (
|
|
108
|
+
if (shouldEnableKnowledgeDragState(isAtSizeLimit)) {
|
|
179
109
|
setIsDragging(true);
|
|
180
110
|
}
|
|
181
111
|
};
|
|
@@ -192,11 +122,11 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
192
122
|
e.preventDefault();
|
|
193
123
|
e.stopPropagation();
|
|
194
124
|
setIsDragging(false);
|
|
195
|
-
if (isAtSizeLimit) {
|
|
125
|
+
if (shouldBlockKnowledgeUpload(isAtSizeLimit)) {
|
|
196
126
|
return;
|
|
197
127
|
}
|
|
198
128
|
var files = e.dataTransfer.files;
|
|
199
|
-
if (!files
|
|
129
|
+
if (!shouldProcessKnowledgeFileInput(files)) {
|
|
200
130
|
return;
|
|
201
131
|
}
|
|
202
132
|
|
|
@@ -209,11 +139,10 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
209
139
|
handleFileSelect(syntheticEvent);
|
|
210
140
|
};
|
|
211
141
|
var handleDeleteAttachment = function handleDeleteAttachment(id) {
|
|
212
|
-
var fileToDelete = localAttachments[id
|
|
142
|
+
var fileToDelete = resolveKnowledgeAttachmentAtIndex(localAttachments || [], id);
|
|
213
143
|
if (!fileToDelete) return;
|
|
214
|
-
var newAttachments = (localAttachments || []
|
|
215
|
-
|
|
216
|
-
});
|
|
144
|
+
var newAttachments = removeKnowledgeAttachmentByIndex(localAttachments || [], id);
|
|
145
|
+
if (!newAttachments) return;
|
|
217
146
|
setLocalAttachments(newAttachments);
|
|
218
147
|
handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
|
|
219
148
|
key: 'knowledge',
|
|
@@ -223,7 +152,7 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
223
152
|
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
|
|
224
153
|
};
|
|
225
154
|
var handleDownloadAttachment = function handleDownloadAttachment(id) {
|
|
226
|
-
var file = (localAttachments || [])
|
|
155
|
+
var file = resolveKnowledgeAttachmentAtIndex(localAttachments || [], id);
|
|
227
156
|
if (!file) return;
|
|
228
157
|
handleDownloadKnowledge({
|
|
229
158
|
agentId: values.general.id.toString(),
|
|
@@ -231,7 +160,7 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
231
160
|
});
|
|
232
161
|
};
|
|
233
162
|
useEffect(function () {
|
|
234
|
-
if (isDownloadingSuccess
|
|
163
|
+
if (shouldRunKnowledgeDownloadEffect(isDownloadingSuccess, isDownloadingError, isDownloading)) {
|
|
235
164
|
var url = URL.createObjectURL(isDownloadingSuccess.blob);
|
|
236
165
|
var link = document.createElement('a');
|
|
237
166
|
link.href = url;
|
|
@@ -249,7 +178,7 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
249
178
|
var handleAction = function handleAction(_ref2) {
|
|
250
179
|
var id = _ref2.id,
|
|
251
180
|
action = _ref2.action;
|
|
252
|
-
if (isDownloading) return;
|
|
181
|
+
if (!shouldHandleKnowledgeAttachmentAction(isDownloading)) return;
|
|
253
182
|
if (action === 'delete') {
|
|
254
183
|
handleDeleteAttachment(id);
|
|
255
184
|
return;
|
|
@@ -259,12 +188,7 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
259
188
|
}
|
|
260
189
|
};
|
|
261
190
|
var handleAttachmentClick = function handleAttachmentClick(attachment) {
|
|
262
|
-
|
|
263
|
-
// Solo si no tiene errores (status !== 'failed')
|
|
264
|
-
if (attachment.status === 'failed') {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
if (attachment.file instanceof File || attachment.originalFile instanceof File || attachment.url_thumbnail || attachment.url_original || attachment.url_file) {
|
|
191
|
+
if (canPreviewKnowledgeAttachment(attachment)) {
|
|
268
192
|
setPreviewAttachment(attachment);
|
|
269
193
|
}
|
|
270
194
|
};
|
|
@@ -352,12 +276,7 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
352
276
|
})]
|
|
353
277
|
}), modalProps.isOpen && /*#__PURE__*/_jsx(ModalFileExceeds, {
|
|
354
278
|
onClose: function onClose() {
|
|
355
|
-
setModalProps(
|
|
356
|
-
isOpen: false,
|
|
357
|
-
excludedFiles: [],
|
|
358
|
-
exceededFiles: [],
|
|
359
|
-
invalidExtensionFiles: []
|
|
360
|
-
});
|
|
279
|
+
setModalProps(createClosedKnowledgeFileErrorModalState());
|
|
361
280
|
onFileErrorChange === null || onFileErrorChange === void 0 || onFileErrorChange(false);
|
|
362
281
|
},
|
|
363
282
|
excludedFiles: modalProps.excludedFiles,
|
|
@@ -371,4 +290,4 @@ export var AbmKnowledgeSection = function AbmKnowledgeSection(_ref) {
|
|
|
371
290
|
})]
|
|
372
291
|
});
|
|
373
292
|
};
|
|
374
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sdGlwIiwiRmlsZVVwbG9hZCIsIk9wZW4iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVRyYW5zbGF0aW9uIiwiQXR0YWNobWVudENhcmQiLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiU0NBS1NXcmFwcGVyIiwiU0NBS1NXcmFwcGVySGVhZGVyIiwiU0NBS1NXcmFwcGVyQ29udGVudCIsIlNDQUtTV3JhcHBlckhlYWRlclRpdGxlIiwiU0NBS1NXcmFwcGVySGVhZGVySW5mbyIsIlNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50IiwiU0NBS1NBdHRhY2htZW50c1dyYXBwZXIiLCJTQ0FLU01vcmVJbmZvU3BhbiIsIlNDQUtTTW9yZUluZm9JY29uV3JhcHBlciIsIlNDQUtTRHJvcFpvbmUiLCJTQ0FLU0Ryb3Bab25lSWNvbiIsIlNDQUtTRHJvcFpvbmVUZXh0IiwiU0NBS1NEcm9wWm9uZUluZm8iLCJTQ0FLU0Ryb3Bab25lVGV4dFNwYW4iLCJ1c2VEb3dubG9hZEtub3dsZWRnZSIsInVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIiwiTW9kYWxGaWxlRXhjZWVkcyIsImFsbG93ZWRGaWxlVHlwZXNGb3JLbm93bGVkZ2UiLCJmaWxlVHlwZXMiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJnZXRVbmlxdWVTdHJpbmciLCJwcmV2U3RyaW5ncyIsInN0cmluZ1RvQ2hhbmdlIiwiX3N0cmluZ1RvQ2hhbmdlJHNwbGl0Iiwic3BsaXQiLCJfc3RyaW5nVG9DaGFuZ2Ukc3BsaXQyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWxlbmFtZSIsIl9zdHJpbmdUb0NoYW5nZSRzcGxpdDMiLCJleHRlbnNpb24iLCJleHQiLCJjb25jYXQiLCJpbmNsdWRlcyIsImNvdW50ZXIiLCJuZXdGaWxlbmFtZSIsIk1BWF9UT1RBTF9TSVpFIiwiQWJtS25vd2xlZGdlU2VjdGlvbiIsIl9yZWYiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsInZhbHVlcyIsIm9uRmlsZUVycm9yQ2hhbmdlIiwidG9vbHRpcFpJbmRleCIsIl91c2VTdGF0ZSIsImtub3dsZWRnZSIsIl91c2VTdGF0ZTIiLCJsb2NhbEF0dGFjaG1lbnRzIiwic2V0TG9jYWxBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicHJldmlld0F0dGFjaG1lbnQiLCJzZXRQcmV2aWV3QXR0YWNobWVudCIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGU1IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJfdXNlU3RhdGU2IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJfdXNlRG93bmxvYWRLbm93bGVkZ2UiLCJoYW5kbGVEb3dubG9hZEtub3dsZWRnZSIsImlzRG93bmxvYWRpbmdTdWNjZXNzIiwic3VjY2VzcyIsImlzRG93bmxvYWRpbmdFcnJvciIsImVycm9yIiwiaXNEb3dubG9hZGluZyIsImlzTG9hZGluZyIsImhhbmRsZVJlc2V0U3RhdGVzIiwiX3VzZU9uYm9hcmRpbmdOYXZpZ2F0IiwiaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24iLCJmaWxlSW5wdXRSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiY3VycmVudFRvdGFsU2l6ZSIsInJlZHVjZSIsInRvdGFsIiwiYXR0YWNobWVudCIsInNpemUiLCJOdW1iZXIiLCJpc05hTiIsImlzQXRTaXplTGltaXQiLCJoYW5kbGVBdHRhY2hDbGljayIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnQiLCJjbGljayIsImhhbmRsZUZpbGVTZWxlY3QiLCJlIiwiZmlsZXMiLCJ0YXJnZXQiLCJpbnNlcnRlZEZpbGVzIiwiYXR0YWNobWVudHNOYW1lcyIsIm1hcCIsIm5hbWUiLCJleGlzdGluZ1RvdGFsU2l6ZSIsInJ1bm5pbmdUb3RhbFNpemUiLCJBcnJheSIsImZyb20iLCJmb3JFYWNoIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImZpbGVOYW1lUGFydHMiLCJmaWxlRXh0ZW5zaW9uIiwibGVuZ3RoIiwicG9wIiwidG9Mb3dlckNhc2UiLCJwdXNoIiwibmV3VG90YWxTaXplIiwidHlwZUZpbGUiLCJ0eXBlIiwidW5pcXVlTmFtZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwiYXR0YWNobWVudEZpbGUiLCJpZCIsIkRhdGUiLCJub3ciLCJNYXRoIiwicmFuZG9tIiwic3RhdHVzIiwiaGFzRXJyb3JzIiwia2V5IiwidmFsdWUiLCJwcmV2IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiaGFuZGxlRHJhZ0VudGVyIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVEcmFnTGVhdmUiLCJoYW5kbGVEcmFnT3ZlciIsImhhbmRsZURyb3AiLCJkYXRhVHJhbnNmZXIiLCJzeW50aGV0aWNFdmVudCIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJmaWxlVG9EZWxldGUiLCJuZXdBdHRhY2htZW50cyIsImZpbHRlciIsIl8iLCJpbmRleCIsImRlbGV0ZUtub3dsZWRnZSIsImhhbmRsZURvd25sb2FkQXR0YWNobWVudCIsImFnZW50SWQiLCJnZW5lcmFsIiwidG9TdHJpbmciLCJrbm93bGVkZ2VJZCIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImJsb2IiLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsImRvd25sb2FkIiwic3R5bGUiLCJkaXNwbGF5IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2V0VGltZW91dCIsInJlbW92ZUNoaWxkIiwicmV2b2tlT2JqZWN0VVJMIiwiaGFuZGxlQWN0aW9uIiwiX3JlZjIiLCJhY3Rpb24iLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJjaGlsZHJlbiIsIiRpbmRleCIsIm9uQ2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwidGl0bGUiLCJ6SW5kZXgiLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0xlYXZlIiwib25EcmFnT3ZlciIsIm9uRHJvcCIsInBvc2l0aW9uSW5kZXgiLCJhYm1Lbm93bGVkZ2VTZWN0aW9uIiwiZnVsbFdpZHRoIiwicmVmIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJvbkNoYW5nZSIsIm9uQ2xvc2UiLCJzZWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtS25vd2xlZGdlU2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wbHVzcGx1cyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tY3ljbGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2FuY2hvci1pcy12YWxpZCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9GaWxlVXBsb2FkJ1xuaW1wb3J0IHsgT3BlbiB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL09wZW4nXG5pbXBvcnQgeyBDaGFuZ2VFdmVudCwgRHJhZ0V2ZW50LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEF0dGFjaG1lbnRDYXJkIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudENhcmQvQXR0YWNobWVudENhcmQnXG5pbXBvcnQgeyBBdHRhY2htZW50UHJldmlld01vZGFsIH0gZnJvbSAnLi4vLi4vYXRvbXMvQXR0YWNobWVudFByZXZpZXdNb2RhbCdcbmltcG9ydCB7IE1vZGFsVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvYWdlbnRNb2RhbCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHtcbiAgU0NBS1NXcmFwcGVyLFxuICBTQ0FLU1dyYXBwZXJIZWFkZXIsXG4gIFNDQUtTV3JhcHBlckNvbnRlbnQsXG4gIFNDQUtTV3JhcHBlckhlYWRlclRpdGxlLFxuICBTQ0FLU1dyYXBwZXJIZWFkZXJJbmZvLFxuICBTQ0FLU0ZpbGVVcGxvYWRXcmFwcGVyQ29udGVudCxcbiAgU0NBS1NBdHRhY2htZW50c1dyYXBwZXIsXG4gIFNDQUtTTW9yZUluZm9TcGFuLFxuICBTQ0FLU01vcmVJbmZvSWNvbldyYXBwZXIsXG4gIFNDQUtTRHJvcFpvbmUsXG4gIFNDQUtTRHJvcFpvbmVJY29uLFxuICBTQ0FLU0Ryb3Bab25lVGV4dCxcbiAgU0NBS1NEcm9wWm9uZUluZm8sXG4gIFNDQUtTRHJvcFpvbmVUZXh0U3Bhbixcbn0gZnJvbSAnLi9BYm1Lbm93bGVkZ2VTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB7IHVzZURvd25sb2FkS25vd2xlZGdlIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlS25vd2xlZGdlL2Rvd25sb2FkS25vd2xlZGdlJ1xuaW1wb3J0IHsgdXNlT25ib2FyZGluZ05hdmlnYXRpb24gfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VPbmJvYXJkaW5nTmF2aWdhdGlvbidcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcy9Nb2RhbEZpbGVFeGNlZWRzJ1xuaW1wb3J0IHsgYWxsb3dlZEZpbGVUeXBlc0Zvcktub3dsZWRnZSwgZmlsZVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5cbmZ1bmN0aW9uIGdldFVuaXF1ZVN0cmluZyhwcmV2U3RyaW5nczogc3RyaW5nW10sIHN0cmluZ1RvQ2hhbmdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBbZmlsZW5hbWUsIGV4dGVuc2lvbiA9ICcnXSA9IHN0cmluZ1RvQ2hhbmdlLnNwbGl0KCcuJylcbiAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uID8gYC4ke2V4dGVuc2lvbn1gIDogJydcblxuICBpZiAoIXByZXZTdHJpbmdzPy5pbmNsdWRlcyhzdHJpbmdUb0NoYW5nZSkpIHtcbiAgICByZXR1cm4gc3RyaW5nVG9DaGFuZ2VcbiAgfVxuXG4gIGxldCBjb3VudGVyID0gMVxuICBsZXQgbmV3RmlsZW5hbWVcbiAgZG8ge1xuICAgIG5ld0ZpbGVuYW1lID0gYCR7ZmlsZW5hbWV9KCR7Y291bnRlcn0pJHtleHR9YFxuICAgIGNvdW50ZXIrK1xuICB9IHdoaWxlIChwcmV2U3RyaW5ncz8uaW5jbHVkZXMobmV3RmlsZW5hbWUpKVxuXG4gIHJldHVybiBuZXdGaWxlbmFtZVxufVxuXG5jb25zdCBNQVhfVE9UQUxfU0laRSA9IDUgKiAxMDI0ICogMTAyNCAvLyA1TUIgdG90YWxcblxuZXhwb3J0IGNvbnN0IEFibUtub3dsZWRnZVNlY3Rpb24gPSAoe1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlcyxcbiAgdmFsdWVzLFxuICBvbkZpbGVFcnJvckNoYW5nZSxcbiAgdG9vbHRpcFpJbmRleCxcbn06IHtcbiAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM6ICh7XG4gICAga2V5LFxuICAgIHZhbHVlLFxuICAgIGRlbGV0ZUtub3dsZWRnZSxcbiAgfToge1xuICAgIGtleTogc3RyaW5nXG4gICAgdmFsdWU6IHVua25vd25cbiAgICBkZWxldGVLbm93bGVkZ2U/OiBib29sZWFuXG4gIH0pID0+IHZvaWRcbiAgdmFsdWVzOiBNb2RhbFZhbHVlc1xuICBvbkZpbGVFcnJvckNoYW5nZT86IChoYXNFcnJvcnM6IGJvb2xlYW4pID0+IHZvaWRcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxufSkgPT4ge1xuICBjb25zdCBbbG9jYWxBdHRhY2htZW50cywgc2V0TG9jYWxBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50RmlsZVtdPih2YWx1ZXMua25vd2xlZGdlIHx8IFtdKVxuICBjb25zdCBbcHJldmlld0F0dGFjaG1lbnQsIHNldFByZXZpZXdBdHRhY2htZW50XSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlIHwgbnVsbD4obnVsbClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbignYWJtX2FnZW50X3NlY3Rpb24nKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICB9KVxuICBjb25zdCB7XG4gICAgaGFuZGxlRG93bmxvYWRLbm93bGVkZ2UsXG4gICAgc3VjY2VzczogaXNEb3dubG9hZGluZ1N1Y2Nlc3MsXG4gICAgZXJyb3I6IGlzRG93bmxvYWRpbmdFcnJvcixcbiAgICBpc0xvYWRpbmc6IGlzRG93bmxvYWRpbmcsXG4gICAgaGFuZGxlUmVzZXRTdGF0ZXMsXG4gIH0gPSB1c2VEb3dubG9hZEtub3dsZWRnZSgpXG4gIGNvbnN0IHsgaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24gfSA9IHVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKClcbiAgY29uc3QgZmlsZUlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtpc0RyYWdnaW5nLCBzZXRJc0RyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIC8vIENhbGN1bGFyIGVsIHRhbWHDsW8gdG90YWwgYWN0dWFsIGRlIGFyY2hpdm9zXG4gIGNvbnN0IGN1cnJlbnRUb3RhbFNpemUgPSAobG9jYWxBdHRhY2htZW50cyB8fCBbXSkucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgIGNvbnN0IHNpemUgPSB0eXBlb2YgYXR0YWNobWVudC5zaXplID09PSAnbnVtYmVyJyA/IGF0dGFjaG1lbnQuc2l6ZSA6IE51bWJlcihhdHRhY2htZW50LnNpemUpXG4gICAgcmV0dXJuIHRvdGFsICsgKE51bWJlci5pc05hTihzaXplKSA/IDAgOiBzaXplKVxuICB9LCAwKVxuICBjb25zdCBpc0F0U2l6ZUxpbWl0ID0gY3VycmVudFRvdGFsU2l6ZSA+PSBNQVhfVE9UQUxfU0laRVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaENsaWNrID0gKCkgPT4ge1xuICAgIGlmIChpc0F0U2l6ZUxpbWl0KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCB7IGZpbGVzIH0gPSBlLnRhcmdldFxuICAgIGlmICghZmlsZXMpIHJldHVyblxuXG4gICAgY29uc3QgZXhjZWVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBpbnZhbGlkRXh0ZW5zaW9uRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBpbnNlcnRlZEZpbGVzOiBBdHRhY2htZW50RmlsZVtdID0gW11cbiAgICBjb25zdCBhdHRhY2htZW50c05hbWVzID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pLm1hcChhdHRhY2htZW50ID0+IGF0dGFjaG1lbnQubmFtZSlcblxuICAgIC8vIENhbGN1bGFyIGVsIHRhbWHDsW8gdG90YWwgYWN0dWFsIGRlIGFyY2hpdm9zIHlhIGFkanVudG9zXG4gICAgY29uc3QgZXhpc3RpbmdUb3RhbFNpemUgPSAobG9jYWxBdHRhY2htZW50cyB8fCBbXSkucmVkdWNlKCh0b3RhbCwgYXR0YWNobWVudCkgPT4ge1xuICAgICAgY29uc3Qgc2l6ZSA9IHR5cGVvZiBhdHRhY2htZW50LnNpemUgPT09ICdudW1iZXInID8gYXR0YWNobWVudC5zaXplIDogTnVtYmVyKGF0dGFjaG1lbnQuc2l6ZSlcbiAgICAgIHJldHVybiB0b3RhbCArIChOdW1iZXIuaXNOYU4oc2l6ZSkgPyAwIDogc2l6ZSlcbiAgICB9LCAwKVxuICAgIGxldCBydW5uaW5nVG90YWxTaXplID0gZXhpc3RpbmdUb3RhbFNpemVcbiAgICBBcnJheS5mcm9tKGZpbGVzKS5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlc0Zvcktub3dsZWRnZS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICBpbnZhbGlkRXh0ZW5zaW9uRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBWZXJpZmljYXIgc2kgYWdyZWdhciBlc3RlIGFyY2hpdm8gZXhjZWRlcsOtYSBlbCBsw61taXRlIHRvdGFsIGRlIDVNQlxuICAgICAgY29uc3QgbmV3VG90YWxTaXplID0gcnVubmluZ1RvdGFsU2l6ZSArIGZpbGUuc2l6ZVxuICAgICAgaWYgKG5ld1RvdGFsU2l6ZSA+IE1BWF9UT1RBTF9TSVpFKSB7XG4gICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgIGNvbnN0IHVuaXF1ZU5hbWUgPSBnZXRVbmlxdWVTdHJpbmcoYXR0YWNobWVudHNOYW1lcywgZmlsZS5uYW1lKVxuICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgdW5pcXVlTmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuXG4gICAgICBjb25zdCBhdHRhY2htZW50RmlsZTogQXR0YWNobWVudEZpbGUgPSB7XG4gICAgICAgIGZpbGU6IHBhcnNlZEZpbGUsXG4gICAgICAgIGlkOiBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YCxcbiAgICAgICAgbmFtZTogdW5pcXVlTmFtZSxcbiAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICB0eXBlOiB0eXBlRmlsZSxcbiAgICAgICAgc3RhdHVzOiAnc3RhcnRlZCcsXG4gICAgICB9XG5cbiAgICAgIC8vIFNvbG8gYWdyZWdhciBlbCBhcmNoaXZvIHNpIG5vIGVzdMOhIGVuIGxhIGxpc3RhIGRlIGFyY2hpdm9zIGV4Y2VkaWRvc1xuICAgICAgaWYgKCFleGNlZWRlZEZpbGVzLmluY2x1ZGVzKGZpbGUubmFtZSkpIHtcbiAgICAgICAgaW5zZXJ0ZWRGaWxlcy5wdXNoKGF0dGFjaG1lbnRGaWxlKVxuICAgICAgICAvLyBBY3R1YWxpemFyIGVsIHRhbWHDsW8gdG90YWwgcGFyYSBsYSBzaWd1aWVudGUgdmFsaWRhY2nDs25cbiAgICAgICAgcnVubmluZ1RvdGFsU2l6ZSArPSBmaWxlLnNpemVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gTW9zdHJhciBtb2RhbCBzaSBoYXkgYXJjaGl2b3MgY29uIGV4dGVuc2nDs24gaW52w6FsaWRhIG8gcXVlIGV4Y2VkZW4gZWwgbMOtbWl0ZVxuICAgIGNvbnN0IGhhc0Vycm9ycyA9IGludmFsaWRFeHRlbnNpb25GaWxlcy5sZW5ndGggPiAwIHx8IGV4Y2VlZGVkRmlsZXMubGVuZ3RoID4gMFxuICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGludmFsaWRFeHRlbnNpb25GaWxlcyB9KVxuICAgICAgb25GaWxlRXJyb3JDaGFuZ2U/Lih0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICAgIH1cblxuICAgIC8vIFNvbG8gYWdyZWdhciBhcmNoaXZvcyB2w6FsaWRvcyBxdWUgbm8gZXhjZWRhbiBlbCBsw61taXRlXG4gICAgaWYgKGluc2VydGVkRmlsZXMubGVuZ3RoKSB7XG4gICAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcz8uKHsga2V5OiAna25vd2xlZGdlJywgdmFsdWU6IGluc2VydGVkRmlsZXMgfSlcbiAgICAgIHNldExvY2FsQXR0YWNobWVudHMocHJldiA9PiBbLi4uKHByZXYgfHwgW10pLCAuLi5pbnNlcnRlZEZpbGVzXSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnRW50ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoIWlzQXRTaXplTGltaXQpIHtcbiAgICAgIHNldElzRHJhZ2dpbmcodHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnTGVhdmUgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ092ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURyb3AgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBzZXRJc0RyYWdnaW5nKGZhbHNlKVxuXG4gICAgaWYgKGlzQXRTaXplTGltaXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGUuZGF0YVRyYW5zZmVyXG4gICAgaWYgKCFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIENyZWFyIHVuIGV2ZW50byBzaW50w6l0aWNvIHBhcmEgcmV1dGlsaXphciBsYSBsw7NnaWNhIGRlIGhhbmRsZUZpbGVTZWxlY3RcbiAgICBjb25zdCBzeW50aGV0aWNFdmVudCA9IHtcbiAgICAgIHRhcmdldDogeyBmaWxlcyB9LFxuICAgIH0gYXMgQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD5cblxuICAgIGhhbmRsZUZpbGVTZWxlY3Qoc3ludGhldGljRXZlbnQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBmaWxlVG9EZWxldGUgPSBsb2NhbEF0dGFjaG1lbnRzW2lkXVxuICAgIGlmICghZmlsZVRvRGVsZXRlKSByZXR1cm5cblxuICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRzID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pLmZpbHRlcigoXywgaW5kZXgpID0+IGluZGV4ICE9PSBpZClcbiAgICBzZXRMb2NhbEF0dGFjaG1lbnRzKG5ld0F0dGFjaG1lbnRzKVxuXG4gICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/Lih7IGtleTogJ2tub3dsZWRnZScsIHZhbHVlOiBuZXdBdHRhY2htZW50cywgZGVsZXRlS25vd2xlZGdlOiB0cnVlIH0pXG5cbiAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRG93bmxvYWRBdHRhY2htZW50ID0gKGlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBmaWxlID0gKGxvY2FsQXR0YWNobWVudHMgfHwgW10pW2lkXVxuICAgIGlmICghZmlsZSkgcmV0dXJuXG5cbiAgICBoYW5kbGVEb3dubG9hZEtub3dsZWRnZSh7IGFnZW50SWQ6IHZhbHVlcy5nZW5lcmFsLmlkIS50b1N0cmluZygpLCBrbm93bGVkZ2VJZDogZmlsZS5pZCB9KVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNEb3dubG9hZGluZ1N1Y2Nlc3MgJiYgIWlzRG93bmxvYWRpbmdFcnJvciAmJiAhaXNEb3dubG9hZGluZykge1xuICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpc0Rvd25sb2FkaW5nU3VjY2Vzcy5ibG9iKVxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5ocmVmID0gdXJsXG4gICAgICBsaW5rLmRvd25sb2FkID0gaXNEb3dubG9hZGluZ1N1Y2Nlc3MuZmlsZW5hbWVcbiAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXG4gICAgICBsaW5rLmNsaWNrKClcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaylcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpXG4gICAgICAgIGhhbmRsZVJlc2V0U3RhdGVzKClcbiAgICAgIH0sIDEwMClcbiAgICB9XG4gIH0sIFtpc0Rvd25sb2FkaW5nU3VjY2VzcywgaXNEb3dubG9hZGluZ0Vycm9yLCBpc0Rvd25sb2FkaW5nLCBoYW5kbGVSZXNldFN0YXRlc10pXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uID0gKHsgaWQsIGFjdGlvbiB9OiB7IGlkOiBudW1iZXI7IGFjdGlvbjogJ2RlbGV0ZScgfCAnZG93bmxvYWQnIH0pID0+IHtcbiAgICBpZiAoaXNEb3dubG9hZGluZykgcmV0dXJuXG4gICAgaWYgKGFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcbiAgICAgIGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoaWQpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgaGFuZGxlRG93bmxvYWRBdHRhY2htZW50KGlkKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRDbGljayA9IChhdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSkgPT4ge1xuICAgIC8vIFBlcm1pdGlyIHByZXZpc3VhbGl6YWNpw7NuIHNpIHRpZW5lIGFyY2hpdm8gbG9jYWwgbyBVUkxzIGRlbCBiYWNrZW5kXG4gICAgLy8gU29sbyBzaSBubyB0aWVuZSBlcnJvcmVzIChzdGF0dXMgIT09ICdmYWlsZWQnKVxuICAgIGlmIChhdHRhY2htZW50LnN0YXR1cyA9PT0gJ2ZhaWxlZCcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGF0dGFjaG1lbnQuZmlsZSBpbnN0YW5jZW9mIEZpbGUgfHxcbiAgICAgIGF0dGFjaG1lbnQub3JpZ2luYWxGaWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC51cmxfdGh1bWJuYWlsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9vcmlnaW5hbCB8fFxuICAgICAgYXR0YWNobWVudC51cmxfZmlsZVxuICAgICkge1xuICAgICAgc2V0UHJldmlld0F0dGFjaG1lbnQoYXR0YWNobWVudClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDbG9zZVByZXZpZXcgPSAoKSA9PiB7XG4gICAgc2V0UHJldmlld0F0dGFjaG1lbnQobnVsbClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTQ0FLU1dyYXBwZXI+XG4gICAgICAgIDxTQ0FLU1dyYXBwZXJIZWFkZXIgJGluZGV4PXswfT5cbiAgICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVyVGl0bGU+e3QoJ2tub3dsZWRnZVNlY3Rpb24ua25vd2xlZGdlVGFiJyl9PC9TQ0FLU1dyYXBwZXJIZWFkZXJUaXRsZT5cbiAgICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVySW5mbz5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIHt0KCdrbm93bGVkZ2VTZWN0aW9uLmluZm9MYWJlbCcpfVxuICAgICAgICAgICAgICA8U0NBS1NNb3JlSW5mb1NwYW4gb25DbGljaz17KCkgPT4gaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24oJ21vcmVJbmZvJyl9PlxuICAgICAgICAgICAgICAgIHt0KCdrbm93bGVkZ2VTZWN0aW9uLm1vcmVJbmZvJyl9XG4gICAgICAgICAgICAgICAgPFNDQUtTTW9yZUluZm9JY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgIDxPcGVuIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gY29sb3I9XCIjMDA2RkFGXCIgLz5cbiAgICAgICAgICAgICAgICA8L1NDQUtTTW9yZUluZm9JY29uV3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9TQ0FLU01vcmVJbmZvU3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvU0NBS1NXcmFwcGVySGVhZGVySW5mbz5cbiAgICAgICAgPC9TQ0FLU1dyYXBwZXJIZWFkZXI+XG4gICAgICAgIDxTQ0FLU1dyYXBwZXJDb250ZW50ICRpbmRleD17MX0+XG4gICAgICAgICAgPFNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50PlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2lzQXRTaXplTGltaXQgPyB0KCdrbm93bGVkZ2VTZWN0aW9uLmVycm9yLm1heFNpemVUaXRsZScpIDogJyd9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lXG4gICAgICAgICAgICAgICAgaXNBdFNpemVMaW1pdD17aXNBdFNpemVMaW1pdH1cbiAgICAgICAgICAgICAgICBpc0RyYWdnaW5nPXtpc0RyYWdnaW5nfVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VudGVyPXtoYW5kbGVEcmFnRW50ZXJ9XG4gICAgICAgICAgICAgICAgb25EcmFnTGVhdmU9e2hhbmRsZURyYWdMZWF2ZX1cbiAgICAgICAgICAgICAgICBvbkRyYWdPdmVyPXtoYW5kbGVEcmFnT3Zlcn1cbiAgICAgICAgICAgICAgICBvbkRyb3A9e2hhbmRsZURyb3B9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8U0NBS1NEcm9wWm9uZUljb24+XG4gICAgICAgICAgICAgICAgICA8RmlsZVVwbG9hZCB3aWR0aD17MzB9IGhlaWdodD17MzB9IGNvbG9yPXtpc0F0U2l6ZUxpbWl0ID8gJyM5OTknIDogJyMwMDZGQUYnfSAvPlxuICAgICAgICAgICAgICAgIDwvU0NBS1NEcm9wWm9uZUljb24+XG4gICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVUZXh0PlxuICAgICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVUZXh0U3BhbiBpc0F0U2l6ZUxpbWl0PXtpc0F0U2l6ZUxpbWl0fSBkYXRhLWRyb3B6b25lLWxpbmsgb25DbGljaz17aGFuZGxlQXR0YWNoQ2xpY2t9PlxuICAgICAgICAgICAgICAgICAgICB7dCgna25vd2xlZGdlU2VjdGlvbi5kcm9wWm9uZVRleHQuMScpfVxuICAgICAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lVGV4dFNwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57dCgna25vd2xlZGdlU2VjdGlvbi5kcm9wWm9uZVRleHQuMicpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L1NDQUtTRHJvcFpvbmVUZXh0PlxuICAgICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lSW5mbz57dCgna25vd2xlZGdlU2VjdGlvbi5pbmZvRmlsZVR5cGVzJyl9PC9TQ0FLU0Ryb3Bab25lSW5mbz5cbiAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgIDwvU0NBS1NGaWxlVXBsb2FkV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgICAgPFNDQUtTQXR0YWNobWVudHNXcmFwcGVyPlxuICAgICAgICAgICAgeyhsb2NhbEF0dGFjaG1lbnRzIHx8IFtdKS5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRDYXJkXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbkluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGtleT17YGF0dGFjaG1lbnQtJHthdHRhY2htZW50Py5uYW1lfS0ke2F0dGFjaG1lbnQ/LmlkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICBhdHRhY2htZW50PXthdHRhY2htZW50fVxuICAgICAgICAgICAgICAgICAgaGFuZGxlQWN0aW9uPXtoYW5kbGVBY3Rpb259XG4gICAgICAgICAgICAgICAgICBhYm1Lbm93bGVkZ2VTZWN0aW9uXG4gICAgICAgICAgICAgICAgICBmdWxsV2lkdGhcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRDbGljayhhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDQUtTQXR0YWNobWVudHNXcmFwcGVyPlxuICAgICAgICA8L1NDQUtTV3JhcHBlckNvbnRlbnQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucHB0LC5wcHR4LC5wZGYsLnBuZywuanBnLC5qcGVnLC54bHN4LC54bHNcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TQ0FLU1dyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcbiAgICAgICAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGludmFsaWRFeHRlbnNpb25GaWxlczogW10gfSlcbiAgICAgICAgICAgIG9uRmlsZUVycm9yQ2hhbmdlPy4oZmFsc2UpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGludmFsaWRFeHRlbnNpb25GaWxlcz17bW9kYWxQcm9wcy5pbnZhbGlkRXh0ZW5zaW9uRmlsZXN9XG4gICAgICAgICAgc2VjdGlvbj1cImFibV9hZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPEF0dGFjaG1lbnRQcmV2aWV3TW9kYWxcbiAgICAgICAgaXNPcGVuPXshIXByZXZpZXdBdHRhY2htZW50fVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVByZXZpZXd9XG4gICAgICAgIGF0dGFjaG1lbnQ9e3ByZXZpZXdBdHRhY2htZW50fVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQWlDQyxTQUFTLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0UsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsY0FBYyxRQUFRLDJDQUEyQztBQUMxRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFHM0UsU0FDRUMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsdUJBQXVCLEVBQ3ZCQyxzQkFBc0IsRUFDdEJDLDZCQUE2QixFQUM3QkMsdUJBQXVCLEVBQ3ZCQyxpQkFBaUIsRUFDakJDLHdCQUF3QixFQUN4QkMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLGlCQUFpQixFQUNqQkMsaUJBQWlCLEVBQ2pCQyxxQkFBcUIsUUFDaEIsOEJBQThCO0FBQ3JDLFNBQVNDLG9CQUFvQixRQUFRLCtDQUErQztBQUNwRixTQUFTQyx1QkFBdUIsUUFBUSx3Q0FBd0M7QUFDaEYsU0FBU0MsZ0JBQWdCLFFBQVEsbURBQW1EO0FBQ3BGLFNBQVNDLDRCQUE0QixFQUFFQyxTQUFTLFFBQVEscUNBQXFDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQSxFQUFBQyxRQUFBLElBQUFDLFNBQUE7QUFFN0YsU0FBU0Ms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
|
|
293
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb29sdGlwIiwiRmlsZVVwbG9hZCIsIk9wZW4iLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVRyYW5zbGF0aW9uIiwiQXR0YWNobWVudENhcmQiLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiU0NBS1NXcmFwcGVyIiwiU0NBS1NXcmFwcGVySGVhZGVyIiwiU0NBS1NXcmFwcGVyQ29udGVudCIsIlNDQUtTV3JhcHBlckhlYWRlclRpdGxlIiwiU0NBS1NXcmFwcGVySGVhZGVySW5mbyIsIlNDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50IiwiU0NBS1NBdHRhY2htZW50c1dyYXBwZXIiLCJTQ0FLU01vcmVJbmZvU3BhbiIsIlNDQUtTTW9yZUluZm9JY29uV3JhcHBlciIsIlNDQUtTRHJvcFpvbmUiLCJTQ0FLU0Ryb3Bab25lSWNvbiIsIlNDQUtTRHJvcFpvbmVUZXh0IiwiU0NBS1NEcm9wWm9uZUluZm8iLCJTQ0FLU0Ryb3Bab25lVGV4dFNwYW4iLCJ1c2VEb3dubG9hZEtub3dsZWRnZSIsInVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIiwiTW9kYWxGaWxlRXhjZWVkcyIsImFsbG93ZWRGaWxlVHlwZXNGb3JLbm93bGVkZ2UiLCJmaWxlVHlwZXMiLCJhcHBlbmRLbm93bGVkZ2VBdHRhY2htZW50cyIsImNhblByZXZpZXdLbm93bGVkZ2VBdHRhY2htZW50IiwiY29tcHV0ZUF0dGFjaG1lbnRzVG90YWxTaXplIiwiY3JlYXRlQ2xvc2VkS25vd2xlZGdlRmlsZUVycm9yTW9kYWxTdGF0ZSIsIk1BWF9LTk9XTEVER0VfVE9UQUxfU0laRSIsInByb2Nlc3NLbm93bGVkZ2VGaWxlcyIsInJlbW92ZUtub3dsZWRnZUF0dGFjaG1lbnRCeUluZGV4IiwicmVzb2x2ZUtub3dsZWRnZUF0dGFjaG1lbnRBdEluZGV4IiwicmVzb2x2ZUtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUiLCJzaG91bGRCbG9ja0tub3dsZWRnZVVwbG9hZCIsInNob3VsZEVuYWJsZUtub3dsZWRnZURyYWdTdGF0ZSIsInNob3VsZEhhbmRsZUtub3dsZWRnZUF0dGFjaG1lbnRBY3Rpb24iLCJzaG91bGRQcm9jZXNzS25vd2xlZGdlRmlsZUlucHV0Iiwic2hvdWxkUnVuS25vd2xlZGdlRG93bmxvYWRFZmZlY3QiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJNQVhfVE9UQUxfU0laRSIsIkFibUtub3dsZWRnZVNlY3Rpb24iLCJfcmVmIiwiaGFuZGxlU2V0QWdlbnRWYWx1ZXMiLCJ2YWx1ZXMiLCJvbkZpbGVFcnJvckNoYW5nZSIsInRvb2x0aXBaSW5kZXgiLCJfdXNlU3RhdGUiLCJrbm93bGVkZ2UiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJsb2NhbEF0dGFjaG1lbnRzIiwic2V0TG9jYWxBdHRhY2htZW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwicHJldmlld0F0dGFjaG1lbnQiLCJzZXRQcmV2aWV3QXR0YWNobWVudCIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGU1IiwiaXNPcGVuIiwiZXhjbHVkZWRGaWxlcyIsImV4Y2VlZGVkRmlsZXMiLCJpbnZhbGlkRXh0ZW5zaW9uRmlsZXMiLCJfdXNlU3RhdGU2IiwibW9kYWxQcm9wcyIsInNldE1vZGFsUHJvcHMiLCJfdXNlRG93bmxvYWRLbm93bGVkZ2UiLCJoYW5kbGVEb3dubG9hZEtub3dsZWRnZSIsImlzRG93bmxvYWRpbmdTdWNjZXNzIiwic3VjY2VzcyIsImlzRG93bmxvYWRpbmdFcnJvciIsImVycm9yIiwiaXNEb3dubG9hZGluZyIsImlzTG9hZGluZyIsImhhbmRsZVJlc2V0U3RhdGVzIiwiX3VzZU9uYm9hcmRpbmdOYXZpZ2F0IiwiaGFuZGxlT25ib2FyZGluZ05hdmlnYXRpb24iLCJmaWxlSW5wdXRSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRHJhZ2dpbmciLCJzZXRJc0RyYWdnaW5nIiwiY3VycmVudFRvdGFsU2l6ZSIsImlzQXRTaXplTGltaXQiLCJoYW5kbGVBdHRhY2hDbGljayIsIl9maWxlSW5wdXRSZWYkY3VycmVudCIsImN1cnJlbnQiLCJjbGljayIsImhhbmRsZUZpbGVTZWxlY3QiLCJlIiwiZmlsZXMiLCJ0YXJnZXQiLCJfcHJvY2Vzc0tub3dsZWRnZUZpbGUiLCJBcnJheSIsImZyb20iLCJleGlzdGluZ0F0dGFjaG1lbnRzIiwiYWxsb3dlZEV4dGVuc2lvbnMiLCJtYXhUb3RhbFNpemUiLCJpbnNlcnRlZEZpbGVzIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwia2V5IiwidmFsdWUiLCJwcmV2IiwiaGFuZGxlRHJhZ0VudGVyIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVEcmFnTGVhdmUiLCJoYW5kbGVEcmFnT3ZlciIsImhhbmRsZURyb3AiLCJkYXRhVHJhbnNmZXIiLCJzeW50aGV0aWNFdmVudCIsImhhbmRsZURlbGV0ZUF0dGFjaG1lbnQiLCJpZCIsImZpbGVUb0RlbGV0ZSIsIm5ld0F0dGFjaG1lbnRzIiwiZGVsZXRlS25vd2xlZGdlIiwiaGFuZGxlRG93bmxvYWRBdHRhY2htZW50IiwiZmlsZSIsImFnZW50SWQiLCJnZW5lcmFsIiwidG9TdHJpbmciLCJrbm93bGVkZ2VJZCIsInVybCIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImJsb2IiLCJsaW5rIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsImRvd25sb2FkIiwiZmlsZW5hbWUiLCJzdHlsZSIsImRpc3BsYXkiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJzZXRUaW1lb3V0IiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJoYW5kbGVBY3Rpb24iLCJfcmVmMiIsImFjdGlvbiIsImhhbmRsZUF0dGFjaG1lbnRDbGljayIsImF0dGFjaG1lbnQiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJjaGlsZHJlbiIsIiRpbmRleCIsIm9uQ2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIiwidGl0bGUiLCJ6SW5kZXgiLCJvbkRyYWdFbnRlciIsIm9uRHJhZ0xlYXZlIiwib25EcmFnT3ZlciIsIm9uRHJvcCIsIm1hcCIsImluZGV4IiwicG9zaXRpb25JbmRleCIsImFibUtub3dsZWRnZVNlY3Rpb24iLCJmdWxsV2lkdGgiLCJjb25jYXQiLCJuYW1lIiwicmVmIiwidHlwZSIsIm11bHRpcGxlIiwiYWNjZXB0Iiwib25DaGFuZ2UiLCJvbkNsb3NlIiwic2VjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUtub3dsZWRnZVNlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tcGx1c3BsdXMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWN5Y2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9hbmNob3ItaXMtdmFsaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvRmlsZVVwbG9hZCdcbmltcG9ydCB7IE9wZW4gfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9PcGVuJ1xuaW1wb3J0IHsgQ2hhbmdlRXZlbnQsIERyYWdFdmVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRDYXJkL0F0dGFjaG1lbnRDYXJkJ1xuaW1wb3J0IHsgQXR0YWNobWVudFByZXZpZXdNb2RhbCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRQcmV2aWV3TW9kYWwnXG5pbXBvcnQgeyBNb2RhbFZhbHVlcyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50TW9kYWwnXG5pbXBvcnQgeyBBdHRhY2htZW50RmlsZSB9IGZyb20gJy4uL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7XG4gIFNDQUtTV3JhcHBlcixcbiAgU0NBS1NXcmFwcGVySGVhZGVyLFxuICBTQ0FLU1dyYXBwZXJDb250ZW50LFxuICBTQ0FLU1dyYXBwZXJIZWFkZXJUaXRsZSxcbiAgU0NBS1NXcmFwcGVySGVhZGVySW5mbyxcbiAgU0NBS1NGaWxlVXBsb2FkV3JhcHBlckNvbnRlbnQsXG4gIFNDQUtTQXR0YWNobWVudHNXcmFwcGVyLFxuICBTQ0FLU01vcmVJbmZvU3BhbixcbiAgU0NBS1NNb3JlSW5mb0ljb25XcmFwcGVyLFxuICBTQ0FLU0Ryb3Bab25lLFxuICBTQ0FLU0Ryb3Bab25lSWNvbixcbiAgU0NBS1NEcm9wWm9uZVRleHQsXG4gIFNDQUtTRHJvcFpvbmVJbmZvLFxuICBTQ0FLU0Ryb3Bab25lVGV4dFNwYW4sXG59IGZyb20gJy4vQWJtS25vd2xlZGdlU2VjdGlvbi5zdHlsZXMnXG5pbXBvcnQgeyB1c2VEb3dubG9hZEtub3dsZWRnZSB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUtub3dsZWRnZS9kb3dubG9hZEtub3dsZWRnZSdcbmltcG9ydCB7IHVzZU9uYm9hcmRpbmdOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlT25ib2FyZGluZ05hdmlnYXRpb24nXG5pbXBvcnQgeyBNb2RhbEZpbGVFeGNlZWRzIH0gZnJvbSAnLi4vLi4vb3JnYW5pc21zL01vZGFsRmlsZUV4Y2VlZHMvTW9kYWxGaWxlRXhjZWVkcydcbmltcG9ydCB7IGFsbG93ZWRGaWxlVHlwZXNGb3JLbm93bGVkZ2UsIGZpbGVUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9mb3JtYXRFeHRlbnNpb25zJ1xuaW1wb3J0IHtcbiAgYXBwZW5kS25vd2xlZGdlQXR0YWNobWVudHMsXG4gIGNhblByZXZpZXdLbm93bGVkZ2VBdHRhY2htZW50LFxuICBjb21wdXRlQXR0YWNobWVudHNUb3RhbFNpemUsXG4gIGNyZWF0ZUNsb3NlZEtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUsXG4gIE1BWF9LTk9XTEVER0VfVE9UQUxfU0laRSxcbiAgcHJvY2Vzc0tub3dsZWRnZUZpbGVzLFxuICByZW1vdmVLbm93bGVkZ2VBdHRhY2htZW50QnlJbmRleCxcbiAgcmVzb2x2ZUtub3dsZWRnZUF0dGFjaG1lbnRBdEluZGV4LFxuICByZXNvbHZlS25vd2xlZGdlRmlsZUVycm9yTW9kYWxTdGF0ZSxcbiAgc2hvdWxkQmxvY2tLbm93bGVkZ2VVcGxvYWQsXG4gIHNob3VsZEVuYWJsZUtub3dsZWRnZURyYWdTdGF0ZSxcbiAgc2hvdWxkSGFuZGxlS25vd2xlZGdlQXR0YWNobWVudEFjdGlvbixcbiAgc2hvdWxkUHJvY2Vzc0tub3dsZWRnZUZpbGVJbnB1dCxcbiAgc2hvdWxkUnVuS25vd2xlZGdlRG93bmxvYWRFZmZlY3QsXG59IGZyb20gJy4vQWJtS25vd2xlZGdlU2VjdGlvbi5oZWxwZXJzJ1xuXG5jb25zdCBNQVhfVE9UQUxfU0laRSA9IE1BWF9LTk9XTEVER0VfVE9UQUxfU0laRVxuXG5leHBvcnQgY29uc3QgQWJtS25vd2xlZGdlU2VjdGlvbiA9ICh7XG4gIGhhbmRsZVNldEFnZW50VmFsdWVzLFxuICB2YWx1ZXMsXG4gIG9uRmlsZUVycm9yQ2hhbmdlLFxuICB0b29sdGlwWkluZGV4LFxufToge1xuICBoYW5kbGVTZXRBZ2VudFZhbHVlczogKHtcbiAgICBrZXksXG4gICAgdmFsdWUsXG4gICAgZGVsZXRlS25vd2xlZGdlLFxuICB9OiB7XG4gICAga2V5OiBzdHJpbmdcbiAgICB2YWx1ZTogdW5rbm93blxuICAgIGRlbGV0ZUtub3dsZWRnZT86IGJvb2xlYW5cbiAgfSkgPT4gdm9pZFxuICB2YWx1ZXM6IE1vZGFsVmFsdWVzXG4gIG9uRmlsZUVycm9yQ2hhbmdlPzogKGhhc0Vycm9yczogYm9vbGVhbikgPT4gdm9pZFxuICB0b29sdGlwWkluZGV4PzogbnVtYmVyXG59KSA9PiB7XG4gIGNvbnN0IFtsb2NhbEF0dGFjaG1lbnRzLCBzZXRMb2NhbEF0dGFjaG1lbnRzXSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlW10+KHZhbHVlcy5rbm93bGVkZ2UgfHwgW10pXG4gIGNvbnN0IFtwcmV2aWV3QXR0YWNobWVudCwgc2V0UHJldmlld0F0dGFjaG1lbnRdID0gdXNlU3RhdGU8QXR0YWNobWVudEZpbGUgfCBudWxsPihudWxsKVxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IFttb2RhbFByb3BzLCBzZXRNb2RhbFByb3BzXSA9IHVzZVN0YXRlKHtcbiAgICBpc09wZW46IGZhbHNlLFxuICAgIGV4Y2x1ZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGV4Y2VlZGVkRmlsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgIGludmFsaWRFeHRlbnNpb25GaWxlczogW10gYXMgc3RyaW5nW10sXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBoYW5kbGVEb3dubG9hZEtub3dsZWRnZSxcbiAgICBzdWNjZXNzOiBpc0Rvd25sb2FkaW5nU3VjY2VzcyxcbiAgICBlcnJvcjogaXNEb3dubG9hZGluZ0Vycm9yLFxuICAgIGlzTG9hZGluZzogaXNEb3dubG9hZGluZyxcbiAgICBoYW5kbGVSZXNldFN0YXRlcyxcbiAgfSA9IHVzZURvd25sb2FkS25vd2xlZGdlKClcbiAgY29uc3QgeyBoYW5kbGVPbmJvYXJkaW5nTmF2aWdhdGlvbiB9ID0gdXNlT25ib2FyZGluZ05hdmlnYXRpb24oKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgW2lzRHJhZ2dpbmcsIHNldElzRHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgY3VycmVudFRvdGFsU2l6ZSA9IGNvbXB1dGVBdHRhY2htZW50c1RvdGFsU2l6ZShsb2NhbEF0dGFjaG1lbnRzIHx8IFtdKVxuICBjb25zdCBpc0F0U2l6ZUxpbWl0ID0gY3VycmVudFRvdGFsU2l6ZSA+PSBNQVhfVE9UQUxfU0laRVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaENsaWNrID0gKCkgPT4ge1xuICAgIGlmIChzaG91bGRCbG9ja0tub3dsZWRnZVVwbG9hZChpc0F0U2l6ZUxpbWl0KSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBoYW5kbGVGaWxlU2VsZWN0ID0gKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZS50YXJnZXRcbiAgICBpZiAoIXNob3VsZFByb2Nlc3NLbm93bGVkZ2VGaWxlSW5wdXQoZmlsZXMpKSByZXR1cm5cblxuICAgIGNvbnN0IHsgaW5zZXJ0ZWRGaWxlcywgZXhjZWVkZWRGaWxlcywgaW52YWxpZEV4dGVuc2lvbkZpbGVzLCBoYXNFcnJvcnMgfSA9IHByb2Nlc3NLbm93bGVkZ2VGaWxlcyh7XG4gICAgICBmaWxlczogQXJyYXkuZnJvbShmaWxlcyksXG4gICAgICBleGlzdGluZ0F0dGFjaG1lbnRzOiBsb2NhbEF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgYWxsb3dlZEV4dGVuc2lvbnM6IGFsbG93ZWRGaWxlVHlwZXNGb3JLbm93bGVkZ2UsXG4gICAgICBmaWxlVHlwZXMsXG4gICAgICBtYXhUb3RhbFNpemU6IE1BWF9UT1RBTF9TSVpFLFxuICAgIH0pXG5cbiAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICBzZXRNb2RhbFByb3BzKHJlc29sdmVLbm93bGVkZ2VGaWxlRXJyb3JNb2RhbFN0YXRlKHsgZXhjZWVkZWRGaWxlcywgaW52YWxpZEV4dGVuc2lvbkZpbGVzIH0pKVxuICAgICAgb25GaWxlRXJyb3JDaGFuZ2U/Lih0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkZpbGVFcnJvckNoYW5nZT8uKGZhbHNlKVxuICAgIH1cblxuICAgIGlmIChpbnNlcnRlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgaGFuZGxlU2V0QWdlbnRWYWx1ZXM/Lih7IGtleTogJ2tub3dsZWRnZScsIHZhbHVlOiBpbnNlcnRlZEZpbGVzIH0pXG4gICAgICBzZXRMb2NhbEF0dGFjaG1lbnRzKHByZXYgPT4gYXBwZW5kS25vd2xlZGdlQXR0YWNobWVudHMocHJldiB8fCBbXSwgaW5zZXJ0ZWRGaWxlcykpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VudGVyID0gKGU6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHNob3VsZEVuYWJsZUtub3dsZWRnZURyYWdTdGF0ZShpc0F0U2l6ZUxpbWl0KSkge1xuICAgICAgc2V0SXNEcmFnZ2luZyh0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURyYWdMZWF2ZSA9IChlOiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnT3ZlciA9IChlOiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJvcCA9IChlOiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHNldElzRHJhZ2dpbmcoZmFsc2UpXG5cbiAgICBpZiAoc2hvdWxkQmxvY2tLbm93bGVkZ2VVcGxvYWQoaXNBdFNpemVMaW1pdCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHsgZmlsZXMgfSA9IGUuZGF0YVRyYW5zZmVyXG4gICAgaWYgKCFzaG91bGRQcm9jZXNzS25vd2xlZGdlRmlsZUlucHV0KGZpbGVzKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gQ3JlYXIgdW4gZXZlbnRvIHNpbnTDqXRpY28gcGFyYSByZXV0aWxpemFyIGxhIGzDs2dpY2EgZGUgaGFuZGxlRmlsZVNlbGVjdFxuICAgIGNvbnN0IHN5bnRoZXRpY0V2ZW50ID0ge1xuICAgICAgdGFyZ2V0OiB7IGZpbGVzIH0sXG4gICAgfSBhcyBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PlxuXG4gICAgaGFuZGxlRmlsZVNlbGVjdChzeW50aGV0aWNFdmVudClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoaWQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGZpbGVUb0RlbGV0ZSA9IHJlc29sdmVLbm93bGVkZ2VBdHRhY2htZW50QXRJbmRleChsb2NhbEF0dGFjaG1lbnRzIHx8IFtdLCBpZClcbiAgICBpZiAoIWZpbGVUb0RlbGV0ZSkgcmV0dXJuXG5cbiAgICBjb25zdCBuZXdBdHRhY2htZW50cyA9IHJlbW92ZUtub3dsZWRnZUF0dGFjaG1lbnRCeUluZGV4KGxvY2FsQXR0YWNobWVudHMgfHwgW10sIGlkKVxuICAgIGlmICghbmV3QXR0YWNobWVudHMpIHJldHVyblxuICAgIHNldExvY2FsQXR0YWNobWVudHMobmV3QXR0YWNobWVudHMpXG5cbiAgICBoYW5kbGVTZXRBZ2VudFZhbHVlcz8uKHsga2V5OiAna25vd2xlZGdlJywgdmFsdWU6IG5ld0F0dGFjaG1lbnRzLCBkZWxldGVLbm93bGVkZ2U6IHRydWUgfSlcblxuICAgIG9uRmlsZUVycm9yQ2hhbmdlPy4oZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEb3dubG9hZEF0dGFjaG1lbnQgPSAoaWQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSByZXNvbHZlS25vd2xlZGdlQXR0YWNobWVudEF0SW5kZXgobG9jYWxBdHRhY2htZW50cyB8fCBbXSwgaWQpXG4gICAgaWYgKCFmaWxlKSByZXR1cm5cblxuICAgIGhhbmRsZURvd25sb2FkS25vd2xlZGdlKHsgYWdlbnRJZDogdmFsdWVzLmdlbmVyYWwuaWQhLnRvU3RyaW5nKCksIGtub3dsZWRnZUlkOiBmaWxlLmlkIH0pXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzaG91bGRSdW5Lbm93bGVkZ2VEb3dubG9hZEVmZmVjdChpc0Rvd25sb2FkaW5nU3VjY2VzcywgaXNEb3dubG9hZGluZ0Vycm9yLCBpc0Rvd25sb2FkaW5nKSkge1xuICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpc0Rvd25sb2FkaW5nU3VjY2Vzcy5ibG9iKVxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5ocmVmID0gdXJsXG4gICAgICBsaW5rLmRvd25sb2FkID0gaXNEb3dubG9hZGluZ1N1Y2Nlc3MuZmlsZW5hbWVcbiAgICAgIGxpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJ1xuXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXG4gICAgICBsaW5rLmNsaWNrKClcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaylcbiAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpXG4gICAgICAgIGhhbmRsZVJlc2V0U3RhdGVzKClcbiAgICAgIH0sIDEwMClcbiAgICB9XG4gIH0sIFtpc0Rvd25sb2FkaW5nU3VjY2VzcywgaXNEb3dubG9hZGluZ0Vycm9yLCBpc0Rvd25sb2FkaW5nLCBoYW5kbGVSZXNldFN0YXRlc10pXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uID0gKHsgaWQsIGFjdGlvbiB9OiB7IGlkOiBudW1iZXI7IGFjdGlvbjogJ2RlbGV0ZScgfCAnZG93bmxvYWQnIH0pID0+IHtcbiAgICBpZiAoIXNob3VsZEhhbmRsZUtub3dsZWRnZUF0dGFjaG1lbnRBY3Rpb24oaXNEb3dubG9hZGluZykpIHJldHVyblxuICAgIGlmIChhY3Rpb24gPT09ICdkZWxldGUnKSB7XG4gICAgICBoYW5kbGVEZWxldGVBdHRhY2htZW50KGlkKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGlmIChhY3Rpb24gPT09ICdkb3dubG9hZCcpIHtcbiAgICAgIGhhbmRsZURvd25sb2FkQXR0YWNobWVudChpZClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVBdHRhY2htZW50Q2xpY2sgPSAoYXR0YWNobWVudDogQXR0YWNobWVudEZpbGUpID0+IHtcbiAgICBpZiAoY2FuUHJldmlld0tub3dsZWRnZUF0dGFjaG1lbnQoYXR0YWNobWVudCkpIHtcbiAgICAgIHNldFByZXZpZXdBdHRhY2htZW50KGF0dGFjaG1lbnQpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VQcmV2aWV3ID0gKCkgPT4ge1xuICAgIHNldFByZXZpZXdBdHRhY2htZW50KG51bGwpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U0NBS1NXcmFwcGVyPlxuICAgICAgICA8U0NBS1NXcmFwcGVySGVhZGVyICRpbmRleD17MH0+XG4gICAgICAgICAgPFNDQUtTV3JhcHBlckhlYWRlclRpdGxlPnt0KCdrbm93bGVkZ2VTZWN0aW9uLmtub3dsZWRnZVRhYicpfTwvU0NBS1NXcmFwcGVySGVhZGVyVGl0bGU+XG4gICAgICAgICAgPFNDQUtTV3JhcHBlckhlYWRlckluZm8+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7dCgna25vd2xlZGdlU2VjdGlvbi5pbmZvTGFiZWwnKX1cbiAgICAgICAgICAgICAgPFNDQUtTTW9yZUluZm9TcGFuIG9uQ2xpY2s9eygpID0+IGhhbmRsZU9uYm9hcmRpbmdOYXZpZ2F0aW9uKCdtb3JlSW5mbycpfT5cbiAgICAgICAgICAgICAgICB7dCgna25vd2xlZGdlU2VjdGlvbi5tb3JlSW5mbycpfVxuICAgICAgICAgICAgICAgIDxTQ0FLU01vcmVJbmZvSWNvbldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICA8T3BlbiB3aWR0aD17MTh9IGhlaWdodD17MTh9IGNvbG9yPVwiIzAwNkZBRlwiIC8+XG4gICAgICAgICAgICAgICAgPC9TQ0FLU01vcmVJbmZvSWNvbldyYXBwZXI+XG4gICAgICAgICAgICAgIDwvU0NBS1NNb3JlSW5mb1NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L1NDQUtTV3JhcHBlckhlYWRlckluZm8+XG4gICAgICAgIDwvU0NBS1NXcmFwcGVySGVhZGVyPlxuICAgICAgICA8U0NBS1NXcmFwcGVyQ29udGVudCAkaW5kZXg9ezF9PlxuICAgICAgICAgIDxTQ0FLU0ZpbGVVcGxvYWRXcmFwcGVyQ29udGVudD5cbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtpc0F0U2l6ZUxpbWl0ID8gdCgna25vd2xlZGdlU2VjdGlvbi5lcnJvci5tYXhTaXplVGl0bGUnKSA6ICcnfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICA8U0NBS1NEcm9wWm9uZVxuICAgICAgICAgICAgICAgIGlzQXRTaXplTGltaXQ9e2lzQXRTaXplTGltaXR9XG4gICAgICAgICAgICAgICAgaXNEcmFnZ2luZz17aXNEcmFnZ2luZ31cbiAgICAgICAgICAgICAgICBvbkRyYWdFbnRlcj17aGFuZGxlRHJhZ0VudGVyfVxuICAgICAgICAgICAgICAgIG9uRHJhZ0xlYXZlPXtoYW5kbGVEcmFnTGVhdmV9XG4gICAgICAgICAgICAgICAgb25EcmFnT3Zlcj17aGFuZGxlRHJhZ092ZXJ9XG4gICAgICAgICAgICAgICAgb25Ecm9wPXtoYW5kbGVEcm9wfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNDQUtTRHJvcFpvbmVJY29uPlxuICAgICAgICAgICAgICAgICAgPEZpbGVVcGxvYWQgd2lkdGg9ezMwfSBoZWlnaHQ9ezMwfSBjb2xvcj17aXNBdFNpemVMaW1pdCA/ICcjOTk5JyA6ICcjMDA2RkFGJ30gLz5cbiAgICAgICAgICAgICAgICA8L1NDQUtTRHJvcFpvbmVJY29uPlxuICAgICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lVGV4dD5cbiAgICAgICAgICAgICAgICAgIDxTQ0FLU0Ryb3Bab25lVGV4dFNwYW4gaXNBdFNpemVMaW1pdD17aXNBdFNpemVMaW1pdH0gZGF0YS1kcm9wem9uZS1saW5rIG9uQ2xpY2s9e2hhbmRsZUF0dGFjaENsaWNrfT5cbiAgICAgICAgICAgICAgICAgICAge3QoJ2tub3dsZWRnZVNlY3Rpb24uZHJvcFpvbmVUZXh0LjEnKX1cbiAgICAgICAgICAgICAgICAgIDwvU0NBS1NEcm9wWm9uZVRleHRTcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3QoJ2tub3dsZWRnZVNlY3Rpb24uZHJvcFpvbmVUZXh0LjInKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9TQ0FLU0Ryb3Bab25lVGV4dD5cbiAgICAgICAgICAgICAgICA8U0NBS1NEcm9wWm9uZUluZm8+e3QoJ2tub3dsZWRnZVNlY3Rpb24uaW5mb0ZpbGVUeXBlcycpfTwvU0NBS1NEcm9wWm9uZUluZm8+XG4gICAgICAgICAgICAgIDwvU0NBS1NEcm9wWm9uZT5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICA8L1NDQUtTRmlsZVVwbG9hZFdyYXBwZXJDb250ZW50PlxuICAgICAgICAgIDxTQ0FLU0F0dGFjaG1lbnRzV3JhcHBlcj5cbiAgICAgICAgICAgIHsobG9jYWxBdHRhY2htZW50cyB8fCBbXSkubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxBdHRhY2htZW50Q2FyZFxuICAgICAgICAgICAgICAgICAgcG9zaXRpb25JbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBrZXk9e2BhdHRhY2htZW50LSR7YXR0YWNobWVudD8ubmFtZX0tJHthdHRhY2htZW50Py5pZH0tJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgYXR0YWNobWVudD17YXR0YWNobWVudH1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUFjdGlvbj17aGFuZGxlQWN0aW9ufVxuICAgICAgICAgICAgICAgICAgYWJtS25vd2xlZGdlU2VjdGlvblxuICAgICAgICAgICAgICAgICAgZnVsbFdpZHRoXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBdHRhY2htZW50Q2xpY2soYXR0YWNobWVudCl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9TQ0FLU0F0dGFjaG1lbnRzV3JhcHBlcj5cbiAgICAgICAgPC9TQ0FLU1dyYXBwZXJDb250ZW50PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICBhY2NlcHQ9XCIudHh0LC5tZCwuY3N2LC5kb2MsLmRvY3gsLnBwdCwucHB0eCwucGRmLC5wbmcsLmpwZywuanBlZywueGxzeCwueGxzXCJcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRmlsZVNlbGVjdH1cbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvU0NBS1NXcmFwcGVyPlxuICAgICAge21vZGFsUHJvcHMuaXNPcGVuICYmIChcbiAgICAgICAgPE1vZGFsRmlsZUV4Y2VlZHNcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRNb2RhbFByb3BzKGNyZWF0ZUNsb3NlZEtub3dsZWRnZUZpbGVFcnJvck1vZGFsU3RhdGUoKSlcbiAgICAgICAgICAgIG9uRmlsZUVycm9yQ2hhbmdlPy4oZmFsc2UpXG4gICAgICAgICAgfX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGludmFsaWRFeHRlbnNpb25GaWxlcz17bW9kYWxQcm9wcy5pbnZhbGlkRXh0ZW5zaW9uRmlsZXN9XG4gICAgICAgICAgc2VjdGlvbj1cImFibV9hZ2VudFwiXG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPEF0dGFjaG1lbnRQcmV2aWV3TW9kYWxcbiAgICAgICAgaXNPcGVuPXshIXByZXZpZXdBdHRhY2htZW50fVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVByZXZpZXd9XG4gICAgICAgIGF0dGFjaG1lbnQ9e3ByZXZpZXdBdHRhY2htZW50fVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxVQUFVLFFBQVEsNkNBQTZDO0FBQ3hFLFNBQVNDLElBQUksUUFB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QUs7WUFDbkQsb0JBQ0U3SCxJQUFBLENBQUNwQyxjQUFjO2NBQ2JrSyxhQUFhLEVBQUVELEtBQU07Y0FFckJmLFVBQVUsRUFBRUEsVUFBVztjQUN2QkosWUFBWSxFQUFFQSxZQUFhO2NBQzNCcUIsbUJBQW1CO2NBQ25CQyxTQUFTO2NBQ1RkLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2dCQUFBLE9BQVFMLHFCQUFxQixDQUFDQyxVQUFVLENBQUM7Y0FBQTtZQUFDLGlCQUFBbUIsTUFBQSxDQUw5Qm5CLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFb0IsSUFBSSxPQUFBRCxNQUFBLENBQUluQixVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRS9CLEVBQUUsT0FBQWtELE1BQUEsQ0FBSUosS0FBSyxDQU0vRCxDQUFDO1VBRU4sQ0FBQztRQUFDLENBQ3FCLENBQUM7TUFBQSxDQUNQLENBQUMsZUFDdEI3SCxJQUFBO1FBQ0VtSSxHQUFHLEVBQUV4RixZQUFhO1FBQ2xCeUYsSUFBSSxFQUFDLE1BQU07UUFDWEMsUUFBUTtRQUNSQyxNQUFNLEVBQUMscUVBQXFFO1FBQzVFQyxRQUFRLEVBQUVqRixnQkFBaUI7UUFDM0I2QyxLQUFLLEVBQUU7VUFBRUMsT0FBTyxFQUFFO1FBQU87TUFBRSxDQUM1QixDQUFDO0lBQUEsQ0FDVSxDQUFDLEVBQ2R0RSxVQUFVLENBQUNMLE1BQU0saUJBQ2hCekIsSUFBQSxDQUFDbEIsZ0JBQWdCO01BQ2YwSixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFRO1FBQ2J6RyxhQUFhLENBQUMzQyx3Q0FBd0MsQ0FBQyxDQUFDLENBQUM7UUFDekRzQixpQkFBaUIsYUFBakJBLGlCQUFpQixlQUFqQkEsaUJBQWlCLENBQUcsS0FBSyxDQUFDO01BQzVCLENBQUU7TUFDRmdCLGFBQWEsRUFBRUksVUFBVSxDQUFDSixhQUFjO01BQ3hDQyxhQUFhLEVBQUVHLFVBQVUsQ0FBQ0gsYUFBYztNQUN4Q0MscUJBQXFCLEVBQUVFLFVBQVUsQ0FBQ0YscUJBQXNCO01BQ3hENkcsT0FBTyxFQUFDO0lBQVcsQ0FDcEIsQ0FDRixlQUNEekksSUFBQSxDQUFDbkMsc0JBQXNCO01BQ3JCNEQsTUFBTSxFQUFFLENBQUMsQ0FBQ0wsaUJBQWtCO01BQzVCb0gsT0FBTyxFQUFFekIsa0JBQW1CO01BQzVCRCxVQUFVLEVBQUUxRjtJQUFrQixDQUMvQixDQUFDO0VBQUEsQ0FDRixDQUFDO0FBRVAsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export var PROCESSING_TIMEOUT_MS = 10000;
|
|
2
|
+
export var isPendingFileStatus = function isPendingFileStatus(status) {
|
|
3
|
+
return status === 'pending' || status === 'processing' || status === 'started';
|
|
4
|
+
};
|
|
5
|
+
export var hasPendingFiles = function hasPendingFiles(files) {
|
|
6
|
+
return files.some(function (file) {
|
|
7
|
+
return isPendingFileStatus(file.status);
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
export var buildPendingStatusesKey = function buildPendingStatusesKey(files) {
|
|
11
|
+
return files.filter(function (file) {
|
|
12
|
+
return isPendingFileStatus(file.status);
|
|
13
|
+
}).map(function (file) {
|
|
14
|
+
return "".concat(file.name, ":").concat(file.status);
|
|
15
|
+
}).join('|');
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQUk9DRVNTSU5HX1RJTUVPVVRfTVMiLCJpc1BlbmRpbmdGaWxlU3RhdHVzIiwic3RhdHVzIiwiaGFzUGVuZGluZ0ZpbGVzIiwiZmlsZXMiLCJzb21lIiwiZmlsZSIsImJ1aWxkUGVuZGluZ1N0YXR1c2VzS2V5IiwiZmlsdGVyIiwibWFwIiwiY29uY2F0IiwibmFtZSIsImpvaW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1Mb2FkZXJGaWxlcy5oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5cbmV4cG9ydCBjb25zdCBQUk9DRVNTSU5HX1RJTUVPVVRfTVMgPSAxMDAwMFxuXG5leHBvcnQgY29uc3QgaXNQZW5kaW5nRmlsZVN0YXR1cyA9IChzdGF0dXM/OiBBdHRhY2htZW50RmlsZVsnc3RhdHVzJ10pOiBib29sZWFuID0+XG4gIHN0YXR1cyA9PT0gJ3BlbmRpbmcnIHx8IHN0YXR1cyA9PT0gJ3Byb2Nlc3NpbmcnIHx8IHN0YXR1cyA9PT0gJ3N0YXJ0ZWQnXG5cbmV4cG9ydCBjb25zdCBoYXNQZW5kaW5nRmlsZXMgPSAoZmlsZXM6IFBpY2s8QXR0YWNobWVudEZpbGUsICdzdGF0dXMnPltdKTogYm9vbGVhbiA9PlxuICBmaWxlcy5zb21lKGZpbGUgPT4gaXNQZW5kaW5nRmlsZVN0YXR1cyhmaWxlLnN0YXR1cykpXG5cbmV4cG9ydCBjb25zdCBidWlsZFBlbmRpbmdTdGF0dXNlc0tleSA9IChmaWxlczogUGljazxBdHRhY2htZW50RmlsZSwgJ25hbWUnIHwgJ3N0YXR1cyc+W10pOiBzdHJpbmcgPT5cbiAgZmlsZXNcbiAgICAuZmlsdGVyKGZpbGUgPT4gaXNQZW5kaW5nRmlsZVN0YXR1cyhmaWxlLnN0YXR1cykpXG4gICAgLm1hcChmaWxlID0+IGAke2ZpbGUubmFtZX06JHtmaWxlLnN0YXR1c31gKVxuICAgIC5qb2luKCd8JylcbiJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNQSxxQkFBcUIsR0FBRyxLQUFLO0FBRTFDLE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsTUFBaUM7RUFBQSxPQUNuRUEsTUFBTSxLQUFLLFNBQVMsSUFBSUEsTUFBTSxLQUFLLFlBQVksSUFBSUEsTUFBTSxLQUFLLFNBQVM7QUFBQTtBQUV6RSxPQUFPLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUMsS0FBdUM7RUFBQSxPQUNyRUEsS0FBSyxDQUFDQyxJQUFJLENBQUMsVUFBQUMsSUFBSTtJQUFBLE9BQUlMLG1CQUFtQixDQUFDSyxJQUFJLENBQUNKLE1BQU0sQ0FBQztFQUFBLEVBQUM7QUFBQTtBQUV0RCxPQUFPLElBQU1LLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlILEtBQWdEO0VBQUEsT0FDdEZBLEtBQUssQ0FDRkksTUFBTSxDQUFDLFVBQUFGLElBQUk7SUFBQSxPQUFJTCxtQkFBbUIsQ0FBQ0ssSUFBSSxDQUFDSixNQUFNLENBQUM7RUFBQSxFQUFDLENBQ2hETyxHQUFHLENBQUMsVUFBQUgsSUFBSTtJQUFBLFVBQUFJLE1BQUEsQ0FBT0osSUFBSSxDQUFDSyxJQUFJLE9BQUFELE1BQUEsQ0FBSUosSUFBSSxDQUFDSixNQUFNO0VBQUEsQ0FBRSxDQUFDLENBQzFDVSxJQUFJLENBQUMsR0FBRyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -3,6 +3,7 @@ import { SpinnerLottie } from '@projectcor/cor-commons/lib/components/spinner-lo
|
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { ChipStatus } from '../../atoms/ChipStatus';
|
|
5
5
|
import { SCALFContent, SCALFHeader, SCALFText, SCALFWrapper, SCALFWrapperContentTable, SCALFWrapperHeaderTable, SCALFWrapperStatusCellTable, SCALFWrapperRowTable, SCALFWrapperLabelCellTable, SCALFWrapperSpinnerCellTable, SCALFWrapperHeaderLabelCellTable, SCALFLoadingText } from './AbmLoaderFiles.styles';
|
|
6
|
+
import { buildPendingStatusesKey, hasPendingFiles, isPendingFileStatus, PROCESSING_TIMEOUT_MS } from './AbmLoaderFiles.helpers';
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
8
|
var HeaderTable = /*#__PURE__*/memo(function () {
|
|
8
9
|
var _useTranslation = useTranslation(['abm_agent_section']),
|
|
@@ -26,7 +27,7 @@ var ContentTable = /*#__PURE__*/memo(function (_ref) {
|
|
|
26
27
|
children: file.name
|
|
27
28
|
}), /*#__PURE__*/_jsxs(SCALFWrapperStatusCellTable, {
|
|
28
29
|
children: [/*#__PURE__*/_jsx(SCALFWrapperSpinnerCellTable, {
|
|
29
|
-
children: (file.status
|
|
30
|
+
children: isPendingFileStatus(file.status) && /*#__PURE__*/_jsx(SpinnerLottie, {
|
|
30
31
|
size: "18",
|
|
31
32
|
color: "primary"
|
|
32
33
|
})
|
|
@@ -42,10 +43,6 @@ var ContentTable = /*#__PURE__*/memo(function (_ref) {
|
|
|
42
43
|
return file.status === nextProps.files[index].status;
|
|
43
44
|
});
|
|
44
45
|
});
|
|
45
|
-
|
|
46
|
-
// Timeout de seguridad para evitar que el modal quede colgado si el WebSocket
|
|
47
|
-
// no responde. Se reinicia ante cada cambio de estado de los archivos.
|
|
48
|
-
var PROCESSING_TIMEOUT_MS = 10000;
|
|
49
46
|
export var AbmLoaderFiles = function AbmLoaderFiles(_ref2) {
|
|
50
47
|
var attachments = _ref2.attachments,
|
|
51
48
|
label = _ref2.label,
|
|
@@ -56,18 +53,11 @@ export var AbmLoaderFiles = function AbmLoaderFiles(_ref2) {
|
|
|
56
53
|
t = _useTranslation2.t;
|
|
57
54
|
var attachmentsRef = useRef(attachments);
|
|
58
55
|
attachmentsRef.current = attachments;
|
|
59
|
-
var pendingStatuses = attachments
|
|
60
|
-
return file.status === 'pending' || file.status === 'processing' || file.status === 'started';
|
|
61
|
-
}).map(function (file) {
|
|
62
|
-
return "".concat(file.name, ":").concat(file.status);
|
|
63
|
-
}).join('|');
|
|
56
|
+
var pendingStatuses = buildPendingStatusesKey(attachments);
|
|
64
57
|
useEffect(function () {
|
|
65
58
|
if (!onTimeout || !pendingStatuses) return undefined;
|
|
66
59
|
var timeoutId = setTimeout(function () {
|
|
67
|
-
|
|
68
|
-
return file.status === 'pending' || file.status === 'processing' || file.status === 'started';
|
|
69
|
-
});
|
|
70
|
-
if (stillPending) {
|
|
60
|
+
if (hasPendingFiles(attachmentsRef.current)) {
|
|
71
61
|
onTimeout();
|
|
72
62
|
}
|
|
73
63
|
}, timeoutMs);
|
|
@@ -89,4 +79,4 @@ export var AbmLoaderFiles = function AbmLoaderFiles(_ref2) {
|
|
|
89
79
|
})]
|
|
90
80
|
});
|
|
91
81
|
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiU3Bpbm5lckxvdHRpZSIsInVzZVRyYW5zbGF0aW9uIiwiQ2hpcFN0YXR1cyIsIlNDQUxGQ29udGVudCIsIlNDQUxGSGVhZGVyIiwiU0NBTEZUZXh0IiwiU0NBTEZXcmFwcGVyIiwiU0NBTEZXcmFwcGVyQ29udGVudFRhYmxlIiwiU0NBTEZXcmFwcGVySGVhZGVyVGFibGUiLCJTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGUiLCJTQ0FMRldyYXBwZXJSb3dUYWJsZSIsIlNDQUxGV3JhcHBlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZSIsIlNDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZMb2FkaW5nVGV4dCIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJIZWFkZXJUYWJsZSIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJsYWJlbHMiLCJjaGlsZHJlbiIsIm1hcCIsImxhYmVsIiwiaW5kZXgiLCJ3aWR0aCIsIkNvbnRlbnRUYWJsZSIsIl9yZWYiLCJmaWxlcyIsImZpbGUiLCJuYW1lIiwic3RhdHVzIiwic2l6ZSIsImNvbG9yIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZXZlcnkiLCJQUk9DRVNTSU5HX1RJTUVPVVRfTVMiLCJBYm1Mb2FkZXJGaWxlcyIsIl9yZWYyIiwiYXR0YWNobWVudHMiLCJvblRpbWVvdXQiLCJfcmVmMiR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJfdXNlVHJhbnNsYXRpb24yIiwiYXR0YWNobWVudHNSZWYiLCJjdXJyZW50IiwicGVuZGluZ1N0YXR1c2VzIiwiZmlsdGVyIiwiY29uY2F0Iiwiam9pbiIsInVuZGVmaW5lZCIsInRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJzdGlsbFBlbmRpbmciLCJzb21lIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0FibVNlY3Rpb24vQWJtTG9hZGVyRmlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBTcGlubmVyTG90dGllIH0gZnJvbSAnQHByb2plY3Rjb3IvY29yLWNvbW1vbnMvbGliL2NvbXBvbmVudHMvc3Bpbm5lci1sb3R0aWUnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBDaGlwU3RhdHVzIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hpcFN0YXR1cydcbmltcG9ydCB7XG4gIFNDQUxGQ29udGVudCxcbiAgU0NBTEZIZWFkZXIsXG4gIFNDQUxGVGV4dCxcbiAgU0NBTEZXcmFwcGVyLFxuICBTQ0FMRldyYXBwZXJDb250ZW50VGFibGUsXG4gIFNDQUxGV3JhcHBlckhlYWRlclRhYmxlLFxuICBTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGUsXG4gIFNDQUxGV3JhcHBlclJvd1RhYmxlLFxuICBTQ0FMRldyYXBwZXJMYWJlbENlbGxUYWJsZSxcbiAgU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZSxcbiAgU0NBTEZXcmFwcGVySGVhZGVyTGFiZWxDZWxsVGFibGUsXG4gIFNDQUxGTG9hZGluZ1RleHQsXG59IGZyb20gJy4vQWJtTG9hZGVyRmlsZXMuc3R5bGVzJ1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDaGlwU3RhdHVzUHJvcHMgfSBmcm9tICcuLi8uLi9hdG9tcy9DaGlwU3RhdHVzL0NoaXBTdGF0dXMuaW50ZXJmYWNlJ1xuXG5jb25zdCBIZWFkZXJUYWJsZSA9IG1lbW8oKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnYWJtX2FnZW50X3NlY3Rpb24nXSlcbiAgY29uc3QgbGFiZWxzID0gW3QoJ3Byb2Nlc3NpbmdLbm93bGVkZ2UuZmlsZVJvdycpLCB0KCdwcm9jZXNzaW5nS25vd2xlZGdlLnN0YXR1c1JvdycpXVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUxGV3JhcHBlckhlYWRlclRhYmxlPlxuICAgICAge2xhYmVscy5tYXAoKGxhYmVsLCBpbmRleCkgPT4gKFxuICAgICAgICA8U0NBTEZXcmFwcGVySGVhZGVyTGFiZWxDZWxsVGFibGUga2V5PXtsYWJlbH0gd2lkdGg9e2luZGV4ID09PSAwID8gJ2F1dG8nIDogJzEyMHB4J30+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L1NDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlPlxuICAgICAgKSl9XG4gICAgPC9TQ0FMRldyYXBwZXJIZWFkZXJUYWJsZT5cbiAgKVxufSlcblxuY29uc3QgQ29udGVudFRhYmxlID0gbWVtbyhcbiAgKHsgZmlsZXMgfTogeyBmaWxlczogQXR0YWNobWVudEZpbGVbXSB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0FMRldyYXBwZXJDb250ZW50VGFibGU+XG4gICAgICAgIHtmaWxlcy5tYXAoZmlsZSA9PiAoXG4gICAgICAgICAgPFNDQUxGV3JhcHBlclJvd1RhYmxlIGtleT17ZmlsZS5uYW1lfT5cbiAgICAgICAgICAgIDxTQ0FMRldyYXBwZXJMYWJlbENlbGxUYWJsZT57ZmlsZS5uYW1lfTwvU0NBTEZXcmFwcGVyTGFiZWxDZWxsVGFibGU+XG4gICAgICAgICAgICA8U0NBTEZXcmFwcGVyU3RhdHVzQ2VsbFRhYmxlPlxuICAgICAgICAgICAgICA8U0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZT5cbiAgICAgICAgICAgICAgICB7KGZpbGUuc3RhdHVzID09PSAncGVuZGluZycgfHwgZmlsZS5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3N0YXJ0ZWQnKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3Bpbm5lckxvdHRpZSBzaXplPVwiMThcIiBjb2xvcj1cInByaW1hcnlcIiAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZT5cbiAgICAgICAgICAgICAgPENoaXBTdGF0dXMgc3RhdHVzPXtmaWxlLnN0YXR1cyBhcyBDaGlwU3RhdHVzUHJvcHNbJ3N0YXR1cyddfSAvPlxuICAgICAgICAgICAgPC9TQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGU+XG4gICAgICAgICAgPC9TQ0FMRldyYXBwZXJSb3dUYWJsZT5cbiAgICAgICAgKSl9XG4gICAgICA8L1NDQUxGV3JhcHBlckNvbnRlbnRUYWJsZT5cbiAgICApXG4gIH0sXG4gIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIHJldHVybiBwcmV2UHJvcHMuZmlsZXMuZXZlcnkoKGZpbGUsIGluZGV4KSA9PiBmaWxlLnN0YXR1cyA9PT0gbmV4dFByb3BzLmZpbGVzW2luZGV4XS5zdGF0dXMpXG4gIH1cbilcblxuLy8gVGltZW91dCBkZSBzZWd1cmlkYWQgcGFyYSBldml0YXIgcXVlIGVsIG1vZGFsIHF1ZWRlIGNvbGdhZG8gc2kgZWwgV2ViU29ja2V0XG4vLyBubyByZXNwb25kZS4gU2UgcmVpbmljaWEgYW50ZSBjYWRhIGNhbWJpbyBkZSBlc3RhZG8gZGUgbG9zIGFyY2hpdm9zLlxuY29uc3QgUFJPQ0VTU0lOR19USU1FT1VUX01TID0gMTAwMDBcblxuZXhwb3J0IGNvbnN0IEFibUxvYWRlckZpbGVzID0gKHtcbiAgYXR0YWNobWVudHMsXG4gIGxhYmVsLFxuICBvblRpbWVvdXQsXG4gIHRpbWVvdXRNcyA9IFBST0NFU1NJTkdfVElNRU9VVF9NUyxcbn06IHtcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgbGFiZWw6IHN0cmluZ1xuICBvblRpbWVvdXQ/OiAoKSA9PiB2b2lkXG4gIHRpbWVvdXRNcz86IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnYWJtX2FnZW50X3NlY3Rpb24nXSlcbiAgY29uc3QgYXR0YWNobWVudHNSZWYgPSB1c2VSZWYoYXR0YWNobWVudHMpXG4gIGF0dGFjaG1lbnRzUmVmLmN1cnJlbnQgPSBhdHRhY2htZW50c1xuXG4gIGNvbnN0IHBlbmRpbmdTdGF0dXNlcyA9IGF0dGFjaG1lbnRzXG4gICAgLmZpbHRlcihmaWxlID0+IGZpbGUuc3RhdHVzID09PSAncGVuZGluZycgfHwgZmlsZS5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJyB8fCBmaWxlLnN0YXR1cyA9PT0gJ3N0YXJ0ZWQnKVxuICAgIC5tYXAoZmlsZSA9PiBgJHtmaWxlLm5hbWV9OiR7ZmlsZS5zdGF0dXN9YClcbiAgICAuam9pbignfCcpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9uVGltZW91dCB8fCAhcGVuZGluZ1N0YXR1c2VzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHN0aWxsUGVuZGluZyA9IGF0dGFjaG1lbnRzUmVmLmN1cnJlbnQuc29tZShcbiAgICAgICAgZmlsZSA9PiBmaWxlLnN0YXR1cyA9PT0gJ3BlbmRpbmcnIHx8IGZpbGUuc3RhdHVzID09PSAncHJvY2Vzc2luZycgfHwgZmlsZS5zdGF0dXMgPT09ICdzdGFydGVkJ1xuICAgICAgKVxuICAgICAgaWYgKHN0aWxsUGVuZGluZykge1xuICAgICAgICBvblRpbWVvdXQoKVxuICAgICAgfVxuICAgIH0sIHRpbWVvdXRNcylcblxuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICB9LCBbcGVuZGluZ1N0YXR1c2VzLCBvblRpbWVvdXQsIHRpbWVvdXRNc10pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBTEZXcmFwcGVyPlxuICAgICAgPFNDQUxGSGVhZGVyPlxuICAgICAgICA8U0NBTEZMb2FkaW5nVGV4dD57dCgncHJvY2Vzc2luZ0tub3dsZWRnZS5sb2FkaW5nRmlsZXMnKX08L1NDQUxGTG9hZGluZ1RleHQ+XG4gICAgICAgIDxTQ0FMRlRleHQ+e2xhYmVsfTwvU0NBTEZUZXh0PlxuICAgICAgPC9TQ0FMRkhlYWRlcj5cbiAgICAgIDxTQ0FMRkNvbnRlbnQ+XG4gICAgICAgIDxIZWFkZXJUYWJsZSAvPlxuICAgICAgICA8Q29udGVudFRhYmxlIGZpbGVzPXthdHRhY2htZW50c30gLz5cbiAgICAgIDwvU0NBTEZDb250ZW50PlxuICAgIDwvU0NBTEZXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLElBQUksRUFBRUMsU0FBUyxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUMvQyxTQUFTQyxhQUFhLFFBQVEsdURBQXVEO0FBQ3JGLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsU0FDRUMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyx3QkFBd0IsRUFDeEJDLHVCQUF1QixFQUN2QkMsMkJBQTJCLEVBQzNCQyxvQkFBb0IsRUFDcEJDLDBCQUEwQixFQUMxQkMsNEJBQTRCLEVBQzVCQyxnQ0FBZ0MsRUFDaENDLGdCQUFnQixRQUNYLHlCQUF5QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFJaEMsSUFBTUMsV0FBVyxnQkFBR3RCLElBQUksQ0FBQyxZQUFNO0VBQzdCLElBQUF1QixlQUFBLEdBQWNuQixjQUFjLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQTNDb0IsQ0FBQyxHQUFBRCxlQUFBLENBQURDLENBQUM7RUFDVCxJQUFNQyxNQUFNLEdBQUcsQ0FBQ0QsQ0FBQyxDQUFDLDZCQUE2QixDQUFDLEVBQUVBLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0VBRXJGLG9CQUNFTCxJQUFBLENBQUNSLHVCQUF1QjtJQUFBZSxRQUFBLEVBQ3JCRCxNQUFNLENBQUNFLEdBQUcsQ0FBQyxVQUFDQyxLQUFLLEVBQUVDLEtBQUs7TUFBQSxvQkFD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
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlUmVmIiwiU3Bpbm5lckxvdHRpZSIsInVzZVRyYW5zbGF0aW9uIiwiQ2hpcFN0YXR1cyIsIlNDQUxGQ29udGVudCIsIlNDQUxGSGVhZGVyIiwiU0NBTEZUZXh0IiwiU0NBTEZXcmFwcGVyIiwiU0NBTEZXcmFwcGVyQ29udGVudFRhYmxlIiwiU0NBTEZXcmFwcGVySGVhZGVyVGFibGUiLCJTQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGUiLCJTQ0FMRldyYXBwZXJSb3dUYWJsZSIsIlNDQUxGV3JhcHBlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZSIsIlNDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlIiwiU0NBTEZMb2FkaW5nVGV4dCIsImJ1aWxkUGVuZGluZ1N0YXR1c2VzS2V5IiwiaGFzUGVuZGluZ0ZpbGVzIiwiaXNQZW5kaW5nRmlsZVN0YXR1cyIsIlBST0NFU1NJTkdfVElNRU9VVF9NUyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJIZWFkZXJUYWJsZSIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJsYWJlbHMiLCJjaGlsZHJlbiIsIm1hcCIsImxhYmVsIiwiaW5kZXgiLCJ3aWR0aCIsIkNvbnRlbnRUYWJsZSIsIl9yZWYiLCJmaWxlcyIsImZpbGUiLCJuYW1lIiwic3RhdHVzIiwic2l6ZSIsImNvbG9yIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZXZlcnkiLCJBYm1Mb2FkZXJGaWxlcyIsIl9yZWYyIiwiYXR0YWNobWVudHMiLCJvblRpbWVvdXQiLCJfcmVmMiR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJfdXNlVHJhbnNsYXRpb24yIiwiYXR0YWNobWVudHNSZWYiLCJjdXJyZW50IiwicGVuZGluZ1N0YXR1c2VzIiwidW5kZWZpbmVkIiwidGltZW91dElkIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUxvYWRlckZpbGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgU3Bpbm5lckxvdHRpZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi9jb21wb25lbnRzL3NwaW5uZXItbG90dGllJ1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgQ2hpcFN0YXR1cyB9IGZyb20gJy4uLy4uL2F0b21zL0NoaXBTdGF0dXMnXG5pbXBvcnQge1xuICBTQ0FMRkNvbnRlbnQsXG4gIFNDQUxGSGVhZGVyLFxuICBTQ0FMRlRleHQsXG4gIFNDQUxGV3JhcHBlcixcbiAgU0NBTEZXcmFwcGVyQ29udGVudFRhYmxlLFxuICBTQ0FMRldyYXBwZXJIZWFkZXJUYWJsZSxcbiAgU0NBTEZXcmFwcGVyU3RhdHVzQ2VsbFRhYmxlLFxuICBTQ0FMRldyYXBwZXJSb3dUYWJsZSxcbiAgU0NBTEZXcmFwcGVyTGFiZWxDZWxsVGFibGUsXG4gIFNDQUxGV3JhcHBlclNwaW5uZXJDZWxsVGFibGUsXG4gIFNDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlLFxuICBTQ0FMRkxvYWRpbmdUZXh0LFxufSBmcm9tICcuL0FibUxvYWRlckZpbGVzLnN0eWxlcydcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ2hpcFN0YXR1c1Byb3BzIH0gZnJvbSAnLi4vLi4vYXRvbXMvQ2hpcFN0YXR1cy9DaGlwU3RhdHVzLmludGVyZmFjZSdcbmltcG9ydCB7XG4gIGJ1aWxkUGVuZGluZ1N0YXR1c2VzS2V5LFxuICBoYXNQZW5kaW5nRmlsZXMsXG4gIGlzUGVuZGluZ0ZpbGVTdGF0dXMsXG4gIFBST0NFU1NJTkdfVElNRU9VVF9NUyxcbn0gZnJvbSAnLi9BYm1Mb2FkZXJGaWxlcy5oZWxwZXJzJ1xuXG5jb25zdCBIZWFkZXJUYWJsZSA9IG1lbW8oKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnYWJtX2FnZW50X3NlY3Rpb24nXSlcbiAgY29uc3QgbGFiZWxzID0gW3QoJ3Byb2Nlc3NpbmdLbm93bGVkZ2UuZmlsZVJvdycpLCB0KCdwcm9jZXNzaW5nS25vd2xlZGdlLnN0YXR1c1JvdycpXVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUxGV3JhcHBlckhlYWRlclRhYmxlPlxuICAgICAge2xhYmVscy5tYXAoKGxhYmVsLCBpbmRleCkgPT4gKFxuICAgICAgICA8U0NBTEZXcmFwcGVySGVhZGVyTGFiZWxDZWxsVGFibGUga2V5PXtsYWJlbH0gd2lkdGg9e2luZGV4ID09PSAwID8gJ2F1dG8nIDogJzEyMHB4J30+XG4gICAgICAgICAge2xhYmVsfVxuICAgICAgICA8L1NDQUxGV3JhcHBlckhlYWRlckxhYmVsQ2VsbFRhYmxlPlxuICAgICAgKSl9XG4gICAgPC9TQ0FMRldyYXBwZXJIZWFkZXJUYWJsZT5cbiAgKVxufSlcblxuY29uc3QgQ29udGVudFRhYmxlID0gbWVtbyhcbiAgKHsgZmlsZXMgfTogeyBmaWxlczogQXR0YWNobWVudEZpbGVbXSB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTQ0FMRldyYXBwZXJDb250ZW50VGFibGU+XG4gICAgICAgIHtmaWxlcy5tYXAoZmlsZSA9PiAoXG4gICAgICAgICAgPFNDQUxGV3JhcHBlclJvd1RhYmxlIGtleT17ZmlsZS5uYW1lfT5cbiAgICAgICAgICAgIDxTQ0FMRldyYXBwZXJMYWJlbENlbGxUYWJsZT57ZmlsZS5uYW1lfTwvU0NBTEZXcmFwcGVyTGFiZWxDZWxsVGFibGU+XG4gICAgICAgICAgICA8U0NBTEZXcmFwcGVyU3RhdHVzQ2VsbFRhYmxlPlxuICAgICAgICAgICAgICA8U0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZT5cbiAgICAgICAgICAgICAgICB7aXNQZW5kaW5nRmlsZVN0YXR1cyhmaWxlLnN0YXR1cykgJiYgPFNwaW5uZXJMb3R0aWUgc2l6ZT1cIjE4XCIgY29sb3I9XCJwcmltYXJ5XCIgLz59XG4gICAgICAgICAgICAgIDwvU0NBTEZXcmFwcGVyU3Bpbm5lckNlbGxUYWJsZT5cbiAgICAgICAgICAgICAgPENoaXBTdGF0dXMgc3RhdHVzPXtmaWxlLnN0YXR1cyBhcyBDaGlwU3RhdHVzUHJvcHNbJ3N0YXR1cyddfSAvPlxuICAgICAgICAgICAgPC9TQ0FMRldyYXBwZXJTdGF0dXNDZWxsVGFibGU+XG4gICAgICAgICAgPC9TQ0FMRldyYXBwZXJSb3dUYWJsZT5cbiAgICAgICAgKSl9XG4gICAgICA8L1NDQUxGV3JhcHBlckNvbnRlbnRUYWJsZT5cbiAgICApXG4gIH0sXG4gIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIHJldHVybiBwcmV2UHJvcHMuZmlsZXMuZXZlcnkoKGZpbGUsIGluZGV4KSA9PiBmaWxlLnN0YXR1cyA9PT0gbmV4dFByb3BzLmZpbGVzW2luZGV4XS5zdGF0dXMpXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IEFibUxvYWRlckZpbGVzID0gKHtcbiAgYXR0YWNobWVudHMsXG4gIGxhYmVsLFxuICBvblRpbWVvdXQsXG4gIHRpbWVvdXRNcyA9IFBST0NFU1NJTkdfVElNRU9VVF9NUyxcbn06IHtcbiAgYXR0YWNobWVudHM6IEF0dGFjaG1lbnRGaWxlW11cbiAgbGFiZWw6IHN0cmluZ1xuICBvblRpbWVvdXQ/OiAoKSA9PiB2b2lkXG4gIHRpbWVvdXRNcz86IG51bWJlclxufSkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnYWJtX2FnZW50X3NlY3Rpb24nXSlcbiAgY29uc3QgYXR0YWNobWVudHNSZWYgPSB1c2VSZWYoYXR0YWNobWVudHMpXG4gIGF0dGFjaG1lbnRzUmVmLmN1cnJlbnQgPSBhdHRhY2htZW50c1xuXG4gIGNvbnN0IHBlbmRpbmdTdGF0dXNlcyA9IGJ1aWxkUGVuZGluZ1N0YXR1c2VzS2V5KGF0dGFjaG1lbnRzKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFvblRpbWVvdXQgfHwgIXBlbmRpbmdTdGF0dXNlcykgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoaGFzUGVuZGluZ0ZpbGVzKGF0dGFjaG1lbnRzUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG9uVGltZW91dCgpXG4gICAgICB9XG4gICAgfSwgdGltZW91dE1zKVxuXG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gIH0sIFtwZW5kaW5nU3RhdHVzZXMsIG9uVGltZW91dCwgdGltZW91dE1zXSlcblxuICByZXR1cm4gKFxuICAgIDxTQ0FMRldyYXBwZXI+XG4gICAgICA8U0NBTEZIZWFkZXI+XG4gICAgICAgIDxTQ0FMRkxvYWRpbmdUZXh0Pnt0KCdwcm9jZXNzaW5nS25vd2xlZGdlLmxvYWRpbmdGaWxlcycpfTwvU0NBTEZMb2FkaW5nVGV4dD5cbiAgICAgICAgPFNDQUxGVGV4dD57bGFiZWx9PC9TQ0FMRlRleHQ+XG4gICAgICA8L1NDQUxGSGVhZGVyPlxuICAgICAgPFNDQUxGQ29udGVudD5cbiAgICAgICAgPEhlYWRlclRhYmxlIC8+XG4gICAgICAgIDxDb250ZW50VGFibGUgZmlsZXM9e2F0dGFjaG1lbnRzfSAvPlxuICAgICAgPC9TQ0FMRkNvbnRlbnQ+XG4gICAgPC9TQ0FMRldyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQy9DLFNBQVNDLGFBQWEsUUFBUSx1REFBdUQ7QUFDckYsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsU0FBU0MsVUFBVSxRQUFRLHdCQUF3QjtBQUNuRCxTQUNFQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pD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
|